示例#1
0
        public ActionResult ShowUserEdit(string id)
        {
            if (id == null) //Id is null, return bad request
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var user = _context.Users.Find(id); //get the requested user

            if (user == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var changeProfileModel = new changeProfileModel
            {
                Fname        = user.Fname,
                Lname        = user.Lname,
                City         = user.Adress.City,
                StreetAdress = user.Adress.StreetAdress,
                PostCode     = user.Adress.PostCode,
                State        = user.Adress.County,
                Phone        = user.Phone,
                Id           = user.Id,
                BirthNumber  = user.BirthNumber
            };

            return(PartialView("_EditProfilePartial", changeProfileModel));
        }
示例#2
0
        public async Task <ActionResult> EditUser(changeProfileModel model)
        {
            if (ModelState.IsValid)
            {
                var userId = User.Identity.GetUserId();
                if (userId == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var store   = new UserStore <ApplicationUser>(_context);
                var manager = new UserManager <ApplicationUser>(store);
                var user    = manager.FindById(userId); //the current user


                //so far so good, change the details of the user
                user.Fname       = model.Fname;
                user.Lname       = model.Lname;
                user.Phone       = model.Phone;
                user.BirthNumber = model.BirthNumber;

                var newAdress = new DbTables.Adresses
                {
                    City         = model.City,
                    StreetAdress = model.StreetAdress,
                    County       = model.State,
                    PostCode     = model.PostCode
                };
                var adress = AdressExist(newAdress);

                if (adress == null)
                {
                    user.Adress = newAdress;
                    adress      = newAdress;
                    _context.Adresses.Add(newAdress);
                    _context.SaveChanges();
                }
                else if (user.Adress == adress)
                {
                    //do nothing
                }
                else
                {
                    user.Adress = adress;
                }

                var result = await manager.UpdateAsync(user); //update the user in the databse

                store.Context.SaveChanges();

                if (result.Succeeded)            //if update succeeds
                {
                    if (Request.IsAjaxRequest()) //it succeeds, show success status message
                    {
                        ViewBag.Success = "Profilinformasjon oppdatert.";
                        var ProfileModel = new changeProfileModel
                        {
                            Id           = user.Id,
                            Fname        = user.Fname,
                            Lname        = user.Lname,
                            Phone        = user.Phone,
                            City         = adress.City,
                            State        = adress.County,
                            StreetAdress = adress.StreetAdress,
                            PostCode     = adress.PostCode,
                            BirthNumber  = user.BirthNumber
                        };
                        return(PartialView("_UserInfoPartial", ProfileModel));
                    }
                }
                else
                {
                    var ProfileModel = new changeProfileModel
                    {
                        Id           = user.Id,
                        Fname        = user.Fname,
                        Lname        = user.Lname,
                        Phone        = user.Phone,
                        City         = adress.City,
                        State        = adress.County,
                        StreetAdress = adress.StreetAdress,
                        PostCode     = adress.PostCode
                    };
                    ViewBag.Error = "Noe gikk galt.";
                    return(PartialView("_UserInfoPartial", ProfileModel));
                }
            }
            else
            {
                var user         = _context.Users.Find(User.Identity.GetUserId());
                var adress       = _context.Adresses.Find(user.AdressId);
                var ProfileModel = new changeProfileModel
                {
                    Id           = user.Id,
                    Fname        = user.Fname,
                    Lname        = user.Lname,
                    Phone        = user.Phone,
                    City         = adress.City,
                    State        = adress.County,
                    StreetAdress = adress.StreetAdress,
                    PostCode     = adress.PostCode
                };
                var messages = string.Join("\n", ModelState.Values
                                           .SelectMany(x => x.Errors)
                                           .Select(x => x.ErrorMessage));

                ViewBag.Error = "Ugyldige verdier: " + messages;

                return(PartialView("_UserInfoPartial", ProfileModel));
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }