public ActionResult AddDomain(long companyId, string domainName) { if (string.IsNullOrEmpty(domainName)) { SetViewBag(companyId); ViewBag.Error = "Укажите имя домена"; ViewBag.DomainName = domainName; var model = DB.CompanyDomainName.Where(x => x.CompanyId == companyId).ToList(); return(View("DomainList", model)); } var ea = new EmailAddressAttribute(); if (!ea.IsValid($"ab@{domainName}")) { SetViewBag(companyId); ViewBag.Error = "Неверный формат домена"; ViewBag.DomainName = domainName; var model = DB.CompanyDomainName.Where(x => x.CompanyId == companyId).ToList(); return(View("DomainList", model)); } var domainExist = DB.CompanyDomainName.SingleOrDefault(x => x.CompanyId == companyId && x.Name == domainName); if (domainExist != null) { SetViewBag(companyId); ViewBag.Error = $"Домен {domainName} уже есть в списке данного производителя"; ViewBag.DomainName = domainName; var model = DB.CompanyDomainName.Where(x => x.CompanyId == companyId).ToList(); return(View("DomainList", model)); } var newDomain = new CompanyDomainName() { CompanyId = companyId, Name = domainName }; DB.CompanyDomainName.Add(newDomain); DB.SaveChanges(); return(RedirectToAction("DomainList", new { companyId = companyId })); }
public ActionResult Registration(RegViewModel model) { if (!ModelState.IsValid) { ViewBagAppointmentList(model.ProducerId); return(View(model)); } // если уже есть такой пользователь var user = DB.Account.SingleOrDefault(x => x.Login == model.login); if (user != null) { ErrorMessage("Пользователь с указанным email уже зарегистрирован, попробуйте восстановить пароль"); ViewBagAppointmentList(model.ProducerId); return(View(model)); } // если такой компании нет. Компания - это не производитель, это прослойка под производителем var company = DB.AccountCompany.SingleOrDefault(x => x.ProducerId == model.ProducerId); if (company == null) { company = new AccountCompany() { ProducerId = model.ProducerId, Name = model.ProducerName }; DB.AccountCompany.Add(company); DB.SaveChanges(); string domainName = model.login.Split('@')[1].ToLower(); var domain = new CompanyDomainName() { Name = domainName, CompanyId = company.Id }; DB.CompanyDomainName.Add(domain); DB.SaveChanges(); } // создали новый аккаунт var password = GetRandomPassword(); var account = SaveAccount(accountCompany: company, Reg_ViewModel: model, Pass: password); var regionCodes = DB.Regions().Select(x => x.Id).ToList(); foreach (var regionCode in regionCodes) { account.AccountRegion.Add(new AccountRegion() { AccountId = account.Id, RegionId = regionCode }); } // добавили аккаунт в группу админов var adminGroup = DB.AdminGroup(); account.AccountGroup.Add(adminGroup); account.LastUpdatePermisison = DateTime.Now; DB.SaveChanges(); // отправили письмо о регистрации Mails.SendRegistrationMessage(account, password); SuccessMessage("Пароль отправлен на ваш email " + account.Login); return(Redirect("~")); }