コード例 #1
0
        public async Task <IActionResult> ManageProfile(AdminManageProfileViewModel VM)
        {
            string UserName = User.Identity.Name;

            ApplicationUser user = _userManager.Users.FirstOrDefault(x => x.UserName == UserName);

            user.UserName    = VM.Email;
            user.Email       = VM.Email;
            user.GivenNames  = VM.GivenNames;
            user.Surname     = VM.Surname;
            user.PhoneNumber = VM.PhoneNo;

            IdentityResult Updateduser = await _userManager.UpdateAsync(user);

            if (Updateduser.Succeeded)
            {
                try
                {
                    Address userAddress = _addressService.Query(x => x.ApplicationUserId == user.Id).FirstOrDefault();
                    userAddress.AddressType              = "Home";
                    userAddress.StreetAddress            = VM.StreetAddress;
                    userAddress.Suburb                   = VM.Suburb;
                    userAddress.State                    = VM.State;
                    userAddress.Postcode                 = VM.Postcode;
                    userAddress.PreferredShippingAddress = true;
                    userAddress.ApplicationUserId        = user.Id;
                    _addressService.Update(userAddress);
                }
                catch (Exception)
                {
                    Address userAddress = new Address();
                    userAddress.AddressId                = new Guid();
                    userAddress.AddressType              = "Home";
                    userAddress.StreetAddress            = VM.StreetAddress;
                    userAddress.Suburb                   = VM.Suburb;
                    userAddress.State                    = VM.State;
                    userAddress.Postcode                 = VM.Postcode;
                    userAddress.PreferredShippingAddress = true;
                    userAddress.ApplicationUserId        = user.Id;
                    _addressService.Create(userAddress);
                }
                return(RedirectToAction("Index", "Home"));
            }
            // To do: try catch block around return in case user cant be found or there's an error...
            return(View(VM));
        }
コード例 #2
0
        public IActionResult ManageProfile()
        {
            if (User.IsInRole("Admin") || User.IsInRole("SuperUser"))
            {
                string          UserName       = User.Identity.Name;
                bool            userHasAddress = false;
                ApplicationUser user           = _userManager.Users.Where(x => x.Email == UserName).FirstOrDefault();

                AdminManageProfileViewModel VM = new AdminManageProfileViewModel()
                {
                    Email      = user.Email,
                    GivenNames = user.GivenNames,
                    Surname    = user.Surname,
                    PhoneNo    = user.PhoneNumber
                };

                Address userAddress = new Address();

                // Check if user has an address in the system. If not, deal with the thrown exception.
                // I've simply added 'Exception' to the catch block as I'm not too fussed about which specific exception I get.
                try
                {
                    userAddress      = _addressService.Query(x => x.ApplicationUserId == user.Id).FirstOrDefault();
                    VM.StreetAddress = userAddress.StreetAddress;
                    VM.Suburb        = userAddress.Suburb;
                    VM.State         = userAddress.State;
                    VM.Postcode      = userAddress.Postcode;
                    userHasAddress   = true;
                }
                catch (Exception)
                {
                    VM.StreetAddress = "";
                    VM.Suburb        = "";
                    VM.State         = "";
                    VM.Postcode      = 1000;
                }

                ViewBag.UserHasAddress = userHasAddress;
                return(View(VM));
            }
            else
            {
                return(View());
            }
        }