コード例 #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));
        }
コード例 #2
0
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            XamarinEvolveContext context = new XamarinEvolveContext();

            DomainManager = new EntityDomainManager <MiniHack>(context, Request, true);
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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());
        }
コード例 #6
0
        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));
        }