public CurrencyCRUDStatus Save(EditCurrencyData model) { var oldCode = model.OldCode; var oldName = model.OldName; var currency = _paymentRepository.Currencies.SingleOrDefault(c => c.Code == oldCode); if (currency == null) { return(new CurrencyCRUDStatus { IsSuccess = false, Message = "invalidId" }); } if (_queries.GetCurrencies().Any(c => c.Code == model.Code && c.Code != oldCode)) { return(new CurrencyCRUDStatus { IsSuccess = false, Message = "codeUnique" }); } if (_queries.GetCurrencies().Any(c => c.Name == model.Name && c.Name != oldName)) { return(new CurrencyCRUDStatus { IsSuccess = false, Message = "nameUnique" }); } using (var scope = CustomTransactionScope.GetTransactionScope()) { var username = _actorInfoProvider.Actor.UserName; currency.UpdatedBy = username; currency.DateUpdated = DateTimeOffset.UtcNow; currency.Name = model.Name; currency.Remarks = model.Remarks; _paymentRepository.SaveChanges(); var currencyUpdated = new CurrencyUpdated { OldCode = model.OldCode, OldName = model.OldName, Code = currency.Code, Name = currency.Name, Remarks = currency.Remarks }; _eventBus.Publish(currencyUpdated); scope.Complete(); } return(new CurrencyCRUDStatus { IsSuccess = true, Message = "updated" }); }
public void ThenCurrencyDataIsSuccessfullySaved() { var data = new EditCurrencyData { Code = TestDataGenerator.GetRandomAlphabeticString(3), Name = TestDataGenerator.GetRandomAlphabeticString(7), Remarks = TestDataGenerator.GetRandomString() }; var result = AdminApiProxy.SaveCurrency(data); result.Should().NotBeNull(); result.StatusCode.ShouldBeEquivalentTo(HttpStatusCode.OK); }
public CurrencyCRUDStatus Add(EditCurrencyData model) { if (_queries.GetCurrencies().Any(c => c.Code == model.Code)) { return(new CurrencyCRUDStatus { IsSuccess = false, Message = "codeUnique" }); } if (_queries.GetCurrencies().Any(c => c.Name == model.Name)) { return(new CurrencyCRUDStatus { IsSuccess = false, Message = "nameUnique" }); } using (var scope = CustomTransactionScope.GetTransactionScope()) { var username = _actorInfoProvider.Actor.UserName; var currency = new Currency { Code = model.Code, CreatedBy = username, DateCreated = DateTimeOffset.UtcNow, Name = model.Name, Remarks = model.Remarks }; _paymentRepository.Currencies.Add(currency); _paymentRepository.SaveChanges(); var currencyCreated = new CurrencyCreated { Code = currency.Code, Name = currency.Name, Remarks = currency.Remarks, Status = currency.Status }; _eventBus.Publish(currencyCreated); scope.Complete(); } return(new CurrencyCRUDStatus { IsSuccess = true, Message = "created" }); }
public IHttpActionResult Save(EditCurrencyData data) { var newCurrency = string.IsNullOrEmpty(data.OldCode); VerifyPermission(newCurrency ? Permissions.Create : Permissions.Update, Modules.CurrencyManager); var result = newCurrency ? _currencyCommands.Add(data) : _currencyCommands.Save(data); if (!result.IsSuccess) { return(Ok(new { Result = "false", Data = "app:common." + result.Message })); } return(Ok(new { Result = "success", Data = "app:currencies." + result.Message })); }
public HttpResponseMessage SaveCurrency(EditCurrencyData request) { return(WebClient.SecurePostAsJson <EditCurrencyData, HttpResponseMessage>(Token, _url + AdminApiRoutes.SaveCurrency, request)); }