Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }