public async Task<ActionResult> Edit(EditViewModel model, ICollection<HttpPostedFileBase> files) { if (ModelState.IsValid) { var userName = User.Identity.Name; var user = await UserManager.FindByNameAsync(userName); if (user == null) { return RedirectToAction("Index", "Home"); } user.FirstName = model.FirstName; user.LastName = model.LastName; user.NameInRoman = model.NameInRoman; user.Birthday = model.Birthday; user.Location = DbContext.Locations.Find(model.Location); user.Religion = DbContext.Religions.Find(model.Religion); user.Activity = DbContext.Activities.Find(model.Activity); user.Job = DbContext.Jobs.Find(model.Job); user.Education = DbContext.Educations.Find(model.Education); user.FirstLanguage = DbContext.Languages.Find(model.FirstLanguage); user.FirstLanguageLevel = DbContext.Levels.Find(model.FirstLanguageLevel); user.SecondLanguage = DbContext.Languages.Find(model.SecondLanguage); user.SecondLanguageLevel = DbContext.Levels.Find(model.SecondLanguageLevel); user.ThirdLanguage = DbContext.Languages.Find(model.ThirdLanguage); user.ThirdLanguageLevel = DbContext.Levels.Find(model.ThirdLanguageLevel); user.Relationship = DbContext.Relationships.Find(model.Relationship); user.NumberOfChildren = DbContext.NumbersOfChildren.Find(model.NumberOfChildren); user.Height = model.Height; user.Weight = model.Weight; user.Shape = DbContext.Shapes.Find(model.Shape); user.EyeColor = DbContext.EyeColors.Find(model.EyeColor); user.HairColor = DbContext.HairColors.Find(model.HairColor); user.Smoking = DbContext.Smokings.Find(model.Smoking); user.Alcohol = DbContext.Alcohols.Find(model.Alcohol); user.DesiredAge = DbContext.DesiredAges.Find(model.DesiredAge); user.Hobby = DbContext.Hobbies.Find(model.Hobby); user.Lifestyle = DbContext.Lifestyles.Find(model.Lifestyle); user.Knowledge = DbContext.Knowledges.Find(model.Knowledge); user.PhoneNumber = model.PhoneNumber; user.Skype = model.Skype; user.Facebook = model.Facebook; user.Vk = model.Vk; user.Twitter = model.Twitter; user.InternationalPassport = DbContext.InternationalPassports.Find(model.InternationalPassport); user.Status = false; foreach (var file in files) { if (file != null && file.ContentLength > 0) { string extension = System.IO.Path.GetExtension(file.FileName).ToLower(); if (file.ContentLength < 5242880 && (extension == ".jpg" || extension == ".jpeg")) { string localFileName = Guid.NewGuid().ToString() + extension; string pathToSave = System.IO.Path.Combine(Server.MapPath("~/Content/Images"), localFileName); var relativePath = MakeRelative(pathToSave, Server.MapPath("~")); file.SaveAs(pathToSave); file.SaveAs(pathToSave); FilePath photo = null; photo = new FilePath { FileName = localFileName, PathName = "/" + relativePath, FileType = FileType.Photo }; user.FilePaths.Add(photo); string thumbnailPathName = CreateThumbnail(localFileName, 100); var relativeThumbnailPath = MakeRelative(thumbnailPathName, Server.MapPath("~")); var thumbnail = new FilePath { FileName = localFileName, PathName = "/" + relativeThumbnailPath, FileType = FileType.Thumbnail }; user.FilePaths.Add(thumbnail); } } } var result = await UserManager.UpdateAsync(user); if (result.Succeeded) { ManageMessageId message = ManageMessageId.EditSuccess; return RedirectToAction("Index", new { Message = message }); } AddErrors(result); } ViewBag.PersonalData = GetSelectListItemsDictionary(); return View("Index", model); }
private EditViewModel GetEditViewModelFromApplicationUser(ApplicationUser user) { EditViewModel model = new EditViewModel { HasPassword = HasPassword(), FirstName = user.FirstName, LastName = user.LastName, NameInRoman = user.NameInRoman, Birthday = user.Birthday, Location = user.Location.Id, Religion = user.Religion.Id, Activity = user.Activity.Id, Job = user.Job.Id, Education = user.Education.Id, FirstLanguage = user.FirstLanguage.Id, FirstLanguageLevel = user.FirstLanguageLevel.Id, SecondLanguage = user.SecondLanguage.Id, SecondLanguageLevel = user.SecondLanguageLevel.Id, ThirdLanguage = user.ThirdLanguage.Id, ThirdLanguageLevel = user.ThirdLanguageLevel.Id, Relationship = user.Relationship.Id, NumberOfChildren = user.NumberOfChildren.Id, Height = user.Height, Weight = user.Weight, Shape = user.Shape.Id, EyeColor = user.EyeColor.Id, HairColor = user.HairColor.Id, Smoking = user.Smoking.Id, Alcohol = user.Alcohol.Id, DesiredAge = user.DesiredAge.Id, Hobby = user.Hobby.Id, Lifestyle = user.Lifestyle.Id, Knowledge = user.Knowledge.Id, PhoneNumber = user.PhoneNumber, Skype = user.Skype, Facebook = user.Facebook, Vk = user.Vk, Twitter = user.Twitter, InternationalPassport = user.InternationalPassport.Id, FilePaths = user.FilePaths }; return model; }