Exemplo n.º 1
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"));
        }
Exemplo n.º 2
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}"));
            }
        }