Ejemplo n.º 1
0
 /// <summary>
 /// Сгенерировать дату открытия счета.
 /// Она должна быть после рождения клиента и даты создания банка
 /// </summary>
 /// <returns></returns>
 private static DateTime GenAccOpeningDate(IClientDTO c)
 {
     if ((DateTime)c.CreationDate < GoodBankTime.BankFoundationDay)
     {
         return(GenDate(GoodBankTime.BankFoundationDay, GoodBankTime.Today));
     }
     return(GenDate((DateTime)c.CreationDate, GoodBankTime.Today));
 }
Ejemplo n.º 2
0
        private static void GenerateAccountsForClient(IClientDTO client)
        {
            return;

            GenerateSavingAccounts(client, r.Next(0, 6));
            GenerateDeposits(client, r.Next(0, 6));
            GenerateCredits(client, r.Next(0, 6));
        }
Ejemplo n.º 3
0
 private static void GenerateSavingAccounts(IClientDTO c, int num)
 {
     for (int i = 0; i < num; i++)
     {
         BA.Accounts.GenerateAccount(
             new AccountDTO(c.ClientType, c.ID, AccountType.Saving,
                            r.Next(0, 100) * 1000,                                                                       // сумма на текущем счеты
                            0,                                                                                           // процент по вкладу
                            false, 0, "не используется",
                            GenAccOpeningDate(c), true, true, RecalcPeriod.NoRecalc, 0, 0));
     }
 }
        public void InsertClient(IClientDTO c)
        {
            DataRow newRow = ds.Tables["Clients"].NewRow();

            newRow["ID"]        = c.ID;                                         // Уникальный ID клиента
            newRow["Telephone"] = c.Telephone;
            newRow["Email"]     = c.Email;
            newRow["Address"]   = c.Address;
            ds.Tables["Clients"].Rows.Add(newRow);

            DataRow newClientTypeRow;

            switch (c.ClientType)
            {
            case ClientType.VIP:
                newClientTypeRow                   = ds.Tables["VIPclients"].NewRow();
                newClientTypeRow["id"]             = c.ID;                                       // Foreign Key для связи с таблицей Clients
                newClientTypeRow["FirstName"]      = c.FirstName;
                newClientTypeRow["MiddleName"]     = c.MiddleName;
                newClientTypeRow["LastName"]       = c.LastName;
                newClientTypeRow["PassportNumber"] = c.PassportOrTIN;
                newClientTypeRow["BirthDate"]      = c.CreationDate;
                ds.Tables["VIPclients"].Rows.Add(newClientTypeRow);
                break;

            case ClientType.Simple:
                newClientTypeRow                   = ds.Tables["SIMclients"].NewRow();
                newClientTypeRow["id"]             = c.ID;                                       // Foreign Key для связи с таблицей Clients
                newClientTypeRow["FirstName"]      = c.FirstName;
                newClientTypeRow["MiddleName"]     = c.MiddleName;
                newClientTypeRow["LastName"]       = c.LastName;
                newClientTypeRow["PassportNumber"] = c.PassportOrTIN;
                newClientTypeRow["BirthDate"]      = c.CreationDate;
                ds.Tables["SIMclients"].Rows.Add(newClientTypeRow);
                break;

            case ClientType.Organization:
                newClientTypeRow                       = ds.Tables["ORGclients"].NewRow();
                newClientTypeRow["id"]                 = c.ID;                                           // Foreign Key для связи с таблицей Clients
                newClientTypeRow["OrgName"]            = c.MainName;
                newClientTypeRow["DirectorFirstName"]  = c.FirstName;
                newClientTypeRow["DirectorMiddleName"] = c.MiddleName;
                newClientTypeRow["DirectorLastName"]   = c.LastName;
                newClientTypeRow["TIN"]                = c.PassportOrTIN;
                newClientTypeRow["RegistrationDate"]   = c.CreationDate;
                ds.Tables["ORGclients"].Rows.Add(newClientTypeRow);
                break;
            }
        }
Ejemplo n.º 5
0
        private static void GenerateCredits(IClientDTO c, int num)
        {
            for (int i = 0; i < num; i++)
            {
                DateTime openingDate = GenAccOpeningDate(c);
                int      monthsElapsed;
                int      duration = GenDepositCreditDuration(openingDate, out monthsElapsed);
                int      amount   = duration * 10_000 * r.Next(1, 4);

                double interest = 0;
                switch (c.ClientType)
                {
                case ClientType.VIP:
                    interest = ((double)r.Next(7, 13)) / 100;
                    break;

                case ClientType.Simple:
                    interest = ((double)r.Next(12, 21)) / 100;
                    break;

                case ClientType.Organization:
                    interest = ((double)r.Next(15, 26)) / 100;
                    break;
                }

                BA.Accounts.GenerateAccount(
                    new AccountDTO(c.ClientType, c.ID, AccountType.Credit,
                                   -amount,                                                     // долг
                                   interest,                                                    // процент
                                   true,                                                        // капитализация
                                   0,                                                           // на собственный
                                   "не используется",
                                   openingDate,
                                   true,                                                        // Можем поплнять или нет
                                   false,                                                       // Можем частично снимать или нет
                                   RecalcPeriod.Monthly,                                        // Периодичность пересчета
                                   duration,                                                    // Количество месяцев вклада
                                   monthsElapsed));                                             // Сколько месяцев уже прошло до настоящего момента
            }
        }
Ejemplo n.º 6
0
        private static void GenerateDeposits(IClientDTO c, int num)
        {
            for (int i = 0; i < num; i++)
            {
                DateTime openingDate = GenAccOpeningDate(c);
                int      monthsElapsed;
                int      duration = GenDepositCreditDuration(openingDate, out monthsElapsed);

                double interest = 0;
                switch (c.ClientType)
                {
                case ClientType.VIP:
                    interest = ((double)r.Next(11, 21)) / 100;
                    break;

                case ClientType.Simple:
                    interest = ((double)r.Next(5, 11)) / 100;
                    break;

                case ClientType.Organization:
                    interest = ((double)r.Next(7, 16)) / 100;
                    break;
                }

                BA.Accounts.GenerateAccount(
                    new AccountDTO(c.ClientType, c.ID, AccountType.Deposit,
                                   r.Next(100, 300) * 10000,                            // сумма на счету. У ВИП > 1 mln
                                   interest,                                            // процент
                                   TrueFalse(),                                         // капитализация
                                   0,                                                   // У нас ещё нет счета для перечисления ...
                                   "внутренний счет",
                                   openingDate,
                                   TrueFalse(),                                                         // Можем поплнять или нет
                                   TrueFalse(),                                                         // Можем частично снимать или нет
                                   GenDepositRecalc(),                                                  // Периодичность пересчета
                                   duration,                                                            // Количество месяцев вклада
                                   monthsElapsed));                                                     // Сколько месяцев уже прошло до настоящего момента
            }
        }
        public IClientDTO AddClient(IClientDTO client)
        {
            Client newClient = null;

            switch (client.ClientType)
            {
            case ClientType.VIP:
                newClient = new ClientVIP(client);
                break;

            case ClientType.Simple:
                newClient = new СlientSIM(client);
                break;

            case ClientType.Organization:
                newClient = new СlientORG(client);
                break;
            }
            IClientDTO nc = new ClientDTO(newClient);

            InsertClient(nc);
            return(nc);
        }
 public void UpdateClient(IClientDTO updatedClient)
 {
 }