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