FlexitimeTracker/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/Controllers/SwipeDataController.cs

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});
}
}
}