public void NoSavedToStorage_Success() { //Arrange var validator = new NoSavedToStorage(true, "Test"); //Act var result = validator.Process(); //Assert Assert.AreEqual(result.StatusCode, StatusCode.Success); Assert.IsTrue(string.IsNullOrEmpty(result.StatusDetail)); }
public void NoSavedToStorage_Failed() { //Arrange var validator = new NoSavedToStorage(false, "Test"); //Act var result = validator.Process(); //Assert Assert.AreEqual(result.StatusCode, StatusCode.Failed); Assert.AreEqual(result.ErrorCode, ErrorCode.DataBaseError); Assert.IsTrue(!string.IsNullOrEmpty(result.StatusDetail)); }
public async Task <object> ProcessAction(object value) { var payment = value as Model.Payment ?? throw new ArgumentNullException(value.GetType().ToString(), "The value is not implemented."); _log.LogInformation($"[Started] Payment process for Payment: {payment.PaymentId} - User: {payment.UserId}"); var mapper = MapperModelFactory <Model.Payment, payment_gateway_repository.Model.Payment> .GetMapper(); var model = mapper.MapToDestination(payment); var validator = await _validationService.ProcessValidation(_validator, model); var result = validator as Result; if (result?.StatusCode == StatusCode.Failed) { _log.LogError(result.ErrorCode.ConvertToInt(), GetMessage(result, model)); return(result); } //Process the bank payment result = new ProcessPayment(_bankProcessor, model).Process(); if (result?.StatusCode == StatusCode.Failed) { _log.LogError(result.ErrorCode.ConvertToInt(), GetMessage(result, model)); return(result); } //Save the transaction in DB var saved = await _repository.AddItemAsync(model); result = new NoSavedToStorage(saved, "Payment").Process(); if (result?.StatusCode == StatusCode.Failed) { _log.LogCritical(result.ErrorCode.ConvertToInt(), GetMessage(result, model)); return(result); } _log.LogInformation($"[Finished] Payment process for Payment: {payment.PaymentId} - User: {payment.UserId}"); return(model); }
public async Task <object> ProcessAction(object value) { var model = value as Model.UserLogin ?? throw new ArgumentNullException(value.GetType().ToString(), "The value is not implemented."); _log.LogInformation($"[Started] User Login for: Username: {model.Username}"); //The User/Merchant will log in order to process a payment and/or make requests for other actions var user = await _userRepository.GetItemAsync(u => u.UserLogin.Username == model.Username && u.UserLogin.Password == model.Password); var validation = await _validationService.ProcessValidation(_validator, user); var result = validation as Result; if (result?.StatusCode == StatusCode.Failed) { _log.LogError(result.ErrorCode.ConvertToInt(), $"User Error Details: {result.StatusDetail} - User: {user.UserId} - Username: {user.UserLogin.Username}"); return(result); } //Validates Auth Token var token = _userService.Authenticate(user, true); if (token != user.UserLogin.Token) { user.UserLogin.Token = token; var saved = await _userRepository.UpdateItemAsync(user, u => u.UserLogin.Token, token); result = new NoSavedToStorage(saved, "User").Process(); if (result?.StatusCode == StatusCode.Failed) { _log.LogCritical(result.ErrorCode.ConvertToInt(), $"User Error Details: {result.StatusDetail} - User: {user.UserId} - Username: {user.UserLogin.Username}"); } else { _log.LogInformation($"Token updated for User: {model.Username}"); } } _log.LogInformation($"[Finished] User Login for: Username: {model.Username}"); return(user); }
public async Task <object> ProcessAction(object value) { var model = value as Model.User ?? throw new ArgumentNullException(value.GetType().ToString(), "The value is not implemented."); _log.LogInformation($"[Started] User Registration for: UserId: {model.UserId} - Username: {model.UserLogin.Username}"); var mapper = MapperModelFactory <Model.User, payment_gateway_repository.Model.User> .GetMapper(); var modelMap = mapper.MapToDestination(model); //For a User and in order to make a payment has to be registered in the system so we can process the data var token = _userService.Authenticate(modelMap, false); modelMap.UserLogin.Token = token; var validation = await _validationService.ProcessValidation(_validator, modelMap); var result = validation as Result; if (result?.StatusCode == StatusCode.Failed) { _log.LogError(result.ErrorCode.ConvertToInt(), GetMessage(result, modelMap)); return(result); } var saved = await _userRepository.AddItemAsync(modelMap); result = new NoSavedToStorage(saved, "User").Process(); if (result?.StatusCode == StatusCode.Failed) { _log.LogCritical(result.ErrorCode.ConvertToInt(), GetMessage(result, modelMap)); return(result); } _log.LogInformation($"[Finished] User Registration for: UserId: {model.UserId} - Username: {model.UserLogin.Username}"); return(modelMap); }