// POST api/Announcement public async Task <HttpResponseMessage> Post(string password, [FromBody] string message) { HttpStatusCode ret = HttpStatusCode.InternalServerError; if (string.IsNullOrWhiteSpace(message) || password != ConfigurationManager.AppSettings["NotificationsPassword"]) { return(Request.CreateResponse(ret)); } try { var accounenement = new Notification { Date = DateTime.UtcNow, Text = message }; var context = new XamarinEvolveContext(); context.Notifications.Add(accounenement); await context.SaveChangesAsync(); } catch { return(Request.CreateResponse(ret)); } return(Request.CreateResponse(HttpStatusCode.OK)); }
protected override void Initialize(HttpControllerContext controllerContext) { base.Initialize(controllerContext); XamarinEvolveContext context = new XamarinEvolveContext(); DomainManager = new EntityDomainManager <MiniHack>(context, Request, true); }
public async Task <IHttpActionResult> GetMobileToWebSync(string id) { using (var context = new XamarinEvolveContext()) { var items = context.MobileToWebSyncs.Where(i => i.TempCode == id); if (items.Count() == 0) { throw new HttpResponseException(HttpStatusCode.NotFound); } if (items.Count() > 1) { throw new HttpResponseException(HttpStatusCode.Conflict); } var item = items.FirstOrDefault(); if (item.Expires < DateTime.UtcNow) { context.MobileToWebSyncs.Remove(item); await context.SaveChangesAsync(); throw new HttpResponseException(HttpStatusCode.Gone); } return(Content(HttpStatusCode.OK, item)); } }
public async Task <int> Get(string id) { int count = 0; using (var context = new XamarinEvolveContext()) { var getCountQuery = @"SELECT COUNT(1) FROM [dbo].[MiniHackCompletions] WHERE HackId = {0}"; count = await context.Database.SqlQuery <int>(getCountQuery, id).SingleAsync(); } return(count); }
public async Task <IHttpActionResult> Post([FromBody] string id) { var userId = AuthenticationHelper.GetAuthenticatedUserId(RequestContext); using (var context = new XamarinEvolveContext()) { var getCountQuery = @"SELECT COUNT(1) FROM [dbo].[MiniHackCompletions] WHERE UserId = {0} AND HackId = {1}"; var count = await context.Database.SqlQuery <int>(getCountQuery, userId, id).SingleAsync(); if (count == 0) { var insertQuery = @"INSERT [dbo].[MiniHackCompletions] (UserId, HackId) VALUES ({0}, {1})"; context.Database.ExecuteSqlCommand(insertQuery, userId, id); } } return(Ok()); }
public async Task <IHttpActionResult> PostMobileToWebSync(MobileToWebSync item) { var userId = AuthenticationHelper.GetAuthenticatedUserId(RequestContext); MobileToWebSync result; using (var context = new XamarinEvolveContext()) { // First look if there's an existing code for this user result = await context.MobileToWebSyncs.Where(i => i.UserId == userId).FirstOrDefaultAsync(); if (result != null) { // If it's expired, remove it so we can create a new one if (result.Expires < DateTime.UtcNow) { context.MobileToWebSyncs.Remove(result); result = null; } } if (result == null) { // Make a new server generated entity var newItem = new MobileToWebSync { UserId = userId, TempCode = _codeGenerator.Generate(FixedLength: 5), Expires = DateTime.UtcNow.AddHours(1) }; result = context.MobileToWebSyncs.Add(newItem); } await context.SaveChangesAsync(); } return(Ok(result)); }