コード例 #1
0
        public async Task <IActionResult> Edit(MemberEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                Member member = await repository.GetMember(model.Id);

                member.Name     = model.Name;
                member.Phone    = model.Phone;
                member.Position = model.Position;

                if (model.Photo != null)
                {
                    if (model.ExistingPhotoPath != null)
                    {
                        var filePath = Path.Combine(hostingEnviroment.WebRootPath, "images", model.ExistingPhotoPath);
                        System.IO.File.Delete(filePath);
                    }
                    member.PhotoPath = ProcessUploadedFile(model.Photo);
                }


                await repository.Update(member);

                return(RedirectToAction("list"));
            }

            return(View());
        }
コード例 #2
0
        public ActionResult Edit(HttpPostedFileBase file, MemberEditViewModel viewModel)
        {
            var member = db.tblmembers.Single(a => a.ID == viewModel.ID);

            if (member.PICEmail != viewModel.PICEmail)
            {
                var duplicateEmail = db.tblmembers.Where(a => a.PICEmail == viewModel.PICEmail && a.ID != viewModel.ID).FirstOrDefault();
                if (duplicateEmail != null)
                {
                    viewModel.ErrorMessage = string.Format("Email address {0} already exist.", viewModel.PICEmail);

                    return(View("Edit", viewModel));
                }
            }

            member.Roles         = viewModel.Roles;
            member.BusinessRegNo = viewModel.BusinessRegNo;
            member.CompanyName   = viewModel.CompanyName;
            member.PICName       = viewModel.PICName;
            member.PICContact    = viewModel.PICContact;
            member.PICEmail      = viewModel.PICEmail;
            member.Address       = viewModel.Address;
            member.Postcode      = viewModel.Postcode;
            member.State         = viewModel.State;
            member.Country       = viewModel.Country;
            member.Active        = viewModel.Active;

            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
コード例 #3
0
        public IActionResult Edit(MemberEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                Member member = _memberRepository.GetMember(model.Id);
                member.Name       = model.Name;
                member.Email      = model.Email;
                member.Department = model.Department;
                // checks if the photo has been changed
                if (model.Photo != null)
                {
                    // Deleting existing photo if exists
                    if (model.ExistingPhotoPath != null)
                    {
                        string filePath = Path.Combine(hostingEnvironment.WebRootPath, "images", model.ExistingPhotoPath);
                        System.IO.File.Delete(filePath);
                    }
                    member.PhotoPath = processUploadedFile(model);
                }

                _memberRepository.Update(member);
                return(RedirectToAction("list"));
            }
            return(View());
        }
コード例 #4
0
        public async Task <IdentityResult> UpdateAccessPermission(MemberEditViewModel memberEditVM)
        {
            IdentityResult result = IdentityResult.Success;

            string id     = _protectMemberId.Unprotect(memberEditVM.EncryptedId);
            Member member = await _userManager.FindByIdAsync(id);

            List <Claim> newClaims = memberEditVM.MemberClaims
                                     .Select(mc => new Claim(mc.ClaimType, mc.IsSelected ? "true" : "false")).ToList();
            List <Claim> memberClaims = await _userManager.GetClaimsAsync(member) as List <Claim>;

            foreach (Claim newClaim in newClaims)
            {
                Claim memberClaim = memberClaims.FirstOrDefault(mc => mc.Type == newClaim.Type);

                if (memberClaim != null)
                {
                    result = await _userManager.ReplaceClaimAsync(member, memberClaim, newClaim);
                }
                else
                {
                    result = await _userManager.AddClaimAsync(member, newClaim);
                }

                if (!result.Succeeded)
                {
                    return(result);
                }
            }

            return(result);
        }
コード例 #5
0
        private Member viewModel2Model(Member member, MemberEditViewModel editViewModel)
        {
            member.Name         = editViewModel.Name;
            member.JobId        = editViewModel.JobId;
            member.Male         = editViewModel.Male;
            member.Street       = editViewModel.Street;
            member.ZIP          = editViewModel.ZIP;
            member.City         = editViewModel.City;
            member.Country      = editViewModel.Country;
            member.Website      = editViewModel.Website;
            member.Fax          = editViewModel.Fax;
            member.Mobile       = editViewModel.Mobile;
            member.Phone        = editViewModel.Phone;
            member.OtherContact = editViewModel.OtherContact;
            member.Birthday     = editViewModel.Birthday;
            member.Deathday     = editViewModel.Deathday;
            if (editViewModel.Picture != null)
            {
                member.Picture = editViewModel.Picture;
            }
            member.Languages = editViewModel.Languages;
            member.InternationalExperiences = editViewModel.InternationalExperiences;
            member.Education  = editViewModel.Education;
            member.Activities = editViewModel.Activities;
            member.Galleries  = editViewModel.Galleries;
            member.Awards     = editViewModel.Awards;
            member.Notes      = editViewModel.Notes;
            member.EMail      = editViewModel.EMail;

            return(member);
        }
コード例 #6
0
        public async Task <IdentityResult> UpdatePassword(MemberEditViewModel editVM)
        {
            string id     = _protectMemberId.Unprotect(editVM.EncryptedId);
            Member member = await _userManager.FindByIdAsync(id);

            return(await _userManager.ChangePasswordAsync(member, editVM.OldPassword, editVM.NewPassword));
        }
コード例 #7
0
ファイル: ViewModelMapping.cs プロジェクト: NineMvp/mvcforum
        public static MemberEditViewModel UserToMemberEditViewModel(MembershipUser user)
        {
            var viewModel = new MemberEditViewModel
            {
                IsApproved                = user.IsApproved,
                Id                        = user.Id,
                IsLockedOut               = user.IsLockedOut,
                Roles                     = user.Roles.Select(x => x.RoleName).ToArray(),
                UserName                  = user.UserName,
                Age                       = user.Age,
                Comment                   = user.Comment,
                Email                     = user.Email,
                Facebook                  = user.Facebook,
                Location                  = user.Location,
                PasswordAnswer            = user.PasswordAnswer,
                PasswordQuestion          = user.PasswordQuestion,
                Signature                 = user.Signature,
                Twitter                   = user.Twitter,
                Website                   = user.Website,
                DisableEmailNotifications = (user.DisableEmailNotifications == true),
                DisablePosting            = (user.DisablePosting == true),
                DisablePrivateMessages    = (user.DisablePrivateMessages == true),
                DisableFileUploads        = (user.DisableFileUploads == true),
                Avatar                    = user.Avatar
            };

            return(viewModel);
        }
コード例 #8
0
        public async Task <ActionResult> EditAsync(MemberEditViewModel userModel, CancellationToken cancellationToken = default(CancellationToken))
        {
            var user = MembershipService.GetUser(userModel.Id);

            // Map everything in model except properties hidden on page
            user.Email            = userModel.Email;
            user.IsApproved       = userModel.IsApproved;
            user.IsLockedOut      = userModel.IsLockedOut;
            user.IsBanned         = userModel.IsBanned;
            user.PasswordAnswer   = userModel.PasswordAnswer;
            user.PasswordQuestion = userModel.PasswordQuestion;
            user.UserName         = userModel.UserName;
            user.IsTrustedUser    = userModel.IsTrustedUser;

            try
            {
                _ = await Context.SaveChangesAsync(cancellationToken);

                TempData[Constants.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = "User saved",
                    MessageType = GenericMessages.success
                };
            }
            catch (Exception ex)
            {
                Context.RollBack();
                LoggingService.Error(ex);
                ModelState.AddModelError(string.Empty,
                                         LocalizationService.GetResourceString("Errors.GenericMessage"));
            }

            return(await ListUsersAsync(null, null, cancellationToken));
        }
コード例 #9
0
        public ActionResult Index(HttpPostedFileBase file, MemberEditViewModel viewModel)
        {
            var member = db.tblmembers.Single(a => a.ID == viewModel.ID);

            member.BusinessRegNo = viewModel.BusinessRegNo;
            member.CompanyName   = viewModel.CompanyName;
            member.PICName       = viewModel.PICName;
            member.PICContact    = viewModel.PICContact;
            //member.PICEmail = viewModel.PICEmail;
            member.Address  = viewModel.Address;
            member.Postcode = viewModel.Postcode;
            member.State    = viewModel.State;
            member.Country  = viewModel.Country;
            //member.Active = viewModel.Active;

            if (file != null)
            {
                var fileName = FileUploadManager.UploadAndSave(file);
                member.ProfileImagePath = fileName;
            }

            db.SaveChanges();

            Util.SessionAccess = member;

            return(RedirectToAction("Index"));
        }
コード例 #10
0
        public async Task <IActionResult> Edit(string id, MemberEditViewModel editModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(editModel));
            }

            // Get Member from DB to get OwnerID
            var member = await _context.Member.SingleOrDefaultAsync(m => m.MemberId == id);

            if (member == null)
            {
                return(NotFound());
            }

            var isAuthorized = await _authorizationService.AuthorizeAsync(User, member, MemberOperations.Update);

            if (!isAuthorized.Succeeded)
            {
                return(new ChallengeResult());
            }

            member = viewModel2Model(member, editModel);

            if (member.Status == Models.MemberStatus.Approved)
            {
                // If the Model was updated after the approval,
                // and the user cannpt approve, set the status back to submitted.
                var canApprove = await _authorizationService.AuthorizeAsync(User, member, MemberOperations.Approve);

                if (!canApprove.Succeeded)
                {
                    member.Status = Models.MemberStatus.Submitted;
                }
            }
            // create file with picture
            if (editModel.Picture != null)
            {
                Guid   PictureID    = Guid.NewGuid();
                string fileType     = member.Picture.Split('/')[1].Split(';')[0];
                string PicturesPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images", $"{PictureID}.{fileType}");

                var bytes = Convert.FromBase64String(member.Picture.Split(',')[1]);
                if (bytes.Length > 0)
                {
                    using (var stream = new FileStream(PicturesPath, FileMode.Create))
                    {
                        stream.Write(bytes, 0, bytes.Length);
                        stream.Flush();
                    }
                }
                member.Picture = $"{PictureID.ToString()}.{fileType}";
            }
            _context.Update(member);
            await _context.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
コード例 #11
0
        public async Task <IActionResult> Edit(MemberEditViewModel viewModel)
        {
            var user = await GetCurrentUser();

            _mapper.Map(viewModel, user);
            await _unitOfWork.CompleteAsync();

            return(RedirectToAction("Info", new { id = user.Id }));
        }
コード例 #12
0
        // GET: Member/Edit/5
        public async Task <IActionResult> Edit(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(NotFound());
            }

            var applicationUser = await _context.ApplicationUser.SingleOrDefaultAsync(m => m.Id == id);

            if (applicationUser == null)
            {
                return(NotFound());
            }

            var memberChapters = await _context.MemberChapters
                                 .Where(m => m.ApplicationUserId == id && m.WhenLeft == null).ToListAsync();

            var chapterSelect = new List <SelectListItem>
            {
                new SelectListItem {
                    Value = "0", Text = "None"
                }
            };
            var chapters = await _context.Chapters.OrderBy(c => c.Name).ToListAsync();

            foreach (var chapter in chapters)
            {
                chapterSelect.Add(new SelectListItem
                {
                    Value = chapter.Id.ToString(),
                    Text  = chapter.Name
                });
            }

            var viewModel = new MemberEditViewModel
            {
                Id          = applicationUser.Id,
                FirstName   = applicationUser.FirstName,
                LastName    = applicationUser.LastName,
                Street1     = applicationUser.Street1,
                Street2     = applicationUser.Street2,
                City        = applicationUser.City,
                State       = applicationUser.State,
                Zip         = applicationUser.ZipCode,
                Phone       = applicationUser.PhoneNumber,
                Email       = applicationUser.Email,
                WhenJoined  = applicationUser.WhenJoined,
                Status      = applicationUser.Status,
                WhenExpires = applicationUser.WhenExpires,
                Chapters    = chapterSelect,
                Chapter1    = memberChapters.Count >= 1 ? memberChapters[0].ChapterId : 0,
                Chapter2    = memberChapters.Count == 2 ? memberChapters[1].ChapterId : 0
            };

            return(View(viewModel));
        }
コード例 #13
0
        public async Task <IActionResult> ChangePassword(MemberEditViewModel editVM)
        {
            IdentityResult identityResult = await _member.UpdatePassword(editVM);

            if (identityResult.Succeeded)
            {
                return(RedirectToAction("Index"));
            }
            return(View());
        }
コード例 #14
0
        public ActionResult Edit(int id)
        {
            var vm = new MemberEditViewModel();

            vm.Member = DBService.GetEntity <St_member>(id);
            if (vm.Member.UserId.HasValue)
            {
                vm.User = DBService.GetEntity <St_user>(vm.Member.UserId.Value);
            }
            return(View(vm));
        }
コード例 #15
0
        public async Task <IdentityResult> UpdateUserInfo(MemberEditViewModel memberEditVM)
        {
            string id     = _protectMemberId.Unprotect(memberEditVM.EncryptedId);
            Member member = await _userManager.FindByIdAsync(id);

            member.FirstName = memberEditVM.FirstName;
            member.LastName  = memberEditVM.LastName;
            member.Email     = memberEditVM.Email;

            return(await _userManager.UpdateAsync(member));
        }
コード例 #16
0
        public ActionResult Edit(int id)
        {
            ViewBag.Title = "Edit Member";
            var model = this.memberService.Get(id);

            if (model.PhoneNumbers == null)
            {
                model.PhoneNumbers = new List <PhoneNumber>();
            }

            return(View("Add", MemberEditViewModel.ToViewModel(model)));
        }
コード例 #17
0
        public ActionResult Save(MemberEditViewModel member)
        {
            ViewBag.Title = member.Id == 0 ? "Add Member" : "Edit Member";

            if (!ModelState.IsValid)
            {
                return(View("Add", member));
            }

            this.memberService.Save(member.ToModel());

            return(RedirectToAction("Index"));
        }
コード例 #18
0
        public ViewResult Edit(int id)
        {
            Member member = _memberRepository.GetMember(id);
            MemberEditViewModel memberEditViewModel = new MemberEditViewModel
            {
                Id                = member.Id,
                Name              = member.Name,
                Email             = member.Email,
                Department        = member.Department,
                ExistingPhotoPath = member.PhotoPath
            };

            return(View(memberEditViewModel));
        }
コード例 #19
0
        public async Task <IActionResult> Put(string id, [FromBody] MemberEditViewModel model)
        {
            await userService.EditAsync(id, new Bll.Models.UserEditModel
            {
                Address     = model.Address,
                BirthDate   = model.BirthDate,
                Name        = model.Name,
                BirthPlace  = model.BirthPlace,
                CardNumber  = model.CardNumber,
                MothersName = model.MothersName
            });

            return(Ok());
        }
コード例 #20
0
        public async Task <IActionResult> Put(string id, [FromBody] MemberEditViewModel model, [FromHeader(Name = "x-requestid")] string requestId)
        {
            var current = await context.Members.SingleOrDefaultAsync(b => b.Id == id);

            if (current == null)
            {
                return(BadRequest());
            }

            context.Entry <Member>(current).CurrentValues.SetValues(model);

            await context.SaveChangesAsync();

            return(Ok());
        }
コード例 #21
0
        public static MemberEditViewModel UserToMemberEditViewModel(MembershipUser user)
        {
            var viewModel = new MemberEditViewModel
            {
                IsApproved    = user.IsApproved,
                Id            = user.Id,
                IsLockedOut   = user.IsLockedOut,
                IsBanned      = user.IsBanned,
                Roles         = user.Roles.Select(x => x.RoleName).ToArray(),
                UserName      = user.UserName,
                IsTrustedUser = user.IsTrustedUser
            };

            return(viewModel);
        }
コード例 #22
0
        public async Task <IActionResult> EditAccessPermission(MemberEditViewModel memberEditVM)
        {
            IdentityResult identityResult = await _member.UpdateAccessPermission(memberEditVM);

            if (identityResult == null)
            {
                TempData["AccessPermission"] = "Updating user Access Permission failed";
                return(RedirectToAction("Edit", new { memberId = memberEditVM.EncryptedId }));
            }
            else
            {
                TempData["AccessPermission"] = "Updating user Access Permission Successful";
                return(RedirectToAction("Edit", new { memberId = memberEditVM.EncryptedId }));
            }
        }
コード例 #23
0
        public async Task <ViewResult> Edit(int id)
        {
            Member member = await repository.GetMember(id);

            var viewModel = new MemberEditViewModel()
            {
                Id                = member.Id,
                Name              = member.Name,
                Phone             = member.Phone,
                Position          = member.Position,
                ExistingPhotoPath = member.PhotoPath,
                PageTitle         = "Editar detalhes do membro"
            };

            return(View(viewModel));
        }
コード例 #24
0
        public ViewResult Membership(string email)
        {
            Member membership         = _membersRepository.GetMemberByEmail(email);
            MemberEditViewModel model = new MemberEditViewModel
            {
                Id               = membership.Id,
                FirstName        = membership.FirstName,
                LastName         = membership.LastName,
                DateOfBirth      = membership.DateOfBirth,
                PhoneNUmber      = membership.PhoneNUmber,
                Address          = membership.Address,
                User             = membership.User,
                UserMembershipId = membership.UserMembershipId
            };

            return(View(model));
        }
コード例 #25
0
        public ActionResult Edit(MemberEditViewModel userModel)
        {
            using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
            {
                var user = MembershipService.GetUser(userModel.Id);

                // Map everything in model except properties hidden on page
                user.Age                       = userModel.Age;
                user.Comment                   = userModel.Comment;
                user.Email                     = userModel.Email;
                user.Facebook                  = userModel.Facebook;
                user.IsApproved                = userModel.IsApproved;
                user.IsLockedOut               = userModel.IsLockedOut;
                user.IsBanned                  = userModel.IsBanned;
                user.Location                  = userModel.Location;
                user.PasswordAnswer            = userModel.PasswordAnswer;
                user.PasswordQuestion          = userModel.PasswordQuestion;
                user.Signature                 = userModel.Signature;
                user.Twitter                   = userModel.Twitter;
                user.UserName                  = userModel.UserName;
                user.Website                   = userModel.Website;
                user.DisableEmailNotifications = userModel.DisableEmailNotifications;
                user.DisablePosting            = userModel.DisablePosting;
                user.DisablePrivateMessages    = userModel.DisablePrivateMessages;

                try
                {
                    unitOfWork.Commit();

                    ViewBag.Message = new GenericMessageViewModel
                    {
                        Message     = "User saved",
                        MessageType = GenericMessages.success
                    };
                }
                catch (Exception ex)
                {
                    unitOfWork.Rollback();
                    LoggingService.Error(ex);
                    ModelState.AddModelError(string.Empty, LocalizationService.GetResourceString("Errors.GenericMessage"));
                }

                return(ListUsers(null, null));
            }
        }
コード例 #26
0
        public async Task <ActionResult> Edit(MemberEditViewModel userModel)
        {
            var user = MembershipService.GetUser(userModel.Id);

            // Map everything in model except properties hidden on page
            user.Age                       = userModel.Age;
            user.Comment                   = userModel.Comment;
            user.Email                     = userModel.Email;
            user.Facebook                  = userModel.Facebook;
            user.IsApproved                = userModel.IsApproved;
            user.IsLockedOut               = userModel.IsLockedOut;
            user.IsBanned                  = userModel.IsBanned;
            user.Location                  = userModel.Location;
            user.PasswordAnswer            = userModel.PasswordAnswer;
            user.PasswordQuestion          = userModel.PasswordQuestion;
            user.Signature                 = userModel.Signature;
            user.Twitter                   = userModel.Twitter;
            user.UserName                  = userModel.UserName;
            user.Website                   = userModel.Website;
            user.DisableEmailNotifications = userModel.DisableEmailNotifications;
            user.DisablePosting            = userModel.DisablePosting;
            user.DisablePrivateMessages    = userModel.DisablePrivateMessages;
            user.IsTrustedUser             = userModel.IsTrustedUser;

            try
            {
                Context.SaveChanges();

                TempData[AppConstants.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = "User saved",
                    MessageType = GenericMessages.success
                };
            }
            catch (Exception ex)
            {
                Context.RollBack();
                LoggingService.Error(ex);
                ModelState.AddModelError(string.Empty,
                                         LocalizationService.GetResourceString("Errors.GenericMessage"));
            }

            return(await ListUsers(null, null));
        }
コード例 #27
0
        protected override DriverResult Editor(MemberPart part, IUpdateModel updater, dynamic shapeHelper)
        {
            var controller = (Controller)updater;

            if (controller.RouteData.CheckAction(Actions.Create))
            {
                //Step 1. Validate all inputs.
                var createModel = new MemberCreateViewModel {
                    Member = part
                };
                if (updater.TryUpdateModel(createModel, Prefix, null, null))
                {
                    //Step 2. Create user.
                    if (!Regex.IsMatch(createModel.User.Email ?? "", UserPart.EmailPattern, RegexOptions.IgnoreCase))
                    {
                        // http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx
                        updater.AddModelError("Email", T("You must specify a valid email address."));
                    }
                    else if (createModel.User.Password != createModel.User.ConfirmPassword)
                    {
                        updater.AddModelError("ConfirmPassword", T("Password confirmation must match."));
                    }
                    else if (!_userService.VerifyUserUnicity(createModel.User.Email, createModel.User.Email))
                    {
                        updater.AddModelError("NotUniqueUserName", T("User with that email already exists."));
                    }
                    else if (controller.ModelState.IsValid)
                    {
                        IUser user = _membershipService.CreateUser(new CreateUserParams(createModel.User.Email, createModel.User.Password, createModel.User.Email, null, null, true));
                        //Step 2. Update userid on member.
                        part.Record.UserId = user.Id;
                    }
                }
            }
            else
            {
                var editModel = new MemberEditViewModel {
                    Member = part
                };
                //todo: update email.
                updater.TryUpdateModel(editModel, Prefix, null, null);
            }
            return(Editor(part, shapeHelper));
        }
コード例 #28
0
        public async Task <IActionResult> Edit(MemberEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var member = await repository.GetMemberAsync(model.Id);

                member.FirstName   = model.FirstName;
                member.LastName    = model.LastName;
                member.Phone       = model.Phone;
                member.Email       = model.Email;
                member.DateUpdated = DateTime.Now;

                repository.Update(member);
                await unitOfWork.CompleteAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
コード例 #29
0
        public async Task <IActionResult> Update(MemberEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                Member member = await repository.GetMember(model.Id);

                if (member == null)
                {
                    return(NotFound(model.Id));
                }
                member.Name     = model.Name;
                member.Phone    = model.Phone;
                member.Position = model.Position;
                await repository.Update(member);

                return(Ok(member));
            }
            return(BadRequest(ModelState));
        }
コード例 #30
0
        public async Task <IActionResult> Edit(int id)
        {
            var member = await repository.GetMemberAsync(id);

            if (member == null)
            {
                return(NotFound());
            }

            var memberEditViewModel = new MemberEditViewModel
            {
                Id        = member.Id,
                FirstName = member.FirstName,
                LastName  = member.LastName,
                Phone     = member.Phone,
                Email     = member.Email
            };

            return(View(memberEditViewModel));
        }