public ActionResult EditUserProfile(UserViewModel userVM)
 {
     //todo: locationid gaat hier verloren
     //if (user.Location == null && loc != null) {
     //    user.Location = loc;
     //}
     return View(userVM);
 }
        public ActionResult UpdateUserProfile(UserViewModel userVM)
        {
            User user = GetUserByUserName(userVM.UserName);

            user.FillFromViewModel(userVM);

            GeoCodeService geoCoder = new GeoCodeService();
            user.Location.Geolocation = geoCoder.AdressToGeoCode(user.Location.Street, user.Location.StreetNr, user.Location.PostalCode, user.Location.Country);
            
            _db.Entry(user).State = EntityState.Modified;
           
            _db.SaveChanges();

            return RedirectToAction("Index", "User", new { id = user.UserName });
        }
 public void FillFromViewModel(UserViewModel vm) {
     UserId = vm.UserId;
     UserName = vm.UserName;
     Email = vm.Email;
     Name = vm.Name;
     SurName = vm.SurName;
     GSM = vm.GSM;
     Location.LocationId = vm.LocationId;
     Location.Street = vm.Street;
     Location.StreetNr = vm.StreetNr;
     Location.PostalCode = vm.PostalCode;
     Location.City = vm.City;
     Location.Country = vm.Country;
     Location.Geolocation = vm.Geolocation;
 }
        public UserViewModel ViewModel() {
            UserViewModel vm = new UserViewModel();

            vm.UserId = UserId;
            vm.UserName = UserName;
            vm.Email = Email;
            vm.Name = Name;
            vm.SurName = SurName;
            vm.GSM = GSM;
            vm.LocationId = Location.LocationId;
            vm.Street = Location.Street;
            vm.StreetNr = Location.StreetNr;
            vm.PostalCode = Location.PostalCode;
            vm.City = Location.City;
            vm.Country = Location.Country;
            vm.Geolocation = Location.Geolocation;

            return vm;
        }