Example #1
0
        public ActionResult RegisterEasy(FreeClientRegistrationViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    var firstError = ModelState.Values.Where(x => x.Errors.Any()).FirstOrDefault();

                    ValidationUtils.IsNull(firstError, firstError.Errors.FirstOrDefault().ErrorMessage);
                }

                var currentDateTime = DateTimeUtils.GetCurrentDateTime();

                using (IUnitOfWork uow = unitOfWorkFactory.Create(IsolationLevel.Serializable))
                {
                    var rate = rateRepository.GetById(5 /* тариф «Тестовый период»*/);
                    ValidationUtils.NotNull(rate, "Тариф не найден.");

                    var client = new Client(currentDateTime);
                    client.AdminEmail   = model.AdminEmail;
                    client.DBServerName = AppSettings.ClientDBServerName;
                    client.Phone        = model.Phone;
                    client.PromoCode    = model.PromoCode;

                    clientRepository.Save(client);

                    client.DBName = "bizpulse_" + client.Number.ToString();

                    var admin = new ClientUser(model.AdminLastName, model.AdminFirstName, model.AdminLogin, CryptographyUtils.ComputeHash(model.AdminPassword),
                                               true, currentDateTime);

                    client.AddUser(admin);

                    // добавление первого набора услуг и первой услуги в набор
                    client.CreateInitialStandardServiceSet(client, rate, currentDateTime);

                    uow.Commit();

                    // создание БД клиента
                    CreateClientDatabase(client, currentDateTime);

                    // отправка письма о регистрации
                    SendRegistrationLetter(client, admin, model.AdminPassword);

                    return(Content(client.Id.ToString()));
                }
            }
            catch (Exception ex)
            {
                return(Content(ProcessException(ex)));
            }
        }
Example #2
0
        public void ValidationUtils_IsNull_WithNotNullInt_ThrowsException()
        {
            try
            {
                ValidationUtils.IsNull((int?)5, "Значение не пусто.");

                Assert.Fail("Исключение не было выброшено.");
            }
            catch (Exception ex)
            {
                Assert.AreEqual("Значение не пусто.", ex.Message);
            }
        }
Example #3
0
        public void ValidationUtils_IsNull_WithNullValues_DoesntThrowException()
        {
            ValidationUtils.IsNull((bool?)null, "Значение не пусто.");
            ValidationUtils.IsNull((byte?)null, "Значение не пусто.");
            ValidationUtils.IsNull((int?)null, "Значение не пусто.");
            ValidationUtils.IsNull((short?)null, "Значение не пусто.");
            ValidationUtils.IsNull((decimal?)null, "Значение не пусто.");
            ValidationUtils.IsNull((double?)null, "Значение не пусто.");

            ValidationUtils.IsNull((string)null, "Значение не пусто.");

            ValidationUtils.IsNull((Guid?)null, "Непустой гуид.");
            ValidationUtils.IsNull((DateTime?)null, "Непустая дата.");

            ValidationUtils.IsNull((ValidationUtilsTest)null, "Значение не пусто.");
        }
Example #4
0
 /// <summary>
 /// Проверка разрешения на добавление договора по сделке
 /// </summary>
 public virtual void CheckPossibilityToAddContract()
 {
     ValidationUtils.IsNull(Contract, "Договор по данной сделке уже создан.");
     ValidationUtils.Assert(Stage.ContainsIn(DealStage.DecisionMakerSearch, DealStage.ClientInvestigation, DealStage.CommercialProposalPreparation,
         DealStage.Negotiations, DealStage.ContractSigning), String.Format("Невозможно добавить договор в сделку со статусом «{0}».", Stage.GetDisplayName()));
 }
Example #5
0
        public ActionResult RegisterPhysicalPerson(PhysicalPersonRegistrationViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    var firstError = ModelState.Values.Where(x => x.Errors.Any()).FirstOrDefault();

                    ValidationUtils.IsNull(firstError, firstError.Errors.FirstOrDefault().ErrorMessage);
                }

                var currentDateTime = DateTimeUtils.GetCurrentDateTime();

                var registrationAddressCityId = ValidationUtils.TryGetShort(model.RegistrationAddressCityId, "Неверное значение входного параметра.");
                var postalAddressCityId       = ValidationUtils.TryGetShort(model.PostalAddressCityId, "Неверное значение входного параметра.");
                var rateId = ValidationUtils.TryGetShort(model.RateId, "Неверное значение входного параметра.");

                var extraUserCount                = ValidationUtils.TryGetShort(model.ExtraUserCount);
                var extraTeamCount                = ValidationUtils.TryGetShort(model.ExtraTeamCount);
                var extraStorageCount             = ValidationUtils.TryGetShort(model.ExtraStorageCount);
                var extraAccountOrganizationCount = ValidationUtils.TryGetShort(model.ExtraAccountOrganizationCount);
                var extraGigabyteCount            = ValidationUtils.TryGetShort(model.ExtraGigabyteCount);

                using (IUnitOfWork uow = unitOfWorkFactory.Create(IsolationLevel.Serializable))
                {
                    var registrationAddressCity = cityRepository.GetById(registrationAddressCityId);
                    ValidationUtils.NotNull(registrationAddressCity, "Город не найден.");

                    var registrationAddress = new Address(registrationAddressCity, model.RegistrationAddressPostalIndex, model.RegistrationAddressLocalAddress);

                    var rate = rateRepository.GetById(rateId);
                    ValidationUtils.NotNull(rate, "Тариф не найден.");

                    Address postalAddress = null;

                    if (model.PostalAddressEqualsRegistration)
                    {
                        postalAddress = new Address(registrationAddress.City, registrationAddress.PostalIndex, registrationAddress.LocalAddress);
                    }
                    else
                    {
                        var postalAddressCity = cityRepository.GetById(postalAddressCityId);
                        ValidationUtils.NotNull(postalAddressCityId, "Город не найден.");

                        postalAddress = new Address(postalAddressCity, model.PostalAddressPostalIndex, model.PostalAddressLocalAddress);
                    }

                    var client = new PhysicalPerson(model.LastName, model.FirstName, model.Patronymic, model.INNIP, registrationAddress, postalAddress, currentDateTime);

                    client.AdminEmail   = model.AdminEmail;
                    client.DBServerName = AppSettings.ClientDBServerName;
                    client.OGRNIP       = model.OGRNIP;
                    client.Phone        = model.Phone;
                    client.PromoCode    = model.PromoCode;

                    clientRepository.Save(client);

                    client.DBName = "bizpulse_" + client.Number.ToString();

                    var admin = new ClientUser(model.AdminLastName, model.AdminFirstName, model.AdminLogin, CryptographyUtils.ComputeHash(model.AdminPassword),
                                               true, currentDateTime);
                    admin.Patronymic = model.AdminPatronymic;

                    client.AddUser(admin);

                    // добавление первого набора услуг и первой услуги в набор
                    client.CreateInitialServiceSet(client, rate, extraUserCount, extraTeamCount, extraStorageCount,
                                                   extraAccountOrganizationCount, extraGigabyteCount, currentDateTime);

                    uow.Commit();

                    // создание БД клиента
                    CreateClientDatabase(client, currentDateTime);

                    // отправка письма о регистрации
                    SendRegistrationLetter(client, admin, model.AdminPassword);

                    return(Content(client.Id.ToString()));
                }
            }
            catch (Exception ex)
            {
                return(Content(ProcessException(ex)));
            }
        }
Example #6
0
 public virtual void CheckPossibilityToDeleteBatch(ProductionOrderBatch batch)
 {
     ValidationUtils.Assert(!IsIncludingOneBatch, "Невозможно удалить последнюю партию в заказе.");
     ValidationUtils.IsNull(batch.ReceiptWaybill, "Невозможно удалить партию, по которой создана приходная накладная.");
 }