public ActionResult EditDinerProfile(CraveatsDinerViewModel model, string returnUrl) { try { if (!ModelState.IsValid) { return(View(model)); } CEUserManager ceUserManager = new CEUserManager(); if (model.Id?.Length > 0) { UserDTO userDTO = new UserDTO() { Id = model.Id, FirstName = model.FirstName, Surname = model.Surname, ContactNumber = model.ContactNumber, LastUpdated = DateTime.Now }; ceUserManager.SaveUserDetail(userDTO); return(RedirectToAction("CraveatsDiner", "Profile")); } ModelState.AddModelError(string.Empty, "Save attempt failed."); //ModelState.AddModelError(string.Empty, "Login attempt failed."); } catch (Exception e) { System.Diagnostics.Trace.WriteLine(e); } return(this.View(model)); }
public ActionResult Register(RegisterViewModel model) { SessionManager.RegisterSessionActivity(); // Get all states again var roles = GetAllRoles(); // Set these states on the model. We need to do this because // only the selected value from the DropDownList is posted back, not the whole // list of states. model.Roles = GetSelectListItems(roles); // In case everything is fine - i.e. both "Name" and "State" are entered/selected, // redirect user to the "Done" page, and pass the user object along via Session if (ModelState.IsValid) { SHA1HashProvider sHA1HashProvider = new SHA1HashProvider(); if (!ceUserManager.IsRegistered(model.Email)) { string sha1HashText = sHA1HashProvider.SecureSHA1(model.Password.Trim()); int? newUserID = ceUserManager.RegisterNew(model.Email, sha1HashText, model.Role); if (newUserID.HasValue) { UserDTO userDTO = new UserDTO() { Id = DataSecurityTripleDES.GetEncryptedText(newUserID), FirstName = model.FirstName, Surname = model.Surname, UserStatus = (int?)UserStatusEnum.Active }; ceUserManager.SaveUserDetail(userDTO); StringBuilder sbSubject = new StringBuilder("Craveats new registrant notification"), sbEmailBody = new StringBuilder("<p>A new user with the following detail has been registered in the system. " + $"<br/><em>FirstName </em>: {model.FirstName}" + $"<br/><em>Surname </em>: {model.Surname}" + $"<br/><em>Email </em>: {model.Email}" + $"<br/><em>Registration Type </em>: {model.Role}" + "</p><p>Thank you.</p><p>Craveats</p>"); CommunicationServiceProvider.SendOutgoingNotification( new MailAddress( model.Email, string.Format("{0}{1}{2}", model.FirstName, " ", model?.Surname).Trim()), sbSubject.ToString(), sbEmailBody.ToString()); User result = ceUserManager.FindByCriteria(email: model.Email, userStatusEnums: new List <int> { (int)UserStatusEnum.Active, (int)UserStatusEnum.Blocked }); if (result != null) { userDTO = EntityDTOHelper.GetEntityDTO <User, UserDTO>(result); AuthenticatedUserInfo authenticatedUserInfo = new AuthenticatedUserInfo(userDTO); Session["loggeduser"] = authenticatedUserInfo; SessionManager.RegisterSessionActivity(userID: result.Id, loggedInAt: DateTime.Now); ceUserManager.SignInUser(HttpContext, string.Format("{0}", authenticatedUserInfo.FullName), false); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError(string.Empty, "An error occurred in reading user data. Please review input and re-try."); } } else { ModelState.AddModelError(string.Empty, "An error occurred in registering new user. Please review input and re-try."); } } else { ModelState.AddModelError(string.Empty, "Email is registered and cannot be used to create another account."); } } // Something is not right - so render the registration page again, // keeping the data user has entered by supplying the model. return(View("Register", model)); }