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); }
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" })); }
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; } } }
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)); }