Example #1
0
        public ActionResult EditAd(int Id)
        {
            try
            {
                var userId  = User.Identity.GetUserId();
                var houseAd = _ctx.Houses
                              .Include(x => x.State)
                              .Include(x => x.Area)
                              .Include(x => x.HousePhotos)
                              .Include(x => x.User)
                              .Single(x => x.Id == Id && x.UserId == userId);


                AdFormViewModel vm = new AdFormViewModel();
                vm.House         = houseAd;
                vm.Areas         = houseAd.State.Areas;
                vm.House.AreaId  = houseAd.AreaId;
                vm.House.Area    = houseAd.Area;
                vm.House.StateId = houseAd.StateId;
                vm.Action        = "Επεξεργασία Αγγελίας";
                vm.ButtonAction  = "Αποθήκευση";
                vm.FormAction    = "UpdateAd";
                vm.User          = houseAd.User;
                vm.States        = _ctx.States.ToList();



                return(View("AdForm", vm));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, $"{ex.Message}"));
            }
        }
        public ActionResult CreateOrUpdateAd(Ad ad)
        {
            var viewModel = new AdFormViewModel()
            {
                Ad      = new Ad(),
                Cars    = _context.Cars.ToList(),
                Clients = _context.Clients.ToList()
            };

            if (ad.Id == 0)
            {
                if (!ModelState.IsValid)
                {
                    return(View("AdFormCreate", viewModel));
                }

                _context.Ads.Add(ad);
            }
            else
            {
                var adInDb = _context.Ads.First(a => a.Id == ad.Id);

                if (!ModelState.IsValid)
                {
                    return(View("AdFormUpdate", adInDb));
                }

                adInDb.Description = ad.Description;
            }

            _context.SaveChanges();

            return(RedirectToAction("AdDetails", "Ads", new { ad.Id }));
        }
        public ActionResult AdFormCreate()
        {
            var viewModel = new AdFormViewModel()
            {
                Clients = _context.Clients.ToList(),
                Cars    = _context.Cars.ToList()
            };

            return(View("AdFormCreate", viewModel));
        }
Example #4
0
        public ActionResult Create()
        {
            var userId = User.Identity.GetUserId();

            var user = _ctx.Users.Find(userId);

            var states = _ctx.States.ToList();
            var rental = new AdFormViewModel
            {
                States       = states,
                User         = user,
                Action       = "Εισαγωγή Αγγελίας",
                ButtonAction = "Καταχώρηση",
                FormAction   = "InsertAd"
            };

            return(View("AdForm", rental));
        }
Example #5
0
        public ActionResult EditAd(int Id)
        {
            try
            {
                var house = _ctx.Houses
                            .Include(x => x.HousePhotos)
                            .Include("State")
                            .Include("State.Areas")
                            .Single(x => x.Id == Id);

                var states = _ctx.States.ToList();

                AlertDto alert = new AlertDto();
                switch (house.IsConfirmed)
                {
                case (Confirmation)0:
                    alert.AlertClass = "success";
                    alert.AlertText  = "Δημοσιευμένη";
                    break;

                case (Confirmation)1:
                    alert.AlertClass = "warning";
                    alert.AlertText  = "Εκκρεμών";
                    break;

                case (Confirmation)2:
                    alert.AlertClass = "danger";
                    alert.AlertText  = "Απορριφθείσα";
                    break;
                }

                AdFormViewModel vm = new AdFormViewModel
                {
                    States = states,
                    Areas  = house.State.Areas,
                    Id     = house.Id,
                    Alert  = alert,
                    House  = new House
                    {
                        AreaId        = house.State.Areas.FirstOrDefault(x => x.Id == house.AreaId).Id,
                        StateId       = house.State.Id,
                        Address       = house.Address,
                        IsConfirmed   = house.IsConfirmed,
                        PostalCode    = house.PostalCode,
                        Gender        = house.Gender,
                        Smoker        = house.Smoker,
                        RentCost      = house.RentCost,
                        Level         = house.Level,
                        SquareMeters  = house.SquareMeters,
                        Pets          = house.Pets,
                        HousePhotos   = house.HousePhotos,
                        TotalRooms    = house.TotalRooms,
                        YearConstruct = house.YearConstruct,
                        Description   = house.Description
                    }
                };


                return(View(vm));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, $"{ex.Message}"));
            }
        }
Example #6
0
        public ActionResult InsertAd(AdFormViewModel vm)
        {
            var userId = User.Identity.GetUserId();

            if (string.IsNullOrEmpty(userId))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Μη εγκεκριμένος χρήστης"));
            }

            if (!ModelState.IsValid)
            {
                var states = _ctx.States.ToList();
                vm.States       = states;
                vm.Areas        = _ctx.Areas.Where(x => x.State.Id == vm.House.StateId).ToList();
                vm.ButtonAction = "Καταχώρηση";
                vm.Action       = "Εισαγωγή Αγγελίας";

                return(View("Adform", vm));
            }

            List <HousePhoto> newPhotos = new List <HousePhoto>();

            if (vm.Files[0] != null)
            {
                foreach (var file in vm.Files)
                {
                    var        result = service.UploadImage(file);
                    var        url    = result.Uri.ToString();
                    HousePhoto photo  = new HousePhoto
                    {
                        Url = url
                    };
                    newPhotos.Add(photo);
                }
                newPhotos[0].IsMain = true;
            }


            var user = _ctx.Users.Find(userId);

            user.Gender = vm.User.Gender;
            user.Smoker = vm.User.Smoker;
            user.Pets   = vm.User.Pets;

            var houseAd = new House
            {
                Address       = vm.House.Address,
                PostalCode    = vm.House.PostalCode,
                Level         = vm.House.Level,
                RentCost      = vm.House.RentCost,
                YearConstruct = vm.House.YearConstruct,
                AreaId        = vm.House.AreaId,
                StateId       = vm.House.StateId,
                UserId        = userId,
                Gender        = vm.House.Gender,
                Pets          = vm.House.Pets,
                Smoker        = vm.House.Smoker,
                Description   = vm.House.Description,
                SquareMeters  = vm.House.SquareMeters,
                TotalRooms    = vm.House.TotalRooms,
                HousePhotos   = newPhotos
            };

            _ctx.Houses.Add(houseAd);
            _ctx.SaveChanges();

            TempData["Message"] = "Καταχώρηση";
            return(RedirectToAction("GetProfile", "Users"));
        }
Example #7
0
        public ActionResult UpdateAd(AdFormViewModel vm)
        {
            try
            {
                var userId  = User.Identity.GetUserId();
                var houseAd = _ctx.Houses
                              .Include(x => x.HousePhotos)
                              .Single(x => x.Id == vm.House.Id && x.UserId == userId);
                if (houseAd.IsConfirmed == Confirmation.Pass)
                {
                    houseAd.IsConfirmed = Confirmation.Pending;
                }
                houseAd.Address       = vm.House.Address;
                houseAd.Description   = vm.House.Description;
                houseAd.Level         = vm.House.Level;
                houseAd.PostalCode    = vm.House.PostalCode;
                houseAd.SquareMeters  = vm.House.SquareMeters;
                houseAd.RentCost      = vm.House.RentCost;
                houseAd.TotalRooms    = vm.House.TotalRooms;
                houseAd.YearConstruct = vm.House.YearConstruct;
                houseAd.Smoker        = vm.House.Smoker;
                houseAd.Pets          = vm.House.Pets;
                houseAd.Gender        = vm.House.Gender;

                var isMain = houseAd.HousePhotos.Any(x => x.IsMain == true);
                if (isMain && (vm.Files[0] != null))
                {
                    foreach (var file in vm.Files)
                    {
                        var        result = service.UploadImage(file);
                        var        url    = result.Uri.ToString();
                        HousePhoto photo  = new HousePhoto
                        {
                            Url    = url,
                            IsMain = false
                        };
                        houseAd.HousePhotos.Add(photo);
                    }
                }
                else
                {
                    if (vm.Files[0] != null)
                    {
                        for (int i = 0; i < vm.Files.Length; i++)
                        {
                            var result = service.UploadImage(vm.Files[i]);
                            var url    = result.Uri.ToString();
                            if (i == 0)
                            {
                                HousePhoto photo = new HousePhoto
                                {
                                    Url    = url,
                                    IsMain = true
                                };
                                houseAd.HousePhotos.Add(photo);
                            }
                            else
                            {
                                HousePhoto photo = new HousePhoto
                                {
                                    Url    = url,
                                    IsMain = false
                                };
                                houseAd.HousePhotos.Add(photo);
                            }
                        }
                    }
                }

                _ctx.SaveChanges();
                TempData["Message"] = "Καταχώρηση";
                return(RedirectToAction("GetProfile", "Users"));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, $"{ex.Message}"));
            }
        }