Пример #1
0
        public Guid Add(AddBankAccountData data)
        {
            using (var scope = CustomTransactionScope.GetTransactionScope())
            {
                var validationResult = new AddBankAccountValidator(_repository, _brandRepository).Validate(data);

                if (!validationResult.IsValid)
                {
                    throw new RegoException(validationResult.Errors.First().ErrorMessage);
                    //throw validationResult.GetValidationError();
                }

                var brand = _repository.Brands.Single(x => x.Id == new Guid(data.BrandId));

                var bankAccount = new BankAccount
                {
                    Id            = data.Id ?? Guid.NewGuid(),
                    Bank          = _repository.Banks.Single(x => x.Id == data.Bank),
                    CurrencyCode  = data.Currency,
                    AccountId     = data.AccountId,
                    AccountName   = data.AccountName,
                    AccountNumber = data.AccountNumber,
                    //AccountType = data.AccountType,
                    AccountType   = _repository.BankAccountTypes.Single(x => x.Id == data.AccountType),
                    Province      = data.Province,
                    Branch        = data.Branch,
                    SupplierName  = data.SupplierName,
                    ContactNumber = data.ContactNumber,
                    USBCode       = data.USBCode,
                    //Temporrary solution for Bank Account seeding
                    PurchasedDate = DateTime.UtcNow,
                    Remarks       = data.Remarks,
                    Status        = BankAccountStatus.Pending,
                    Created       = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId),
                    CreatedBy     = _actorInfoProvider.Actor.UserName
                };

                _repository.BankAccounts.Add(bankAccount);
                _repository.SaveChanges();

                var bankAccountAdded = new BankAccountAdded
                {
                    Id                = bankAccount.Id,
                    AccountId         = bankAccount.AccountId,
                    BankId            = bankAccount.Bank.Id,
                    BankAccountStatus = bankAccount.Status,
                    CreatedBy         = bankAccount.CreatedBy,
                    CreatedDate       = bankAccount.Created,
                    EventCreated      = bankAccount.Created,
                };

                _eventBus.Publish(bankAccountAdded);

                scope.Complete();

                return(bankAccount.Id);
            }
        }
Пример #2
0
        public void Consume(BankAccountAdded message)
        {
            _playerRepository.BankAccounts.Add(new BankAccount
            {
                Id                = message.Id,
                AccountId         = message.AccountId,
                BankId            = message.BankId,
                BankAccountStatus = message.BankAccountStatus
            });

            _playerRepository.SaveChanges();
        }
 public void Consume(BankAccountAdded message)
 {
     _eventHandlers.Handle(message);
 }
Пример #4
0
 public void Handle(BankAccountAdded @event)
 {
     AddActivityLog(AdminActivityLogCategory.BankAccount, @event);
 }
Пример #5
0
        public Guid AddWithFiles(AddBankAccountData data, byte[] idFrontImage, byte[] idBackImage,
                                 byte[] atmCardImage)
        {
            using (var scope = CustomTransactionScope.GetTransactionScope())
            {
                //Server Validation
                //var validationResult = new AddBankAccountValidator(_repository, _brandRepository).Validate(data);
                //if (!validationResult.IsValid)
                //{
                //    throw new RegoException(validationResult.Errors.First().ErrorMessage);
                //    //throw validationResult.GetValidationError();
                //}

                //var bank = _repository.Banks.Single(x => x.Id == data.Bank);
                var id         = Guid.NewGuid();
                var brandId    = Guid.Parse(data.BrandId);
                var licenseeId = Guid.Parse(data.LicenseeId);

                var frontImageId   = SaveFile(data.IdFrontImage, idFrontImage, id, brandId, licenseeId);
                var backImageId    = SaveFile(data.IdBackImage, idBackImage, id, brandId, licenseeId);
                var atmCardImageId = SaveFile(data.AtmCardImage, atmCardImage, id, brandId, licenseeId);

                var brand = _repository.Brands.Single(x => x.Id == new Guid(data.BrandId));

                var bankAccount = new BankAccount
                {
                    Id              = id,
                    Bank            = _repository.Banks.Single(x => x.Id == data.Bank),
                    CurrencyCode    = data.Currency,
                    AccountId       = data.AccountId,
                    AccountName     = data.AccountName,
                    AccountNumber   = data.AccountNumber,
                    AccountType     = _repository.BankAccountTypes.Single(x => x.Id == data.AccountType),
                    Province        = data.Province,
                    Branch          = data.Branch,
                    Remarks         = data.Remarks,
                    SupplierName    = data.SupplierName,
                    ContactNumber   = data.ContactNumber,
                    USBCode         = data.USBCode,
                    PurchasedDate   = DateTime.Parse(data.PurchasedDate),
                    UtilizationDate = DateTime.Parse(data.UtilizationDate),
                    ExpirationDate  = DateTime.Parse(data.ExpirationDate),
                    IdFrontImage    = frontImageId,
                    IdBackImage     = backImageId,
                    ATMCardImage    = atmCardImageId,
                    Status          = BankAccountStatus.Pending,
                    Created         = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId),
                    CreatedBy       = _actorInfoProvider.Actor.UserName
                };

                _repository.BankAccounts.Add(bankAccount);
                _repository.SaveChanges();

                var bankAccountAdded = new BankAccountAdded
                {
                    Id                = bankAccount.Id,
                    AccountId         = bankAccount.AccountId,
                    BankId            = bankAccount.Bank.Id,
                    BankAccountStatus = bankAccount.Status,
                    CreatedBy         = bankAccount.CreatedBy,
                    CreatedDate       = bankAccount.Created,
                    EventCreated      = bankAccount.Created,
                    Remarks           = bankAccount.Remarks
                };

                _eventBus.Publish(bankAccountAdded);

                scope.Complete();

                return(bankAccount.Id);
            }
        }