示例#1
0
        public ActionResult AddApartment()
        {
            string message           = Translation.Translation.AccessIsDeniedMessage;
            User   authenticatedUser = _userRepository.GetUserByPhone(User.Identity.Name);

            if (authenticatedUser != null)
            {
                if (authenticatedUser.Apartments.Count < authenticatedUser.Profile.MaxAnnouncements)
                {
                    ApartmentAnnouncement apartment = new ApartmentAnnouncement();
                    apartment.User = authenticatedUser;
                    _announcementRepository.Add(apartment);
                    _announcementRepository.SaveChanges();
                    return(RedirectToAction("EditApartment", new { id = apartment.AnnouncementID }));
                }
                else
                {
                    message = Translation.Translation.ProfileAnnouncementsLimitMessage;
                }
            }

            TempData["message"] = message;

            return(RedirectToAction("Announcements", new { phone = User.Identity.Name }));
        }
示例#2
0
        public ActionResult EditApartment(ApartmentAnnouncement apartment)
        {
            User   authenticatedUser = _userRepository.GetUserByPhone(User.Identity.Name);
            string errormessage      = Translation.Translation.InvalidAnnouncementMessage;

            if (ModelState.IsValid)
            {
                if (apartment.Address.HasValue)
                {
                    if (saveAnnouncement(apartment, authenticatedUser))
                    {
                        TempData["message"] = string.Format(Translation.Translation.CabinetDataSavedMessage);
                        return(RedirectToAction("Announcements", new { phone = authenticatedUser.Phone }));
                    }
                    else
                    {
                        throw new Exception(Translation.Translation.AccessIsDeniedMessage);
                    }
                }
                else
                {
                    errormessage = Translation.Translation.InvalidAddressMessage;
                }
            }
            ViewBag.User = authenticatedUser;
            ModelState.AddModelError("", errormessage);
            return(View(apartment));
        }
        public ApartmentAnnouncement FindApartment(string street, int userId, int floor, Square square)
        {
            ApartmentAnnouncement apartment = null;
            IQueryable <ApartmentAnnouncement> apartments = SearchFor(an => isApartmentValid(an, street, userId, floor, square)).Select(an => an as ApartmentAnnouncement);

            apartment = apartments.FirstOrDefault();
            return(apartment);
        }
        private bool isApartmentValid(Announcement announcement, string street, int userId, int floor, Square square)
        {
            bool res = false;
            ApartmentAnnouncement apartment = announcement as ApartmentAnnouncement;

            if (apartment != null)
            {
                res = ((apartment.Address.Street == street) && (apartment.Floor == floor) && (apartment.LivingSquare.Value == square.Value) && (apartment.UserID == userId));
            }
            return(res);
        }
示例#5
0
        private Announcement createAnnouncement(int j, User user)
        {
            Announcement an = null;

            if (j % 3 == 0)
            {
                ApartmentAnnouncement apartment = new ApartmentAnnouncement();
                apartment.Balcony     = PresentTypeValue.Present;
                apartment.Floor       = j;
                apartment.MaxFloor    = j * 3;
                apartment.RoomsNumber = j % 4;
                apartment.TotalSquare = new Square()
                {
                    Value = j % 100, Unit = SquareUnit.SquareMeters
                };

                an = apartment;
            }
            else
            {
                if (j % 3 == 1)
                {
                    HouseAnnouncement house = new HouseAnnouncement();
                    house.TotalSquare = new Square()
                    {
                        Value = j % 20, Unit = SquareUnit.Are
                    };
                    an = house;
                }
                else
                {
                    LandAnnouncement land = new LandAnnouncement();
                    land.TotalSquare = new Square()
                    {
                        Value = j % 20, Unit = SquareUnit.Are
                    };
                    an = land;
                }
            }
            an.Type                       = AnnouncementType.Buy;
            an.Currency                   = Currency.Hryvna;
            an.Price                      = j * 1000;
            an.IsVisible                  = true;
            an.Sold                       = false;
            an.User                       = user;
            an.Address.AddressType        = AddressType.City;
            an.Address.AdministrativeArea = j.ToString();
            an.Address.LocalityName       = j.ToString();
            an.Address.District           = j.ToString();
            an.Address.Street             = j.ToString();

            return(an);
        }
示例#6
0
        public override string GetHtmlDescription()
        {
            ApartmentAnnouncement apartment = Announcement as ApartmentAnnouncement;
            string description = string.Empty;

            if (apartment != null)
            {
                description  = string.Format("{0}: {1}<br/>", Translation.Translation.ApartmentDetailsPageRoomsCountLabel, apartment.RoomsNumber);
                description += string.Format("{0}: {1} {2}<br/>", Translation.Translation.ApartmentDetailsPageSquareLabel, apartment.TotalSquare.Value, EnumsToSelectedListItems.GetTextFromEnumValue(apartment.TotalSquare.Unit));
                description += string.Format("{0}: {1} {2}<br/>", Translation.Translation.ApartmentDetailsPagePriceLabel, apartment.Price, EnumsToSelectedListItems.GetTextFromEnumValue(apartment.Currency));
            }
            return(Translation.Translation.ApartmentAnnouncementLabel + " " + base.GetHtmlDescription() + "<br/>" + description);
        }
示例#7
0
        public void SetPhone(ApartmentAnnouncement apartment, string phone)
        {
            User user = _userRepository.GetUserByPhone(phone);

            if (user == null)
            {
                user = new User()
                {
                    Phone = phone
                };
                _userRepository.Add(user);
                _userRepository.SaveChanges();
            }
            apartment.User = user;
        }
示例#8
0
        public ActionResult EditApartment(int id)
        {
            ApartmentAnnouncement apartment = _announcementRepository.GetById(id) as ApartmentAnnouncement;
            User authenticatedUser          = _userRepository.GetUserByPhone(User.Identity.Name);

            if (authenticatedUser == apartment.User)
            {
                ViewBag.User = authenticatedUser;
                return(View(apartment));
            }
            else
            {
                throw new Exception(Translation.Translation.AccessIsDeniedMessage);
            }
        }
示例#9
0
        private ApartmentAnnouncement FindApartment(ApartmentAnnouncement apartment)
        {
            ApartmentAnnouncement res = null;

            if (apartment.Address != null)
            {
                User user = _userRepository.GetUserByPhone(apartment.User.Phone);

                Address address = GetAddressFromStreetName(apartment.Address.Street);
                if ((user != null) && (address != null))
                {
                    res = _apartmentRepository.FindApartment(address.Street, user.UserID, apartment.Floor, apartment.LivingSquare);
                }
            }
            return(res);
        }
示例#10
0
        public void AddApartment(ApartmentAnnouncement apartment)
        {
            ApartmentAnnouncement existingApartment = FindApartment(apartment);

            if (existingApartment == null)
            {
                apartment.Sold = false;
                _apartmentRepository.Add(apartment);
                NewApartments++;
            }
            else
            {
                existingApartment.Price    = apartment.Price;
                existingApartment.Currency = apartment.Currency;
                existingApartment.Notice   = apartment.Notice;
                existingApartment.Sold     = false;

                _apartmentRepository.SetModified(existingApartment);
            }
            _apartmentRepository.SaveChanges();
        }
        public ActionResult ApartmentDetails(int id)
        {
            ApartmentAnnouncement apartment = _announcementRepository.GetById(id) as ApartmentAnnouncement;

            return(View(apartment));
        }
示例#12
0
        public void SetStreet(ApartmentAnnouncement apartment, string streetName)
        {
            Address address = GetAddressFromStreetName(streetName);

            apartment.Address = address;
        }