public ActionResult Edit(OrganisationEditModel editModel) { try { sw.Organisation organisation = editModel.org; if (ModelState.IsValid) { if (String.IsNullOrEmpty(organisation.RegNumber)) { var applNoResp = generateEmployerNumber(organisation.Name, organisation.CommencementDate ?? DateTime.Now); if (applNoResp.Key == true) { organisation.RegNumber = applNoResp.Value; } } organisation.ModifiedBy = User.Identity.Name; organisation.ModifiedDate = DateTime.Now; swdb.Organisation.Attach(organisation); swdb.Entry(organisation).State = EntityState.Modified; // swdb.ObjectStateManager.ChangeObjectState(organisation, EntityState.Modified); swdb.SaveChanges(); if (membershipService.GetUser(organisation.RegNumber) == null) { MembershipUser newUser; //MembershipCreateStatus status; newUser = membershipService.CreateUser(organisation.RegNumber, organisation.RegNumber, organisation.ContactEmailAddress); roleService.AddUserToRole(organisation.RegNumber, "Organisation Admin"); sw.Users user = swdb.Users.Where(x => x.UserName == organisation.RegNumber).FirstOrDefault(); organisation.Users.Add(user); swdb.SaveChanges(); } //int[] acnts = editModel.SelectedAcountTypes; //if (acnts != null) //{ // foreach (int account in acnts) // { // OrganisationPortfolio orgPort = db.OrganisationPortfolio.Where(x => x.OrgID == organisation.Id && x.AccountTypeID == account).FirstOrDefault(); // if (orgPort == null) // { // OrganisationPortfolio detail = new OrganisationPortfolio(); // detail.AccountTypeID = account; // detail.OrgID = organisation.Id; // detail.AccountState = 1; // detail.LastPayment = DateTime.Now; // detail.ModifiedBy = User.Identity.Name; // detail.ModifiedDate = DateTime.Now; // detail.TotalPayments = 0; // detail.TotalOverPaid = 0; // detail.TotalPenalty = 0; // db.OrganisationPortfolio.AddObject(detail); // db.SaveChanges(); // } // } //} TempData["message"] = "<b>" + organisation.Name + "</b> was Successfully Updated"; return(RedirectToAction("Index")); } editModel.orgTypes = new SelectList(swdb.OrganisationType, "Id", "Name", organisation.OrganisationTypeId).ToList(); //editModel.OfficeBranch = new SelectList(db.OfficeBranch, "Id", "BranchName", organisation.BranchID).ToList(); //editModel.accountTypes = db.AccountType.ToList(); //editModel.SelectedAcountTypes = db.OrganisationPortfolio.Where(x => x.OrgID == organisation.Id).Select(x => x.AccountTypeID ?? 0).ToArray(); return(View(editModel)); } catch (Exception ex) { // Log with Elmah Elmah.ErrorSignal.FromCurrentContext().Raise(ex); TempData["message"] = Settings.Default.GenericExceptionMessage; return(RedirectToAction("Index", "Home", new { area = "Admin" })); } }
public virtual ActionResult CreateUser(RegisterViewModel model) { try { if (ModelState.IsValid) { sw.Organisation organisation = new sw.Organisation(); //var password = Membership.GeneratePassword(8, 0); // model.Password = password; //model.ConfirmPassword = password; string message = "Welcome <br><br>Find below your account details<br><br>Username: "******" <br>Password: "******"New Account Details"; MembershipUser newUser; MembershipCreateStatus status; newUser = membershipService.CreateUser(model.UserName, model.Password, model.Email, model.SecretQuestion, model.SecretAnswer, model.Approve, out status); if (newUser == null) { var msg = GetErrorMessage(status); TempData["message"] = "alert-danger"; TempData["message"] = msg; return(RedirectToAction("Index")); } else { if (System.Web.Security.Roles.IsUserInRole(Settings.Default.OrganisationAdminRole) && !System.Web.Security.Roles.IsUserInRole("Administrator")) { GetOrganisation objGetOrganisation = new GetOrganisation(); MembershipUser user = Membership.GetUser(User.Identity.Name); organisation = objGetOrganisation.byUser(user); if (organisation == null) { throw new Exception("Could not find Organisation"); } model.Id = organisation.Id; } if (model.Id != 0) { organisation = (from o in swdb.Organisation where o.Id == model.Id select o).FirstOrDefault(); if (organisation == null) { throw new Exception("Could not find Organisation"); } model.objOrganisation = organisation; sw.Users user = swdb.Users.Where(x => x.UserId == (Guid)newUser.ProviderUserKey).FirstOrDefault(); organisation.Users.Add(user); swdb.SaveChanges(); ///Send Email to New User Account//// // @utility.SendEmailToPerson(Settings.Default.EmailReplyTo, newUser.Email, subject, message, DateTime.Now, null, null, null); return(RedirectToAction("GrantRolesToUser", new { username = newUser.UserName, Id = model.Id })); } ///Send Email to New User Account//// // @utility.SendEmailToPerson(Settings.Default.EmailReplyTo, newUser.Email, subject, message, DateTime.Now, null, null, null); return(routeHelpers.Actions.GrantRolesToUser(newUser.UserName)); //RedirectToAction("GrantRolesToUser",new{UserName = '', Id = ''}) } } } catch (Exception ex) { //Elmah.ErrorSignal.FromCurrentContext().Raise(ex); TempData["message"] = Settings.Default.GenericExceptionMessage; return(RedirectToAction("Index", "Home", new { area = "Admin" })); } return(View()); }