Beispiel #1
0
        public ActionResult CreateTechCompany()
        {
            if (HasTc(User.Identity.GetUserId()))
            {
                return(RedirectToAction("Index"));
            }

            var techCompany = new CreateTechCompanyViewModel
            {
                TagList        = GetMainTagList(),
                TechDomainList = GetTechDomainList(),
                CountryList    = GetCountryList()
            };

            return(View(techCompany));
        }
Beispiel #2
0
        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);
                    }
                }
        }
Beispiel #3
0
        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));
        }