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 IResponse ReadFromState(IUserSessionData payload) { if (payload is UserSession) { var sessionData = GetUserSession(); return(new UserSessionResponse().SetSuccessResponse(sessionData)); } var error = new ErrorMessage(ErrorCode.UserSessionNotFound); return(new UserSessionResponse().SetErrorResponse(error)); }
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); }
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 bool TryDeleteRecord(IUserSessionData request, out IResponse response) { throw new NotImplementedException(); }