public void TestGetCreate() { var entity = new Rate(); entity.Id = "testId"; _repository.Create(entity); Assert.Equal(entity, _repository.GetById("testId")); }
public ActionResult RegisterJuridicalPerson(JuridicalPersonRegistrationViewModel 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 juridicalAddressCityId = ValidationUtils.TryGetShort(model.JuridicalAddressCityId, "Неверное значение входного параметра."); 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 juridicalAddressCity = cityRepository.GetById(juridicalAddressCityId); ValidationUtils.NotNull(juridicalAddressCity, "Город не найден."); var juridicalAddress = new Address(juridicalAddressCity, model.JuridicalAddressPostalIndex, model.JuridicalAddressLocalAddress); var rate = rateRepository.GetById(rateId); ValidationUtils.NotNull(rate, "Тариф не найден."); Address postalAddress = null; if (model.PostalAddressEqualsJuridical) { postalAddress = new Address(juridicalAddress.City, juridicalAddress.PostalIndex, juridicalAddress.LocalAddress); } else { var postalAddressCity = cityRepository.GetById(postalAddressCityId); ValidationUtils.NotNull(postalAddressCityId, "Город не найден."); postalAddress = new Address(postalAddressCity, model.PostalAddressPostalIndex, model.PostalAddressLocalAddress); } var client = new JuridicalPerson(model.ShortName, juridicalAddress, postalAddress, model.INN, model.DirectorPost, model.DirectorName, currentDateTime); client.AdminEmail = model.AdminEmail; client.DBServerName = AppSettings.ClientDBServerName; client.DirectorEmail = model.DirectorEmail; client.KPP = model.KPP; client.OGRN = model.OGRN; client.OKPO = model.OKPO; 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))); } }