public ActionResult CreateTechCompany() { if (HasTc(User.Identity.GetUserId())) { return(RedirectToAction("Index")); } var techCompany = new CreateTechCompanyViewModel { TagList = GetMainTagList(), TechDomainList = GetTechDomainList(), CountryList = GetCountryList() }; return(View(techCompany)); }
private bool CreateNewTcForUser(CreateTechCompanyViewModel techCompany) { using (var db = new InnosixEntities()) using (var transaction = db.Database.BeginTransaction()) { try { var tcBasicInfo = new TCBasicInfo { CompanyName = techCompany.CompanyName, CompanyWebsite = techCompany.CompanyWebsite, CountryId = techCompany.CountryId, CompanyEmail = techCompany.CompanyEmail, CompanyPhone = techCompany.CompanyPhone }; tcBasicInfo.TCActive = new TCActive { TCid = tcBasicInfo.Id, IsActive = true }; tcBasicInfo.TCGeneral = new TCGeneral { TCid = tcBasicInfo.Id, Created = DateTime.Now, LastUpdated = DateTime.Now }; db.TCBasicInfo.Add(tcBasicInfo); var techTagsToTc = techCompany.TagIds.Select(tagId => new TechTagToTC { TechTagId = tagId, TCid = tcBasicInfo.Id }).ToList(); db.TechTagToTC.AddRange(techTagsToTc); var techDomainsToTc = techCompany.TechDomainIds.Select(techDomainId => new TechDomainToTC { TechDomainId = techDomainId, TCid = tcBasicInfo.Id }).ToList(); db.TechDomainToTC.AddRange(techDomainsToTc); var userToTc = new AspNetUsersToTC { AspNetUserId = User.Identity.GetUserId(), TCid = tcBasicInfo.Id }; db.AspNetUsersToTC.Add(userToTc); db.SaveChanges(); transaction.Commit(); return(true); } catch (Exception ex) { transaction.Rollback(); return(false); } } }
public ActionResult CreateTechCompany(CreateTechCompanyViewModel techCompany) { if (!ModelState.IsValid) { return(View("CreateTechCompany", techCompany)); } if (!Utilities.IsEmailValid(techCompany.CompanyEmail)) { ViewBag.Message = "Invalid email address"; techCompany.TagList = GetMainTagList(); techCompany.TechDomainList = GetTechDomainList(); techCompany.CountryList = GetCountryList(); return(View("CreateTechCompany", techCompany)); } if (!Utilities.ValidUrl(techCompany.CompanyWebsite)) { ViewBag.Message = "Invalid website url"; techCompany.TagList = GetMainTagList(); techCompany.TechDomainList = GetTechDomainList(); techCompany.CountryList = GetCountryList(); return(View("CreateTechCompany", techCompany)); } techCompany.CompanyWebsite = Utilities.CreateValidUrl(techCompany.CompanyWebsite); if (techCompany.TagIds == null || techCompany.TagIds.Count() < 3) { ViewBag.Message = "Required minimum 3 tags"; techCompany.TagList = GetMainTagList(); techCompany.TechDomainList = GetTechDomainList(); techCompany.CountryList = GetCountryList(); return(View("CreateTechCompany", techCompany)); } if (techCompany.TechDomainIds == null || !techCompany.TechDomainIds.Any() || techCompany.TechDomainIds.Count() > 3) { ViewBag.Message = "Required minimum 1 tech domain and maximum of 3"; techCompany.TagList = GetMainTagList(); techCompany.TechDomainList = GetTechDomainList(); techCompany.CountryList = GetCountryList(); return(View("CreateTechCompany", techCompany)); } var existingTcId = TcExists(techCompany.CompanyWebsite); if (existingTcId != null) { return(RedirectToAction("ClaimForm", "TechCompany", new { id = existingTcId })); } var isTcCreated = CreateNewTcForUser(techCompany); if (!isTcCreated) { ViewBag.Message = "Couldn't create new tech company"; techCompany.TagList = GetMainTagList(); techCompany.TechDomainList = GetTechDomainList(); techCompany.CountryList = GetCountryList(); return(View("CreateTechCompany", techCompany)); } var model = GetTcWithChildren(); return(model != null?View("Index", model) : View("CreateTechCompany", techCompany)); }