public UserSaveResult SaveMemberGeneralDetails(MemberViewModel model) { var saveResult = new UserSaveResult(); var user = _db.Users .Include(u => u.Groups) .Include(u => u.UserSocialMediaLinks) .Include(u => u.WorkAddress) .Include(u => u.StreetAddress) .First(u => u.Id == model.User.Id); RemoveUsersGroups(model, user); AddUsersGroups(model, user); AddSocialMediaLinks(model, user); var _user = model.User; user.GeneralNotes = _user.GeneralNotes; user.Qualifications = _user.Qualifications; user.FirstLanguageId = _user.FirstLanguageId; user.Website = _user.Website; user.HoursPerWeekAvailable = _user.HoursPerWeekAvailable; user.WorksAtAgency = _user.WorksAtAgency; user.AvailabilityType = _user.AvailabilityType; user.MembershipYear = _user.MembershipYear; user.DateOfBirth = _user.DateOfBirth; user.DateJoined = _user.DateJoined; user.LastUpdated = DateTime.Now; try { SaveChanges(_db); } catch (Exception ex) { saveResult.Errors = ex.Message; } saveResult.User = user; return(saveResult); }
public UserSaveResult SaveMember(MemberViewModel model, ApplicationUserManager userManager) { var saveResult = new UserSaveResult(); //add new user if (string.IsNullOrEmpty(model.User.Id)) { model.User.Id = Guid.NewGuid().ToString(); model.User.UserName = model.User.Email; int membershipNo = _db.Users .OrderByDescending(u => u.MembershipNo) .FirstOrDefault()?.MembershipNo ?? 0; model.User.ModifyPropertiesIfCompany(membershipNo + 1); model.User.LastUpdated = DateTime.Now; if (model.User.DateJoined == null) { model.User.DateJoined = DateTime.Now; } IdentityResult result = userManager.Create(model.User, "p@$$w0rd"); if (result.Succeeded) { userManager.AddToRole(model.User.Id, "Member"); } saveResult.Errors = string.Join("</br>", result.Errors); saveResult.User = model.User; } else { //update existing users var user = _db.Users.Where <User>(u => u.Id == model.User.Id) .Include(u => u.WorkAddress) .Include(u => u.StreetAddress) .First(); var _user = model.User; user.EmailConfirmed = true; user.TwoFactorEnabled = false; user.PhoneNumberConfirmed = true; user.LockoutEnabled = false; user.AccessFailedCount = 0; user.CountryId = _user.CountryId; user.RegionId = _user.RegionId; user.AreaId = _user.AreaId; user.MemberType = _user.MemberType; user.Title = _user.Title; user.FirstName = _user.FirstName; user.Initials = _user.Initials; user.LastName = _user.LastName; user.PreferredName = _user.PreferredName; user.CompanyName = _user.CompanyName; user.WorkPhoneCode = _user.WorkPhoneCode; user.WorkPhone = _user.WorkPhone; user.AlternatePhoneCode = _user.AlternatePhoneCode; user.AlternatePhone = _user.AlternatePhone; user.CellPhoneCode = _user.CellPhoneCode; user.CellPhone = _user.CellPhone; user.FaxCode = _user.FaxCode; user.Fax = _user.Fax; user.Email = _user.Email; user.UserName = _user.Email; user.LastUpdated = DateTime.Now; _db.Entry(user.WorkAddress).CurrentValues.SetValues(_user.WorkAddress); _db.Entry(user.StreetAddress).CurrentValues.SetValues(_user.StreetAddress); _db.Entry(user.WorkAddress).State = _user.WorkAddress.AddressId == 0 ? EntityState.Added : EntityState.Modified; _db.Entry(user.StreetAddress).State = _user.StreetAddress.AddressId == 0 ? EntityState.Added : EntityState.Modified; try { SaveChanges(_db); } catch (Exception ex) { saveResult.Errors = ex.Message; } saveResult.User = user; } return(saveResult); }