public async Task <IActionResult> AddHouse(AddHouseViewModel model) { if (!ModelState.IsValid) { foreach (var err in ModelState.Values.SelectMany(c => c.Errors)) { ViewData["addHouseError"] = err.ErrorMessage; } return(LocalRedirect($"/profile?error={ViewData["addHouseError"]}")); } if (model.Type.Equals(HouseType.None)) { ViewData["addHouseError"] = "Choose other house type"; return(LocalRedirect($"/profile?error={ViewData["addHouseError"]}")); } string path = "/images/" + model.ImageFile.FileName; using (var stream = new FileStream(_environment.WebRootPath + path, FileMode.OpenOrCreate)) { await model.ImageFile.CopyToAsync(stream); } var house = _mapper.Map <House>(model); house.ImagePath = path; house.OwnerId = Guid.Parse(HttpContext.User.Claims.First(c => ClaimTypes.NameIdentifier == c.Type).Value); house = await _houseService.Create(house); if (house == null) { ViewData["addHouseError"] = "Failed to publish house"; return(LocalRedirect($"/profile?error={ViewData["addHouseError"]}")); } return(RedirectToAction("ProfilePage", "Profile")); }
// GET: House/Create public IActionResult Create() { var model = new AddHouseViewModel() { Provinces = new SelectList(_provinceService.GetAll(), "ProvinceId", "Name"), Features = _featureService.GetAll(), Services = _servicexService.GetAll() }; return(View(model)); }
public async Task <IActionResult> UpdateHouse(AddHouseViewModel model) { var house = await _houseService.GetById(model.Id); await UpdateHouseValues(model, house); if (await _houseService.Update(house)) { return(LocalRedirect($"/houses/{model.Id}")); } ViewData["updateError"] = "Failed to update house"; return(LocalRedirect($"/houses/{model.Id}?updateError={ViewData["updateError"]}")); }
public IActionResult Create([Bind("HouseId,Name,Price,Bedrooms,Bathrooms,Size,ProvinceId,ImageUploaded,Description")] AddHouseViewModel model, IEnumerable <int> features, IEnumerable <int> services) { if (ModelState.IsValid) { var house = _autoMapper.Map <House>(model); var houseFeatures = features.Select(id => new HouseFeature() { FeatureId = id }); foreach (var id in features) { house.Features.Add(new HouseFeature() { FeatureId = id }); } var houseServices = services.Select(id => new HouseService() { ServiceId = id }); foreach (var id in services) { house.Services.Add(new HouseService() { ServiceId = id }); } _houseService.Insert(house, model.ImageUploaded); _houseService.Save(); TempData["TransactionCompleted"] = "House added Sucessfully"; return(RedirectToAction(nameof(List))); } model.Provinces = new SelectList(_provinceService.GetAll(), "ProvinceId", "Name"); model.Features = _featureService.GetAll(); model.SelectedFeatures = features.Select(id => new HouseFeature() { FeatureId = id }); model.Services = _servicexService.GetAll(); model.SelectedServices = services.Select(id => new HouseService() { ServiceId = id }); return(View(model)); }
private async Task UpdateHouseValues(AddHouseViewModel model, House house) { if (model.IsSelling.HasValue) { house.IsSelling = model.IsSelling.Value; } if (!string.IsNullOrEmpty(model.Name) && model.Name != house.Name) { house.Name = model.Name; } if (!string.IsNullOrEmpty(model.Street) && model.Street != house.Street) { house.Street = model.Street; } if (model.Type != HouseType.None && model.Type != house.Type) { house.Type = model.Type; } if (model.Price > 0 && model.Price != house.Price) { house.Price = model.Price; } if (!string.IsNullOrEmpty(model.Info) && model.Info != house.Info) { house.Info = model.Info; } if (model.ImageFile != null) { string path = "/images/" + model.ImageFile.FileName; using (var stream = new FileStream(_environment.WebRootPath + path, FileMode.OpenOrCreate)) { await model.ImageFile.CopyToAsync(stream); } house.ImagePath = path; } }
public AddHousePage2(HouseInfo houseInfo) { InitializeComponent(); BindingContext = new AddHouseViewModel(houseInfo); }