Ejemplo n.º 1
0
        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
            });
        }
Ejemplo n.º 2
0
 public BaseResponse <AccountLogoutResponse> LogoutAccount([FromBody] AccountLogoutRequest request, [FromHeader] Guid SessionID)
 {
     return(BaseResponse <AccountLogoutResponse> .ConstructResponse(
                HttpStatusCode.OK,
                HttpStatusCode.OK.ToString(),
                accountService.LogoutAccount(request, SessionID)));
 }