Example #1
0
        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));
        }
Example #3
0
        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));
        }
Example #5
0
 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;
     }
 }
Example #6
0
        public AddHousePage2(HouseInfo houseInfo)
        {
            InitializeComponent();

            BindingContext = new AddHouseViewModel(houseInfo);
        }