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"
            });
        }
Beispiel #2
0
        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"
            });
        }
Beispiel #4
0
        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 }));
        }
Beispiel #5
0
 public HttpResponseMessage SaveCurrency(EditCurrencyData request)
 {
     return(WebClient.SecurePostAsJson <EditCurrencyData, HttpResponseMessage>(Token, _url + AdminApiRoutes.SaveCurrency, request));
 }