public bool TryProcess(IUserSessionRequest <IUserSessionData> request, out IResponse response) { switch (request.RequestType) { case RequestType.Create: return(TryPersistRecord(request.Payload, out response)); case RequestType.Update: return(TryUpdateRecord(request.Payload, out response)); case RequestType.Delete: return(TryDeleteRecord(request.Payload, out response)); case RequestType.Read: case RequestType.ReadAll: { //There's no real processing to do here response = null; return(true); } default: { var errorMessage = new ErrorMessage(ErrorCode.RequestTypeNotSupported); response = new UserSessionResponse().SetErrorResponse(errorMessage); return(false); } } }
public bool ProcessRequest(IUserSessionRequest <IUserSessionData> request, out IResponse response) { ErrorMessage error; if (!_validator.IsValid(request, out error)) { response = new UserSessionResponse().SetErrorResponse(error); return(false); } if (!_sessionRequestProcessor.TryProcess(request, out response) && response != null) { return(false); } var requestType = request.RequestType; if (request.RequestType == RequestType.Read || request.RequestType == RequestType.ReadAll) { response = ReadFromState(request.Payload ?? (IUserSessionData)Activator.CreateInstance(request.PayloadType)); } else { ApplyToState(requestType, response); } return(true); }
public IActionResult Load(string sessionid, string language) { return(this.RequestHandler(language, () => { UserSessionResponse response = _userLogic.LoadUserInfo(language, sessionid); return Ok(response); })); }
private bool TryPersistRecord(IUserSessionData requestData, out IResponse response) { if (requestData is NopePet) { return(TryCreateNewPetDbRecord(requestData as NopePet, out response)); } var error = new ErrorMessage(ErrorCode.RequestDataNotRecognised); response = new UserSessionResponse().SetErrorResponse(error); return(false); }
private bool TryUpdateRecord(IUserSessionData requestData, out IResponse response) { if (requestData is UserPetCareAction) { var userPetCareAction = requestData as UserPetCareAction; var requestedInteraction = _interactionRepository.Find(userPetCareAction.InteractionId); var metricInteraction = _interactionRepository.FindAssociated(requestedInteraction); var newPetVital = _userSessionBuilder.RebuildPetVital(metricInteraction, userPetCareAction); return(TryPersistRecordUpdate(newPetVital, out response)); } response = new UserSessionResponse().SetErrorResponse(new ErrorMessage(ErrorCode.RequestDataNotRecognised)); return(false); }
public UserSessionResponse GetUserSession() { UserSessionResponse response = null; try { var sessionModel = JsonConvert .DeserializeObject <UserSessionModel>( httpContextAccessor.HttpContext.Session.GetString(SessionKeys.UserSessionKey)); response = new UserSessionResponse { Id = sessionModel.Id, Permission = sessionModel.Permission }; } catch (Exception) { } return(response); }
public async Task <UserSessionResponse> AuthenticateAsync(AuthenticateUserRequest model) { string encryptedPassword = _encryptionUtil.Encrypt(model.Password); var user = await _userService.Authenticate(model.EmailAddress.ToLower()); if (user == null) { throw new CannotAuthenticateException(); } UserSessionResponse session = null; if (user.FailedLoginCount < 5 && user.Password == encryptedPassword) { user.LoggedInAt = DateTime.UtcNow; user.FailedLoginCount = 0; session = new UserSessionResponse() { Token = GenerateJSONWebToken(user), RefreshToken = Guid.NewGuid().ToString().Replace("-", ""), UserId = user.Id, Name = user.Name, Role = user.Role, EmailAddress = user.EmailAddress, EmailVerified = user.EmailVerified, Phone = user.Mobile }; } else { user.FailedLoginCount++; } await _userService.Update(user); if (session == null) { throw new CannotAuthenticateException(); } return(session); }
private bool TryPersistRecordUpdate(IUserSessionData processedData, out IResponse response) { if (processedData is PetVital) { var petCareResponse = new UserSessionPetCareResponse(); var petMetric = (processedData as PetVital).ToPetMetricModel(); ErrorMessage error; if (!_petMetricPersister.TryPersistUpdate(petMetric, out error)) { response = petCareResponse.SetErrorResponse(error); return(false); } response = petCareResponse.SetSuccessResponse(processedData as PetVital); return(true); } var genericError = new ErrorMessage(ErrorCode.RequestDataNotRecognised); response = new UserSessionResponse().SetErrorResponse(genericError); return(false); }
private UserSessionResponse CreateUserSessionResponse(AppUser user) { UserSessionResponse response = new UserSessionResponse { UserId = "", SessionId = user.Session.Id, SessionUpdateTs = user.Session.UpdateTs.ToJsTime(), UserName = user.Name, UpdateTs = user.UpdateTs.ToJsTime(), Email = user.Email, RoleId = user.RoleId }; if (user.UserInfo != null) { response.BirthDate = user.UserInfo.BirthDate?.ToDateString(); response.PhoneNumber = user.UserInfo.PhoneNumber; response.PhotoPath = user.UserInfo.PhotoPath; response.MaritalStatus = user.UserInfo.MaritalStatus; } response.MaxUploadFileSize = _fileService.GetRestFreeSize(user.Id); return(response); }
private bool TryLogin(UserCredentials userCredentials, out IResponse response) { //We have already validated that we've found the user var foundUser = _users.GetUserByEmail(userCredentials.Email); //But just in case we should check for null if (foundUser != null) { var userSessionState = UserSessionState.Initialise(foundUser, _users, _pets, _animals, _interactions, _config, ResponseBuilder.UserSessionBuilder, _userSessionContainer); _currentUserSessions.Add(userSessionState); var userSession = userSessionState.GetUserSession(); response = new UserSessionResponse().SetSuccessResponse(userSession); return(true); } var error = new ErrorMessage(ErrorCode.UserSessionNotFound); response = new UserSessionResponse().SetErrorResponse(error); return(false); }
public UserSessionResponse UserHome() { var response = new UserSessionResponse(); return(response.SetSuccessResponse(new UserSession())); }