// // GET: /Manage/Index public async Task <ActionResult> Index(ManageMessageId?message) { ePontiv2Entities db = new ePontiv2Entities(); ViewBag.StatusMessage = message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed." : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set." : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set." : message == ManageMessageId.Error ? "An error has occurred." : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added." : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed." : ""; var userId = User.Identity.GetUserId(); int?SiteUserID = db.SiteUsers.Where(p => p.ASPNetUserID == userId).Select(p => p.SiteUserID).FirstOrDefault(); //var model = new IndexViewModel //{ // HasPassword = HasPassword(), // PhoneNumber = await UserManager.GetPhoneNumberAsync(userId), // TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId), // Logins = await UserManager.GetLoginsAsync(userId), // BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId), //}; var model = db.GetUserProfileInfoBySiteUserID(SiteUserID).FirstOrDefault(); ViewBag.HasPassword = HasPassword(); return(View(model)); }
public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false); switch (result) { case SignInStatus.Success: { string id = ""; int SiteUserId = 0, license = 0; using (ePontiv2Entities db = new ePontiv2Entities()) { id = db.AspNetUsers.Where(p => p.UserName == model.Email).Select(p => p.Id).FirstOrDefault(); SiteUserId = db.SiteUsers.Where(p => p.ASPNetUserID == id).Select(p => p.SiteUserID).FirstOrDefault(); license = (int)db.SiteLicenseOrdered.Where(p => p.SiteUserID == SiteUserId).Select(p => p.LicenseID).FirstOrDefault(); } if (license == 1) { Session["IsAdmin"] = true; } else { Session["IsAdmin"] = false; } if (returnUrl != null && returnUrl.Trim() != "") { return(RedirectToLocal(returnUrl)); } else { return(RedirectToAction("Index", "Dashboard", new { area = "Sections" })); } } //return RedirectToLocal(returnUrl); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login attempt."); return(View(model)); } }
public static void InsertErrorLog(errorlog ErrorLog) { try { using (ePontiv2Entities db = new ePontiv2Entities()) { db.errorlog.Add(ErrorLog); db.SaveChanges(); } } catch (Exception ex) { } }
public ActionResult Register(string invitation = "") { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Dashboard", new { area = "Sections" })); } RegisterViewModel model = new RegisterViewModel(); //string regnote = "Create a new account."; if (!string.IsNullOrWhiteSpace(invitation)) { model.InvitationCode = invitation; using (ePontiv2Entities db = new ePontiv2Entities()) { var aspNetUser = db.AspNetUsers.Where(p => p.InvitationCode == invitation && p.InvitationAccepted != true).FirstOrDefault(); if (aspNetUser == null) { model.InvitationCodeValid = false; return(View(model)); } var siteUser = db.SiteUsers.Where(p => p.ASPNetUserID == aspNetUser.Id).FirstOrDefault(); if (siteUser == null) { model.InvitationCodeValid = false; return(View(model)); } var company = db.SiteCompanies.Where(p => p.SiteCoID == siteUser.SiteCoID).FirstOrDefault(); if (company == null) { model.InvitationCodeValid = false; return(View(model)); } model.InvitationCodeValid = true; model.Email = aspNetUser.Email; model.Phone = aspNetUser.PhoneNumber; model.FirstName = siteUser.UserFirstName; model.LastName = siteUser.UserLastName; model.CompanyDetails.CompanyID = company.SiteCoID; model.CompanyDetails.CompanyName = company.CoName; } } model.CompanyDetails.Country = "USA"; return(View(model)); }
public ActionResult UpdateCommunications(GetUserProfileInfoBySiteUserID_Result obj) { ePontiv2Entities db = new ePontiv2Entities(); var userId = User.Identity.GetUserId(); int?SiteUserID = db.SiteUsers.Where(p => p.ASPNetUserID == userId).Select(p => p.SiteUserID).FirstOrDefault(); if (obj != null) { db.UpdateUserCommBySiteUserID(SiteUserID, obj.Cases, obj.Events, obj.Calls, obj.WorkOrders, obj.Purchase_Order_Requests, obj.Change_Order_Requests, obj.Deliveries, obj.TimeKeeper); db.SaveChanges(); return(Json(new { status = "success" })); } return(Json(new { status = "error" })); }
public ActionResult UpdateProfile(UserProfile usr) { ePontiv2Entities db = new ePontiv2Entities(); var userId = User.Identity.GetUserId(); int?SiteUserID = db.SiteUsers.Where(p => p.ASPNetUserID == userId).Select(p => p.SiteUserID).FirstOrDefault(); if (usr != null) { var model = db.GetUserProfileInfoBySiteUserID(SiteUserID).FirstOrDefault(); db.UpdateUserProfileInfoBySiteUserID(SiteUserID, usr.UserDisplayName, usr.Job_Title, usr.E_Mail, usr.Phone, usr.Calendar_Color); db.SaveChanges(); return(Json(new { status = "success" })); } return(Json(new { status = "error" })); }
public ActionResult Invite() { var manager = new UserManager <ApplicationUser>(new Microsoft.AspNet.Identity.EntityFramework.UserStore <ApplicationUser>(new ApplicationDbContext())); var currentUser = manager.FindById(User.Identity.GetUserId()); var siteUserID = currentUser.siteuserid; var siteCoID = currentUser.sitecoid; using (ePontiv2Entities db = new ePontiv2Entities()) { ViewBag.Licenses = new SelectList(db.GetLicensesBySiteCoID(siteCoID).ToList(), nameof(GetLicenseListBySiteCoID_Result.LicenseID), nameof(GetLicenseListBySiteCoID_Result.Version)); ViewBag.Profiles = new SelectList(db.GetProfilesBySiteCoID(siteCoID).ToList(), nameof(GetProfilesBySiteCoID_Result.ViewID), nameof(GetProfilesBySiteCoID_Result.Name)); } var model = new Models.InviteUserModel(); return(View(model)); }
public QBAuthorizationdto IsTokenAvailable(object oauthController, int siteCoID) { var oAuthDetails = new QBAuthorizationdto(); using (var db = new ePontiv2Entities()) { CoQuickBooks currentIndex = db.CoQuickBooks.Where(p => p.SiteCoID == siteCoID).FirstOrDefault(); if (currentIndex != null) { string testAccesToken = Utility.Decrypt(Encoding.UTF8.GetString(currentIndex.AccessToken), oAuthDetails.SecurityKey); oAuthDetails.AccessToken = testAccesToken; oAuthDetails.AccessTokenSecret = currentIndex.apiSecret; oAuthDetails.IsConnected = true; oAuthDetails.DataSource = currentIndex.DataSource; oAuthDetails.Realmid = currentIndex.RealmID; Save(oauthController, oAuthDetails); } } return(oAuthDetails); }
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> Invite(InviteUserModel Model, int?CoLicense, int?CoProfile) { if (ModelState.IsValid) { var manager = new UserManager <ApplicationUser>(new Microsoft.AspNet.Identity.EntityFramework.UserStore <ApplicationUser>(new ApplicationDbContext())); var currentUser = manager.FindById(User.Identity.GetUserId()); var siteUserID = currentUser.siteuserid; var siteCoID = currentUser.sitecoid; using (ePontiv2Entities db = new ePontiv2Entities()) using (TransactionScope tran = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { CommonRepository repo = new CommonRepository(); ViewBag.Licenses = new SelectList(db.GetLicensesBySiteCoID(siteCoID).ToList(), nameof(GetLicenseListBySiteCoID_Result.LicenseID), nameof(GetLicenseListBySiteCoID_Result.Version)); ViewBag.Profiles = new SelectList(db.GetProfilesBySiteCoID(siteCoID).ToList(), nameof(GetProfilesBySiteCoID_Result.ViewID), nameof(GetProfilesBySiteCoID_Result.Name)); string invitationCode = Guid.NewGuid().ToString("n") + Guid.NewGuid().ToString("n"); //db.InsertInviteeBySiteCoID(siteCoID, Model.FirstName, Model.LastName, CoProfile, Model.Email, Model.Phone, invitationCode, CoLicense); //db.SaveChanges(); //ASP Net User var user = new ApplicationUser { UserName = Model.Email, Email = Model.Email, PhoneNumber = Model.Phone, sitecoid = siteCoID }; var userCreateStatus = await UserManager.CreateAsync(user); if (userCreateStatus.Succeeded == false) { AddErrors(userCreateStatus); return(View(Model)); } //site user var siteUser = new SiteUsers(); db.SiteUsers.Add(siteUser); siteUser.ASPNetUserID = user.Id; siteUser.SiteCoID = siteCoID; 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(); var aspNetUser = db.AspNetUsers.Where(p => p.Id == user.Id).FirstOrDefault(); if (aspNetUser != null) { aspNetUser.siteuserid = siteUser.SiteUserID; aspNetUser.sitecoid = siteUser.SiteCoID ?? 0; aspNetUser.InvitationCode = invitationCode; 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); try { var callbackUrl = Url.Action("Register", "Account", new { invitation = invitationCode }, protocol: Request.Url.Scheme); //await UserManager.SendEmailAsync(user.Id, "You are invited", "Hi,<br>You are invited. Please accept the invitation by clicking <a href=\"" + callbackUrl + "\">here</a>"); await Mailer.Execute("You are invited", Model.Email, Model.FirstName + " " + Model.LastName, "Hi,<br>You are invited. Please accept the invitation by clicking <a href=\"" + callbackUrl + "\">here</a><br><br>Thanks."); return(RedirectToAction("Login")); } catch (Exception ex) { LogRepository.LogException(ex); } } //invitation sent. reset model, so that new use can be invited Model = new InviteUserModel() { IsInvitationSent = true }; return(View(Model)); } // If we got this far, something failed, redisplay form return(View(Model)); }
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)); }