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); } }
public async Task <IActionResult> UpdateCount([FromBody] SessionOperationViewModel sessionOperationViewModel) { try { var session = await _sessionsRepository .UpdateSessionCount(sessionOperationViewModel); return(Ok(session)); } catch (Exception ex) { return(HandleError(ex)); } }