public AccountLogoutResponse LogoutAccount(AccountLogoutRequest request, Guid SessionID) { Sessions session = dbContext.Sessions .Where(s => s.SessionId.Equals(SessionID)) .FirstOrDefault(); if (session == null) { throw new BusinessLogicException(HttpStatusCode.BadRequest, ResponseCode.INVALID_LOGIN_SESSION.ToString()); } session.IsLogin = false; session.UserId = null; session.LastActivity = DateTime.Now; using (IDbContextTransaction transaction = dbContext.Database.BeginTransaction()) { try { dbContext.Sessions.Update(session); dbContext.SaveChanges(); transaction.Commit(); } catch { transaction.Rollback(); throw new BusinessLogicException(HttpStatusCode.InternalServerError, ResponseCode.FAILED_TO_LOGOUT.ToString()); } } return(new AccountLogoutResponse() { SuccessLogout = true }); }
public BaseResponse <AccountLogoutResponse> LogoutAccount([FromBody] AccountLogoutRequest request, [FromHeader] Guid SessionID) { return(BaseResponse <AccountLogoutResponse> .ConstructResponse( HttpStatusCode.OK, HttpStatusCode.OK.ToString(), accountService.LogoutAccount(request, SessionID))); }