using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using Tango.TCC.BL.Entities; using Tango.TCC.Service.DB; using Tango.TCC.Service.DTO; using Tango.TCC.Service.Security; using Tango.Web.Controllers; using System.Data.Entity; using Tango.TCC.BL.Web; using Tango.TCC.Service.Storage; using System.Web.Http.Results; using Tango.TCC.Service.Filters; using Microsoft.AspNet.SignalR; using Tango.TCC.Service.Hubs; namespace Tango.TCC.Service.Controllers { public class ResultsController : TangoController { [JwtTokenFilter] [HttpGet] public List GetResults([FromUri] ResultsByDateRequest request)//int count) { List results = new List(); using (var db = TccDbContext.CreateTCC()) { DateTime start, end; if (!DateTime.TryParse(request.From, out start) || !DateTime.TryParse(request.To, out end)) { return results; } var dbResults = (from RESULTS in db.Results where DbFunctions.TruncateTime(RESULTS.Date) >= start.Date && DbFunctions.TruncateTime(RESULTS.Date) <= end.Date join CARDS in db.Cards on RESULTS.CardGuid equals CARDS.Guid join DEVICES in db.Devices on RESULTS.DeviceGuid equals DEVICES.Guid where (request.Email == null || DEVICES.Email == request.Email) && (request.DeviceModel == null || DEVICES.DeviceModel == request.DeviceModel) select new { Result = RESULTS, DeviceModel = DEVICES.DeviceModel, Email = DEVICES.Email, CardCode = CARDS.Code, DeviceID = DEVICES.DeviceID }).ToList(); foreach (var item in dbResults) { ResultDTO dto = ResultDTO.createResultDTO(item.Result, item.CardCode, item.DeviceModel, item.Email, item.DeviceID); results.Add(dto); } } return results; } [JwtTokenFilter] [HttpGet] public List GetLastResults([FromUri] ResultsByCountRequest request)//int count) { List results = new List(); using (var db = TccDbContext.CreateTCC()) { var dbResults = db.Results.ToList().TakeLast(request.Count); foreach (var item in dbResults) { ResultDTO dto = ResultDTO.createsampleResultDTO(item); results.Add(dto); } } return results; } [HttpGet] public RedirectResult GetResultSampleImage(String blobName) { return Redirect(TCCStorageManager.CreateSampleImageURL(blobName)); } [HttpGet] public RedirectResult GetResultSourceImage(String blobName) { return Redirect(TCCStorageManager.CreateSourceImageURL(blobName)); } [JwtTokenFilter] [HttpPost] public VerificationResponse VerifyDeviceEmail(VerificationRequest request)//int count) { VerificationResponse response = new VerificationResponse(); response.Verified = false; using (var db = TccDbContext.CreateTCC()) { var device = db.Devices.FirstOrDefault(x => x.Email == request.Email); if (device != null) { response.Verified = true; } } return response; } [HttpPost] public void Test() { var myHub = GlobalHost.ConnectionManager.GetHubContext() as ResultsHub; ResultDTO dto = new ResultDTO(); dto.Guid = "123"; dto.Date = DateTime.Now; dto.RawColor = -100000; dto.ProcessedColor = -100000; dto.SampleImageURL = ""; dto.SourceImageURL = ""; dto.ProcessTime = 55; dto.CardGuid = ""; dto.CardCode = ""; dto.DeviceModel = "aaa"; dto.Email = "Victoria.Plitt@twine-s.com"; dto.DeviceGuid = ""; ResultsHub.PushResult(dto); } } }