Exemple #1
0
        // 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));
        }