public async Task <ServiceResponse <ValidateUserResponse> > ValidateUser(ValidateUserRequest validateUserRequest) { _logger.Information("Call ValidateUserManager : ValidateUser"); var response = new ServiceResponse <ValidateUserResponse> { IsSuccess = true, TokenStatus = TokenStatus.NotRequired }; using (IDalContext dalContext = new DalContext(_connectionStrings.HackConnection)) { var dalRequest = new ValidateDalRequest { EmailId = validateUserRequest.EmailId }; var dalResponse = await _validateUser.ValidateUser(dalContext.DbConnection, dalRequest); //Check if success returned from DB if (!dalResponse.IsSuccess || dalResponse.UserId <= 0) { response.Data = new ValidateUserResponse { SecurityToken = string.Empty, }; response.TokenStatus = dalResponse.TokenStatus; response.IsSuccess = false; response.Message = dalResponse.ErrorMessage ?? ApiMessages.InternalError; } else { response.IsSuccess = true; //Encrypt token var encryptedToken = Cryptology.EncryptString(string.Format("{0}##{1}##{2}", Utilities.CreateShortGuid(), dalResponse.UserId, DateTime.UtcNow.AddHours(Constants.ValidTokenDuration).ToString(ServiceConstants.DateFormat)), _logger); try { response.IsSuccess = true; { response.Data = new ValidateUserResponse { SecurityToken = encryptedToken, }; response.TokenStatus = dalResponse.TokenStatus; response.IsSuccess = dalResponse.IsSuccess; } } catch (SqlException ex) { //Write Log for exception message _logger.Error(ex.Message); response.IsSuccess = false; response.Message = ServiceConstants.ErrorCodes.ContainsKey(ex.Number) ? ServiceConstants.ErrorCodes[ex.Number] : ApiMessages.InternalError; } catch (Exception ex) { _logger.Error("Error : {ex}", ex); response.IsSuccess = false; response.Message = ApiMessages.InternalError; } } } return(response); }
public async Task <ValidateDalResponse> ValidateUser(IDbConnection connection, ValidateDalRequest request) { _logger.Information("Call ValidateUserRepository : ValidateUser"); _logger.Information("Validating email id : " + request.EmailId); var response = new ValidateDalResponse { IsSuccess = true, TokenStatus = TokenStatus.NotRequired }; try { var validateUserParams = new DynamicParameters(); validateUserParams.Add(DbParamNames.EmailId, request.EmailId); response = (await connection.QueryAsync <dynamic>(SpConstants.ValidateUser, validateUserParams, commandType: CommandType.StoredProcedure)).Select(x => new ValidateDalResponse() { UserId = x.UserId, UserName = x.FirstName }).FirstOrDefault(); if (response == null) { response = new ValidateDalResponse { IsSuccess = true, TokenStatus = TokenStatus.Valid }; } else { response.IsSuccess = true; response.TokenStatus = TokenStatus.Valid; } _logger.Information("Validated Email id : " + request.EmailId); } catch (SqlException ex) { _logger.Error(ex.Message); response.IsSuccess = false; response.ErrorMessage = ServiceConstants.ErrorCodes.ContainsKey(ex.Number) ? ServiceConstants.ErrorCodes[ex.Number] : ApiMessages.UnknownError; } catch (Exception ex) { _logger.Error("Error : {ex}", ex); response = new ValidateDalResponse { IsSuccess = false, ErrorMessage = ApiMessages.InternalError }; } return(response); }