Ejemplo n.º 1
0
        private CompanyModels.NewCo LoadCoInfo(int SiteCoID)
        {
            var model = new CompanyModels.NewCo();

            model.SiteCoID = SiteCoID;

            SiteCompanies coinfo = db.SiteCompanies.Where(p => p.SiteCoID == SiteCoID).FirstOrDefault();

            if (coinfo == null)
            {
                return(model);
            }

            model = new CompanyModels.NewCo()
            {
                SiteCoID      = coinfo.SiteCoID,
                CoName        = coinfo.CoName,
                CoAddress1    = coinfo.CoAddress1,
                CoAddress2    = coinfo.CoAddress2,
                CoCity        = coinfo.CoCity,
                CoState       = coinfo.CoState,
                CoZip         = coinfo.CoZip,
                CoCountry     = coinfo.CoCountry,
                CoPhone       = coinfo.CoPhone,
                CoDateCreated = coinfo.CoDateCreated,
                CoAcctNumber  = coinfo.CoAcctNumber
            };

            var siteCoID = siteusercompanyid;

            ViewBag.SiteCountries = new SelectList("CountryID", "Country");

            return(model);
        }
Ejemplo n.º 2
0
        public ActionResult Edit(int?id, SiteCompanies sitecompany)
        {
            if (id == null)
            {
                id = base.siteusercompanyid;
            }
            SiteCompanies coinfo = db.SiteCompanies.Where(p => p.SiteCoID == (id ?? 0)).FirstOrDefault();

            if (coinfo == null)
            {
                return(Json(new { status = "error" }));
                // return HttpNotFound();
            }
            // var model = LoadCoInfo(id ?? 0);
            coinfo.CoName     = sitecompany.CoName ?? coinfo.CoName;
            coinfo.CoAddress1 = sitecompany.CoAddress1 ?? coinfo.CoAddress1;
            coinfo.CoAddress2 = sitecompany.CoAddress2 ?? coinfo.CoAddress2;
            coinfo.CoCity     = sitecompany.CoCity ?? coinfo.CoCity;
            coinfo.CoState    = sitecompany.CoState ?? coinfo.CoState;
            coinfo.CoCountry  = sitecompany.CoCountry ?? coinfo.CoCountry;
            coinfo.CoZip      = sitecompany.CoZip ?? coinfo.CoZip;
            coinfo.CoPhone    = sitecompany.CoPhone ?? coinfo.CoPhone;
            db.SaveChanges();
            return(Json(new { status = "success" }));
        }
Ejemplo n.º 3
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                id = base.siteusercompanyid;
            }
            SiteCompanies coinfo = db.SiteCompanies.Where(p => p.SiteCoID == (id ?? 0)).FirstOrDefault();

            if (coinfo == null)
            {
                return(HttpNotFound());
            }
            var model = LoadCoInfo(id ?? 0);

            return(View("EditCo", coinfo));
        }
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            HttpSessionStateBase session = filterContext.HttpContext.Session;
            ePontiv2Entities     db      = new ePontiv2Entities();

            // set up user profile here
            if (User.Identity.IsAuthenticated)
            {
                // Session.Remove("displayusername");
                aspnetuserid = User.Identity.GetUserId();
                var manager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));
                //var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(DBContext));
                var currentUser = manager.FindById(User.Identity.GetUserId());
                siteuserid                 = currentUser.siteuserid;
                siteusercompanyid          = currentUser.sitecoid;
                displayusername            = db.SiteUsers.Where(p => p.SiteUserID == siteuserid).Select(p => p.UserDisplayName).FirstOrDefault();
                Session["displayusername"] = displayusername;
                // check session for company id and name
                //if (Session["companyname"] != null) {
                //    companyname = Session["companyname"].ToString();
                //} else {
                if (siteusercompanyid > 0)
                {
                    SiteCompanies sitecompany = db.SiteCompanies.Where(x => x.SiteCoID == siteusercompanyid).ToList().Single();
                    companyname            = sitecompany.CoName;
                    Session["companyname"] = companyname;
                }
                //   }
                ViewBag.companyname = companyname;
                var siteco = db.SiteCompanies.Where(p => p.SiteCoID == (siteusercompanyid)).FirstOrDefault();
                ViewBag.SiteCoInfo = siteco;
                if (siteco.Logo != null)
                {
                    Session.Remove("ImageData");
                    string imageBase64Data = Convert.ToBase64String(siteco.Logo);
                    string imageDataURL    = string.Format("data:image/png;base64,{0}", imageBase64Data);
                    Session["ImageData"] = imageDataURL;
                }
            }
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> Register(RegisterViewModel Model)
        {
            var isAdmin = string.IsNullOrWhiteSpace(Model.InvitationCode);

            //if it is invited user, then company name will be null. Fill it to avoid false model error
            if (!isAdmin)
            {
                Model.CompanyDetails.CompanyName = "Company Name";
            }

            if (ModelState.IsValid)
            {
                AspNetUsers   aspNetUser         = new AspNetUsers();
                SiteUsers     siteUser           = new SiteUsers();
                SiteCompanies company            = new SiteCompanies();
                bool?         invitationAccepted = null;

                using (ePontiv2Entities db = new ePontiv2Entities())
                    using (TransactionScope tran = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        CommonRepository repo = new CommonRepository(db);

                        //Site Company
                        if (!isAdmin)
                        {
                            aspNetUser = db.AspNetUsers.AsNoTracking().Where(p => p.InvitationCode == Model.InvitationCode && p.InvitationAccepted != true).FirstOrDefault();
                            if (aspNetUser == null)
                            {
                                ModelState.AddModelError("", "Invitation code invalid or expired.");
                                return(View(Model));
                            }

                            siteUser = db.SiteUsers.Where(p => p.ASPNetUserID == aspNetUser.Id).FirstOrDefault();
                            if (siteUser == null)
                            {
                                ModelState.AddModelError("", "Invitation code invalid or expired.");
                                return(View(Model));
                            }

                            company = db.SiteCompanies.Where(p => p.SiteCoID == siteUser.SiteCoID).FirstOrDefault();
                            if (company == null)
                            {
                                ModelState.AddModelError("", "Invitation code invalid or expired.");
                                return(View(Model));
                            }

                            invitationAccepted             = true;
                            Model.CompanyDetails.CompanyID = company.SiteCoID;
                        }
                        else
                        {
                            #region Add New Company

                            var co = Model.CompanyDetails;

                            int status = repo.AddNewSiteCompany(new SiteCompanies()
                            {
                                CoName     = co.CompanyName,
                                CoAddress1 = co.Address1,
                                CoAddress2 = co.Address2,
                                CoCity     = co.City,
                                CoState    = co.State,
                                CoZip      = co.Zip,
                                CoCountry  = co.Country,
                                CoPhone    = co.Phone
                            });

                            if (status == -1)
                            {
                                ModelState.AddModelError("", "Company already registered. Please contact your company for invitation.");
                                return(View(Model));
                            }

                            Model.CompanyDetails.CompanyID = status;
                            db.InsertNewCoData(status);
                            db.SaveChanges();

                            //db.InsertFirstLicense(status,DateTime.Now,d)
                            #endregion
                        }

                        //ASP Net User
                        var emailAlreadyExists = db.AspNetUsers.Where(p => p.Email == Model.Email && //check for same email
                                                                      p.Id != aspNetUser.Id) // ignore user's own email - in case for invited user
                                                 .Any();
                        if (emailAlreadyExists)
                        {
                            ModelState.AddModelError("", "Email already registered.");
                            return(View(Model));
                        }

                        string aspNetUserID;
                        if (isAdmin)
                        {
                            var user = new ApplicationUser
                            {
                                UserName    = Model.Email,
                                Email       = Model.Email,
                                PhoneNumber = Model.Phone,
                                //siteuserid = Model.CompanyDetails.CompanyID
                            };

                            var userCreateStatus = await UserManager.CreateAsync(user, Model.Password);

                            if (userCreateStatus.Succeeded == false)
                            {
                                AddErrors(userCreateStatus);
                                return(View(Model));
                            }

                            aspNetUserID = user.Id;

                            //var roleStore = new Microsoft.AspNet.Identity.EntityFramework.RoleStore<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>(context);
                            //var roleManager = new RoleManager<IdentityRole>(roleStore);

                            // UserManager.AddToRole(aspNetUserID, EnumWrapper.SiteUserRoles.admin.ToString());
                            await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                            db.InsertFirstUserBySiteID(Model.CompanyDetails.CompanyID, user.Id, string.Format("{0} {1}", Model.FirstName, Model.LastName), Model.FirstName, Model.LastName, "", user.Email, user.PasswordHash, user.SecurityStamp, user.PhoneNumber);
                            db.SaveChanges();
                        }
                        else
                        {
                            aspNetUserID           = aspNetUser.Id;
                            aspNetUser.UserName    = Model.Email;
                            aspNetUser.Email       = Model.Email;
                            aspNetUser.PhoneNumber = Model.Phone;

                            UserManager.AddToRole(aspNetUserID, EnumWrapper.SiteUserRoles.user.ToString());

                            //set password
                            string passwordResetCode = await UserManager.GeneratePasswordResetTokenAsync(aspNetUserID);

                            var result = await UserManager.ResetPasswordAsync(aspNetUserID, passwordResetCode, Model.Password);

                            if (!result.Succeeded)
                            {
                                ModelState.AddModelError("", "Some error occurred. Please retry.");
                                return(View(Model));
                            }


                            await SignInManager.SignInAsync(UserManager.FindById(aspNetUserID), isPersistent : false, rememberBrowser : false);
                        }


                        //site user
                        //if (isAdmin)
                        //{
                        //    siteUser = new SiteUsers();
                        //    db.SiteUsers.Add(siteUser);
                        //}
                        if (!isAdmin)
                        {
                            siteUser.ASPNetUserID    = aspNetUserID;
                            siteUser.SiteCoID        = Model.CompanyDetails.CompanyID;
                            siteUser.UserFirstName   = Model.FirstName;
                            siteUser.UserLastName    = Model.LastName;
                            siteUser.UserDisplayName = string.Format("{0} {1}", Model.FirstName, Model.LastName);
                            siteUser.UserStatus      = "Active";
                            siteUser.TimeZoneID      = 1;

                            db.SaveChanges();

                            aspNetUser = db.AspNetUsers.Where(p => p.Id == aspNetUserID).FirstOrDefault();
                            if (aspNetUser != null)
                            {
                                aspNetUser.siteuserid = siteUser.SiteUserID;
                                aspNetUser.sitecoid   = siteUser.SiteCoID ?? 0;
                                if (invitationAccepted.HasValue)
                                {
                                    aspNetUser.InvitationAccepted = invitationAccepted;
                                }
                                db.SaveChanges();
                            }
                        }

                        tran.Complete();

                        // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                        // Send an email with this link
                        // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                        // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                        // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                        //return RedirectToAction("Index", "Home");
                    }
                if (isAdmin)
                {
                    return(RedirectToAction("Welcome"));
                }
                else
                {
                    return(RedirectToAction("Index", "Dashboard", new { area = "Sections" }));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(Model));
        }