Пример #1
0
        public void TransferMoney_Succesfully()
        {
            Guid from = Guid.NewGuid();
            Guid to   = Guid.NewGuid();


            var fromAccount = new Domain.Account(from, new Domain.User(Guid.NewGuid(), "alice", "*****@*****.**"), 100m, 90m, 0m);
            var toAccount   = new Domain.Account(to, new Domain.User(Guid.NewGuid(), "bob", "*****@*****.**"), 120m, 80m, 0m);

            Moq.Mock <IAccountRepository> moq = new Moq.Mock <IAccountRepository>();

            moq.Setup(x => x.GetAccountById(from)).Returns(fromAccount);
            moq.Setup(x => x.GetAccountById(to)).Returns(toAccount);

            IAccountRepository repository = moq.Object;

            TransferMoney transferMoney = new TransferMoney(repository);

            bool result = transferMoney.Execute(from, to, 10);

            Assert.True(result);
            Assert.Equal(90m, fromAccount.Balance);
            Assert.Equal(130m, toAccount.Balance);

            moq.Verify(v => v.Update(fromAccount));
            moq.Verify(v => v.Update(toAccount));
        }
        public Account GetAccountByAccountId(int accountid)
        {
            //Please see section on using prepared statements in npgsql user manual for explanation on params and query structure
            Domain.Account Accounts = new Domain.Account();

            return(Accounts);
        }
Пример #3
0
        static Context()
        {
            // drop old databases

            new MongoContext(ConfigurationManager.ConnectionStrings["MongoConnectionReadModel"].ConnectionString)
                .GetDatabase().Drop();

            new MongoContext(ConfigurationManager.ConnectionStrings["MongoConnectionEventStore"].ConnectionString)
                .GetDatabase().Drop();

            _bootstrapper = new NancyTestBootstrapper();
            new Browser(_bootstrapper);

            using (var container = _bootstrapper.CreateContainer())
            {
                var account = new Domain.Account(Guid.NewGuid(),
                    "John Doe BVBA", "John", "Doe", "*****@*****.**");
                var accountAdmin = new Domain.Account(Guid.NewGuid(),
                    "Jane Doe BVBA", "Jane", "Doe", "*****@*****.**");

                account.ChangePassword("john");
                accountAdmin.ChangePassword("jane");
                accountAdmin.MakeAdmin();

                container.Resolve<IAggregateRootRepository>().Save(account);
                container.Resolve<IAggregateRootRepository>().Save(accountAdmin);
            }
        }
Пример #4
0
        private Domain.Account MapAccount(Account account)
        {
            var dAcct = new Domain.Account();

            dAcct.Password = account.Password;
            return(dAcct);
        }
Пример #5
0
        public Account GetAccountByAccountId(int accountid)
        {
            //Please see section on using prepared statements in npgsql user manual for explanation on params and query structure
            Domain.Account Account = new Domain.Account();
            using (Npgsql.NpgsqlConnection conn = new Npgsql.NpgsqlConnection(Infrastructure.ConfigReader.ConnectionString.ToString()))
            {
                conn.Open();
                using (Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(AccountByAccountIDQuery, conn))
                {
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("accountid", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Prepare();
                    command.Parameters[0].Value = accountid;

                    using (Npgsql.NpgsqlDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            Account = populateAccountFromDB(dr);
                        }
                    }
                }
            }

            return(Account);
        }
        public async Task <AddAccountResponse> Handle(AddAccountRequest request, CancellationToken cancellationToken)
        {
            var accountToAdd = new Domain.Account(request.CustomerId);


            var result = await _financialContext.Accounts.AddAsync(accountToAdd, cancellationToken);

            if (request.InitialCredit != 0)
            {
                accountToAdd.UpdateBalance(request.InitialCredit);
                var transactionToAdd = new Transaction(result.Entity.Id, null, request.InitialCredit, "Initial transaction");
                await _financialContext.Transactions.AddAsync(transactionToAdd, cancellationToken);
            }

            await _financialContext.SaveChangesAsync(cancellationToken);

            return(new AddAccountResponse
            {
                Account = new Contracts.Account
                {
                    CustomerId = result.Entity.CustomerId,
                    Balance = result.Entity.Balance
                }
            });
        }
Пример #7
0
        public SetupModule(IAggregateRootRepository repository,
                           IAccountRepository accountRepository,
                           IIdGenerator idGenerator)
            :base("/setup")
        {
            Get["/"] = _ =>
            {
                if (accountRepository.Count() > 0)
                    return HttpStatusCode.NotFound;

                return View["Index"];
            };

            Post["/"] = _ =>
            {
                var model = this.Bind<CreateModel>();

                if (accountRepository.Count() > 0)
                    return HttpStatusCode.NotFound;

                var account = new Domain.Account(idGenerator.NextGuid(),
                    model.Name, model.FirstName, model.LastName, model.Email);

                account.ChangePassword(model.Password);
                account.MakeAdmin();

                repository.Save(account);

                return Response.AsRedirect("/");
            };
        }
Пример #8
0
        public override void Handle(OpenAccountCommand command)
        {
            var account = new Domain.Account(Guid.NewGuid());

            account.OpenFor(command.Name, command.Address);
            _domainRepository.Save(account);
        }
Пример #9
0
        private Account MapAccount(Domain.Account dAcct, Guid personId)
        {
            var account = new Account();

            account.PersonId = personId;
            account.Password = dAcct.Password;
            return(account);
        }
Пример #10
0
        public AdminModule(IAggregateRootRepository repository,
                           IIdGenerator idGenerator)
            : base("/write/admin")
        {
            this.RequiresAuthentication();
            this.RequiresClaims(new[] { "Admin" });

            Post["/account/create"] = parameters =>
            {
                var model = this.Bind<EditableAccount>();
                var account = new Domain.Account(idGenerator.NextGuid(),
                    model.Name, model.FirstName, model.LastName, model.Email);

                var password = account.GeneratePassword();

                repository.Save(account);

                return Json(new
                {
                    Account = new Account(account),
                    Password = password
                });
            };

            Post["/account/update/{id:guid}"] = parameters =>
            {
                var model = this.Bind<EditableAccount>();
                var account = repository.GetById<Domain.Account>((Guid)parameters.id);

                if (account != null)
                {
                    account.ChangeDetails(model.Name, model.FirstName, model.LastName, model.Email);

                    repository.Save(account);

                    return Json(new
                    {
                        Account = new Account(account)
                    });
                }

                return null;
            };

            Post["/account/{id:guid}/newpassword"] = parameters =>
            {
                var model = this.Bind<AccountNewPassword>();
                var account = repository.GetById<Domain.Account>((Guid)parameters.id);

                if (account != null)
                {
                    account.ChangePassword(model.Password);
                    repository.Save(account);
                }

                return null;
            };
        }
Пример #11
0
 public static Index.Model ToModel(this Domain.Account account)
 {
     return(new Index.Model
     {
         Id = account.Id,
         Email = account.Email,
         Role = account.Role
     });
 }
 public static Account ToDomainModel(this SDK.Models.Account entity, Account destination = null)
 {
     if (entity != null)
     {
         if (destination == null)
         {
             destination = new Domain.Account();
         }
         Account result = am.Mapper.Map <SDK.Models.Account, Account>(entity, destination);
         return(result);
     }
     return(null);
 }
        public void SeedAccount()
        {
            var account = new Domain.Account()
            {
                UserName  = "******",
                Password  = _hashService.Hash("admin"),
                CreatedAt = new DateTime(),
                UpdatedAt = new DateTime(),
                CreatedBy = 1,
                UpdatedBy = 1
            };

            _databaseService.Accounts.Add(account);
        }
Пример #14
0
 public void DeleteAccounts(Domain.Account account)
 {
     using (Npgsql.NpgsqlConnection conn = new Npgsql.NpgsqlConnection(Infrastructure.ConfigReader.ConnectionString.ToString()))
     {
         conn.Open();
         using (Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(AccountDeleteQuery, conn))
         {
             command.Parameters.Add(new Npgsql.NpgsqlParameter("accountid", NpgsqlTypes.NpgsqlDbType.Integer));
             command.Prepare();
             command.Parameters[0].Value = account.AccountId;
             int rowsAffected = command.ExecuteNonQuery();
         }
     }
 }
Пример #15
0
        public void CreateNew(Domain.Account account)
        {
            var existingAccount = _context.Accounts.FirstOrDefault(dbAccount => dbAccount.Name == account.Name);

            // bestaat account al?
            if (existingAccount != null)
            {
                // zo ja -> error
                throw new InvalidOperationException("Account already exists");
            }

            // zo nee -> inserten
            _context.Accounts.Add(account);
            _context.SaveChanges();
        }
Пример #16
0
        public void WithdrawMoney_Succesfully()
        {
            Guid from        = Guid.NewGuid();
            var  fromAccount = new Domain.Account(from, new Domain.User(Guid.NewGuid(), "bob", "*****@*****.**"), 120m, 80m, 0m);

            Moq.Mock <IAccountRepository> moq = new Moq.Mock <IAccountRepository>();
            moq.Setup(x => x.GetAccountById(from)).Returns(fromAccount);

            IAccountRepository repository    = moq.Object;
            WithdrawMoney      withdrawMoney = new WithdrawMoney(repository);

            bool result = withdrawMoney.Execute(from, 10);

            Assert.True(result);
            Assert.Equal(110m, fromAccount.Balance);
            moq.Verify(v => v.Update(fromAccount));
        }
Пример #17
0
        public void WithdrawMoney_Failed()
        {
            Guid from        = Guid.NewGuid();
            var  fromAccount = new Domain.Account(from, new Domain.User(Guid.NewGuid(), "bob", "*****@*****.**"), 120m, 80m, 0m);

            Moq.Mock <IAccountRepository> moq = new Moq.Mock <IAccountRepository>();
            moq.Setup(x => x.GetAccountById(from)).Returns(fromAccount);
            moq.Setup(x => x.Update(fromAccount)).Throws(new Exception("Shouldn't be called."));

            IAccountRepository repository    = moq.Object;
            WithdrawMoney      withdrawMoney = new WithdrawMoney(repository);

            bool result = withdrawMoney.Execute(from, 130m);

            Assert.False(result);
            Assert.Equal(120m, fromAccount.Balance);
        }
Пример #18
0
        //To save account(s) to DB
        public void SaveAccounts(Domain.Account account)
        {
            string query;
            bool   isUpdate = false;

            // Want to know right off the bat if we're doing a insert or update
            if (account.AccountId > 0)
            {
                query    = AccountUpdateQuery;
                isUpdate = true;
            }
            else
            {
                query = AccountInsertQuery;
            }

            using (Npgsql.NpgsqlConnection conn = new Npgsql.NpgsqlConnection(Infrastructure.ConfigReader.ConnectionString.ToString()))
            {
                conn.Open();
                using (Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(query, conn))
                {
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("merchantid", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("accountname", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("aacreator", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("assignedsalesrep", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("salesrepnumber", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("officenumber", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("status", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("accountapprovaldate", NpgsqlTypes.NpgsqlDbType.Timestamp));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("annualfee", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("estimatedmonthlyvolume", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("ht", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("hmv", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("platform", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("vendor", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("vip", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("mbp", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("freesupplies", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("pcirefund", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("mailingstreet", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("mailingcity", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("mailingstate", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("mailingzipcode", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("dbastreet", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("dbacity", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("dbastate", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("dbazipcode", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primaryphone", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondaryphone", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("faxnumber", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primaryemail", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondaryemail", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("website", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("credit", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("debit", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("arb", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("cim", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("ip", NpgsqlTypes.NpgsqlDbType.Boolean));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("giftcardprocessor", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secur_chex", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("software", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("ecommerce", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primaryterminal", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primaryterminalowner", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primaryterminalquantity", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondaryterminal", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondaryterminalowner", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondaryterminalquantity", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("checkequipment", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("checkequipmentowner", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("checkequipmentquantity", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primarypinpad", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primarypinpadowner", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("primarypinpadquantity", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondarypinpad", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondarypinpadowner", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("secondarypinpadquantity", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("printer", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("priterowner", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("description", NpgsqlTypes.NpgsqlDbType.Text));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("uploadfiles", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("parentlead", NpgsqlTypes.NpgsqlDbType.Integer));



                    if (isUpdate)
                    {
                        command.Parameters.Add(new Npgsql.NpgsqlParameter("accountid", NpgsqlTypes.NpgsqlDbType.Integer));
                    }

                    command.Prepare();

                    command.Parameters[0].Value  = account.MerchantId;
                    command.Parameters[1].Value  = account.AccountName;
                    command.Parameters[2].Value  = account.AACreator;
                    command.Parameters[3].Value  = account.AssignedSalesRep;
                    command.Parameters[4].Value  = account.SalesRepNumber;
                    command.Parameters[5].Value  = account.OfficeNumber;
                    command.Parameters[6].Value  = account.Status;
                    command.Parameters[7].Value  = account.AccountApprovalDate;
                    command.Parameters[8].Value  = account.AnnualFee;
                    command.Parameters[9].Value  = account.EstimatedMonthlyVolume;
                    command.Parameters[10].Value = account.HT;
                    command.Parameters[11].Value = account.HMV;
                    command.Parameters[12].Value = account.Platform;
                    command.Parameters[13].Value = account.Vendor;
                    command.Parameters[14].Value = account.VIP;
                    command.Parameters[15].Value = account.MBP;
                    command.Parameters[16].Value = account.FreeSupplies;
                    command.Parameters[17].Value = account.PCIRefund;
                    command.Parameters[18].Value = account.MailingStreet;
                    command.Parameters[19].Value = account.MailingCity;
                    command.Parameters[20].Value = account.MailingState;
                    command.Parameters[21].Value = account.MailingZipcode;
                    command.Parameters[22].Value = account.DBAStreet;
                    command.Parameters[23].Value = account.DBACity;
                    command.Parameters[24].Value = account.DBAState;
                    command.Parameters[25].Value = account.DBAZipcode;
                    command.Parameters[26].Value = account.PrimaryPhone;
                    command.Parameters[27].Value = account.SecondaryPhone;
                    command.Parameters[28].Value = account.FaxNumber;
                    command.Parameters[29].Value = account.PrimaryEmail;
                    command.Parameters[30].Value = account.SecondaryEmail;
                    command.Parameters[31].Value = account.Website;
                    command.Parameters[32].Value = account.Credit;
                    command.Parameters[33].Value = account.Debit;
                    command.Parameters[34].Value = account.ARB;
                    command.Parameters[35].Value = account.CIM;
                    command.Parameters[36].Value = account.IP;
                    command.Parameters[37].Value = account.GiftCardProcessor;
                    command.Parameters[38].Value = account.Secur_Chex;
                    command.Parameters[39].Value = account.Software;
                    command.Parameters[40].Value = account.ECommerace;
                    command.Parameters[41].Value = account.PrimaryTerminal;
                    command.Parameters[42].Value = account.PrimaryTerminalOwner;
                    command.Parameters[43].Value = account.PrimaryTerminalQuantity;
                    command.Parameters[44].Value = account.SecondaryTerminal;
                    command.Parameters[45].Value = account.SecondaryTerminalOwner;
                    command.Parameters[46].Value = account.SecondaryTerminalQuantity;
                    command.Parameters[47].Value = account.CheckEquipment;
                    command.Parameters[48].Value = account.CheckEquipmentOwner;
                    command.Parameters[49].Value = account.CheckEquipmentQuantity;
                    command.Parameters[50].Value = account.PrimaryPINpad;
                    command.Parameters[51].Value = account.PrimaryPINpadOwner;
                    command.Parameters[52].Value = account.PrimaryPINpadQuantity;
                    command.Parameters[53].Value = account.SecondaryPINpad;
                    command.Parameters[54].Value = account.SecondaryPINpadOwner;
                    command.Parameters[55].Value = account.SecondaryPINpadQuantity;
                    command.Parameters[56].Value = account.Printer;
                    command.Parameters[57].Value = account.PrinterOwner;
                    command.Parameters[58].Value = account.Description;
                    command.Parameters[59].Value = account.UploadedFiles;
                    command.Parameters[60].Value = account.ParentLead;



                    if (isUpdate)
                    {
                        command.Parameters[61].Value = account.AccountId;
                    }

                    int rowsAffected = command.ExecuteNonQuery();
                }
            }
            if (account.NewFilePath != null && account.NewFilePath != string.Empty)
            {
                PGUploadedfileRepository upFile = new PGUploadedfileRepository();
                upFile.InsertAccountFile(account.AccountId, account.NewFilePath);
            }
        }
Пример #19
0
 public void OnGet()
 {
     var account = new Domain.Account("Timo");
 }