53 lines
1.6 KiB
C#
53 lines
1.6 KiB
C#
using System;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using Interfaces;
|
|
|
|
namespace WindowsDataCenter
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[RoutePrefix("api/swipedata")]
|
|
public class SwipeDataController : ApiController
|
|
{
|
|
private readonly IRepository _repo;
|
|
private readonly ILogger _logger;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="repo"></param>
|
|
/// <param name="logger"></param>
|
|
public SwipeDataController(IRepository repo, ILogger logger)
|
|
{
|
|
if(repo == null) throw new ArgumentNullException(nameof(repo));
|
|
_repo = repo;
|
|
if(logger == null) throw new ArgumentNullException(nameof(logger));
|
|
_logger = logger;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="cData"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[Route("")]
|
|
public IHttpActionResult PostData([FromBody] CardData cData)
|
|
{
|
|
int logId;
|
|
|
|
var id = new Identifier {UniqueId = cData.CardUId};
|
|
|
|
var resp = cData.UtcTimeStamp.HasValue
|
|
? _repo.LogEventTime(id, out logId, cData.UtcTimeStamp.Value)
|
|
: _repo.LogEventTime(id, out logId);
|
|
|
|
_logger.Trace("Received new \"Swipe Event\" for UId: {0} at {1}, direction is : {2}", cData.CardUId,
|
|
DateTime.UtcNow, resp.Direction);
|
|
return Ok(new {Id = logId, resp.Direction});
|
|
}
|
|
}
|
|
} |