Exemplo n.º 1
0
        public async Task <Session> UpdateSessionCount(SessionOperationViewModel sessionOperationViewModel)
        {
            using (var db = new MercuryDataContext())
            {
                var session
                    = await db.Sessions
                      .Where(m => m.Id == sessionOperationViewModel.SessionId)
                      .FirstOrDefaultAsync();

                switch (sessionOperationViewModel.SessionOperation)
                {
                case SessionOperationEnum.INCREMENT:
                    session.CurrentCount = session.CurrentCount + 1;
                    break;

                case SessionOperationEnum.DECREMENT:
                    var count = session.CurrentCount - 1;
                    session.CurrentCount = count >= 0 ? count : 0;
                    break;

                default: break;
                }

                session.DateModified      = DateTime.UtcNow;
                session.UpdatedTimesCount = session.UpdatedTimesCount + 1;

                db.Sessions.Update(session);
                await db.SaveChangesAsync();

                return(session);
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateCount([FromBody] SessionOperationViewModel sessionOperationViewModel)
        {
            try
            {
                var session
                    = await _sessionsRepository
                      .UpdateSessionCount(sessionOperationViewModel);

                return(Ok(session));
            }
            catch (Exception ex)
            {
                return(HandleError(ex));
            }
        }