//[NoCache]
        public ActionResult Apartments(ApartmentFilterCriteria filter, AnnouncementType type = AnnouncementType.Buy, AnnouncementOrder order = AnnouncementOrder.Address, NavigationViewType viewtype = NavigationViewType.List, int page = 1, bool considerEmpty = true)
        {
            IEnumerable <ApartmentAnnouncement> apartments = _announcementRepository.GetListOfApartments().Where(an => an.Type == type && an.Address.HasValue);

            switch (order)
            {
            case AnnouncementOrder.Address: apartments = apartments.OrderBy(a => a.Address.ToString()); break;

            case AnnouncementOrder.AddressDescending: apartments = apartments.OrderByDescending(a => a.Address.ToString()); break;

            case AnnouncementOrder.Date: apartments = apartments.OrderBy(a => a.Created); break;

            case AnnouncementOrder.DateDescending: apartments = apartments.OrderByDescending(a => a.Created); break;

            default: apartments = apartments.OrderBy(a => a.Address.ToString()); break;
            }

            if (ModelState.IsValid)
            {
                if (filter != null)
                {
                    if (filter.IsEmpty() && considerEmpty)
                    {
                        ApartmentFilterCriteria newFilter = ObjectToCookie.GetObjectFromCookies <ApartmentFilterCriteria>(Request.Cookies, COOKIE_KEY_APARTMENTFILTER);
                        if (newFilter != null)
                        {
                            filter = newFilter;
                        }
                    }
                    apartments = filter.Filter(apartments);
                    ObjectToCookie.SetCookieAsObject <ApartmentFilterCriteria>(filter, Response.Cookies, COOKIE_KEY_APARTMENTFILTER);
                }
            }
            else
            {
                filter = new ApartmentFilterCriteria();
            }

            ViewBag.ViewType  = viewtype;
            ViewBag.Type      = type;
            ViewBag.OrderType = order;

            if (viewtype == NavigationViewType.List)
            {
                ApartmentsListViewModel viewModel = new ApartmentsListViewModel();
                viewModel.Page = createPageInfo(page, apartments.Count());
                setViewModel(viewModel, announcementsForPage(apartments, page));
                viewModel.FilterCriteria = filter;

                return(View("Apartments", viewModel));
            }
            else
            {
                ApartmentsViewModel viewModel = new ApartmentsViewModel();
                setViewModel(viewModel, apartments);
                viewModel.FilterCriteria = filter;
                return(View("ApartmentsMap", viewModel));
            }
        }
Example #2
0
 public ApartmentsPage()
 {
     InitializeComponent();
     model = new ApartmentsViewModel();
     this.BindingContext = model;
     NavigationPage.SetHasNavigationBar(this, true);
     NavigationPage.SetHasNavigationBar(this, true);
 }
        public async Task <IActionResult> Index(string searchString)
        {
            ViewData["SearchString"] = searchString;

            List <DataAccess.Ef.Dto.Apartment> apartments = await _data.GetApartmentsAsync(searchString);

            var model = new ApartmentsViewModel
            {
                Apartments = apartments.Adapt <List <Models.ApartmentViewModel> >()
            };

            return(View(model));
        }
        public IActionResult GetApartmentsBySearch([FromQuery] int cityId, [FromQuery] string name, [FromQuery] DateTime availableFrom, [FromQuery] int numberOfBeds, string sortType, string sortDirection)
        {
            ApartmentsViewModel model = null;

            try
            {
                model = this.GetFullAndPartialViewModel(cityId, name, availableFrom, numberOfBeds, sortType, sortDirection);
            }
            catch (Exception ex)
            {
                _log.LogError(ex, ex.Message);
            }
            return(PartialView("_ListApartments", model));
        }
        public async Task <IActionResult> Index(ApartmentsViewModel model, string searchString)
        {
            if (ModelState.IsValid)
            {
                if (model.Apartments.Any())
                {
                    ApartmentViewModel apartment = model.Apartments[0];

                    if (apartment.LastIndicationId != null && apartment.LastIndicationValue != null)
                    {
                        await _data.SetIndicationAsync((int)apartment.LastIndicationId, (int)apartment.LastIndicationValue);
                    }
                }
            }

            return(RedirectToAction("Index", new { searchString = searchString }));
        }
        public IActionResult Index()
        {
            ApartmentsViewModel model = null;

            try
            {
                var allCities = _cityService.GetCities();
                apartmentsViewModel.Cities = allCities.Select(x => new SelectListItem
                {
                    Text  = x.Name,
                    Value = x.Id.ToString()
                }).ToList();

                model = this.GetFullAndPartialViewModel(allCities.FirstOrDefault().Id);
            }
            catch (Exception ex)
            {
                _log.LogError(ex, ex.Message);
            }

            return(this.View(model));
        }
        public async Task <ActionResult> Edit(ApartmentEdit apartments)
        {
            var lstImage = new List <string>();
            HttpFileCollectionBase files = Request.Files;

            if (files.Count > 5)
            {
                return(Json(new { result = false, mess = "Không up lớn hơn 5 ảnh", url = Url.Action("Index", "Apartment") }));
            }
            if (files.Count > 1)
            {
                Task task = Task.Run(async() =>
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        HttpPostedFileBase file = files[i];
                        Account account         = new Account("dev2020", "247996535991499", "9jI_5YjJaseBKUrY929sUtt0Fy0");

                        string path           = Path.Combine(Server.MapPath("Images"), Path.GetFileName(file.FileName));
                        Cloudinary cloudinary = new Cloudinary(account);
                        var uploadParams      = new ImageUploadParams()
                        {
                            File = new FileDescription(path, file.InputStream),
                        };
                        var uploadResult = await cloudinary.UploadAsync(uploadParams);
                        lstImage.Add(uploadResult.SecureUrl.ToString());
                    }
                });
                task.Wait();
            }


            var apartment = new ApartmentsViewModel();

            apartment.id                    = apartments.id;
            apartment.name                  = apartments.name; //Reading text box values using Jquery
            apartment.amount_bed            = apartments.amount_bed;
            apartment.amount_sofa           = apartments.amount_sofa;
            apartment.capacity_standard     = apartments.capacity_standard;
            apartment.capacity_max          = apartments.capacity_max;
            apartment.relax_suggest         = apartments.relax_suggest;
            apartment.direction_instruction = apartments.direction_instruction;
            apartment.cuisine_suggest       = apartments.cuisine_suggest;
            apartment.regulation            = apartments.regulation;
            apartment.phone                 = apartments.phone;
            apartment.area                  = apartments.area;
            apartment.amount_bathroom       = apartments.amount_bathroom;
            apartment.amount_bedroom        = apartments.amount_bedroom;
            apartment.star_standard         = apartments.star_standard;
            if (apartments.conveniencesEdit.Count > 1)
            {
                apartments.conveniencesEdit.RemoveAt(apartments.conveniencesEdit.Count - 1);
            }
            apartment.conveniences  = apartments.conveniencesEdit;
            apartment.cancel_policy = apartments.cancel_policy;
            apartment.latitude      = apartments.latitude;
            apartment.longitude     = apartments.longitude;
            string[] arrListStr = apartments.travelfrom.Split(',');
            if (arrListStr.Count() < 4)
            {
                return(Json(new { result = false, mess = $"Địa chỉ của bạn nhập là {apartments.travelfrom} không đúng định dạng VD: số 50 Cầu Giấy, Dịch Vọng, Cầu Giấy, Hà Nội. Xin vui lòng nhập lại", url = Url.Action("CreateApartment", "Apartment") }));
            }
            apartment.detail_address       = arrListStr[0];
            apartment.village_address      = arrListStr[1];
            apartment.district_address     = arrListStr[2];
            apartment.province_address     = arrListStr[3];
            apartment.apartment_type       = apartments.apartment_type;
            apartment.price                = apartments.price;
            apartment.price_promotion      = apartments.price_promotion;
            apartment.min_day              = apartments.min_day;
            apartment.max_day              = apartments.max_day;
            apartment.surcharge_per_person = apartments.surcharge_per_person;
            apartment.check_in_time        = apartments.check_in_time;
            apartment.check_out_time       = apartments.check_out_time;
            apartment.description          = apartments.description;
            apartment.gallery              = lstImage;



            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(Baseurl);
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Session["Authent"].ToString());
                //HTTP POST
                var response = await client.PostAsync("/manager/apartments/edit", new StringContent(
                                                          new JavaScriptSerializer().Serialize(apartment), Encoding.UTF8, "application/json"));

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                var EmpResponse = await response.Content.ReadAsStringAsync();

                int code = Convert.ToInt32(serializer.Deserialize <dynamic>(EmpResponse)["status"]);
                //var result = postTask.Result;
                if (response.IsSuccessStatusCode && code == 1)
                {
                    //TempData["message"] = serializer.Deserialize<dynamic>(EmpResponse)["message"];
                    return(Json(new { result = true, mess = "Sửa phòng thành công", url = Url.Action("Index", "Apartment") }));
                }
                return(Json(new { result = false, mess = serializer.Deserialize <dynamic>(EmpResponse)["message"] }));
            }
        }
        public async Task <ActionResult> Edit(long id)
        {
            var apartment = new ApartmentsViewModel();

            using (var client = new HttpClient())
            {
                //Passing service base url
                client.BaseAddress = new Uri(Baseurl);

                client.DefaultRequestHeaders.Clear();

                //client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Session["Authent"].ToString());
                //Define request data format
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage Res = await client.GetAsync($"/client/apartment/{id}");

                if (Res.IsSuccessStatusCode)
                {
                    //Storing the response details recieved from web api
                    var EmpResponse = Res.Content.ReadAsStringAsync().Result;
                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                    var item = serializer.Deserialize <dynamic>(EmpResponse)["data"];
                    apartment.id                    = Convert.ToInt64(id);
                    apartment.name                  = item["name"]; //Reading text box values using Jquery
                    apartment.amount_bed            = item["amount_bed"];
                    apartment.amount_sofa           = item["amount_sofa"];
                    apartment.capacity_standard     = item["capacity_standard"];
                    apartment.capacity_max          = item["capacity_max"];
                    apartment.relax_suggest         = item["relax_suggest"];
                    apartment.direction_instruction = item["direction_instruction"];
                    apartment.cuisine_suggest       = item["cuisine_suggest"];
                    apartment.regulation            = item["regulation"];
                    apartment.phone                 = Convert.ToString(item["phone"]);
                    apartment.area                  = Convert.ToDouble(item["area"]);
                    apartment.amount_bathroom       = item["amount_bathroom"];
                    apartment.amount_bedroom        = item["amount_bedroom"];
                    apartment.star_standard         = item["star_standard"];
                    var str = Newtonsoft.Json.JsonConvert.SerializeObject(item["conveniences"]);

                    //var result = JsonConvert.DeserializeObject<ListConvenience>(str);
                    List <Convenience> item2 = serializer.Deserialize <List <Convenience> >(str);
                    apartment.conveniences = item2.Select(x => x.id).ToList();
                    //apartment.cancel_policy = Convert.ToInt32(item["cancel_policy"]);
                    //apartment.latitude = item["latitude"];
                    //apartment.longitude = item["longitude"];
                    apartment.detail_address   = item["detail_address"];
                    apartment.village_address  = item["village_address"];
                    apartment.district_address = item["district_address"];
                    apartment.province_address = item["province_address"];
                    //apartment.apartment_type =1* Convert.ToInt32(item["apartment_type"]);
                    apartment.price                = Convert.ToDouble(item["price"]);
                    apartment.price_promotion      = Convert.ToDouble(item["price_promotion"]);
                    apartment.min_day              = item["min_day"];
                    apartment.max_day              = item["max_day"];
                    apartment.surcharge_per_person = Convert.ToDouble(item["surcharge_per_person"]);
                    apartment.check_in_time        = item["check_in_time"];
                    apartment.check_out_time       = item["check_out_time"];
                    apartment.description          = item["description"];
                    var str2 = Newtonsoft.Json.JsonConvert.SerializeObject(item["gallery"]);
                    apartment.gallery = serializer.Deserialize <List <string> >(str2);
                }
            }
            ViewBag.convenience = getAllConvenience();
            return(View(apartment));
        }
Example #9
0
        public async Task <ActionResult> Create(Apartments apartments)
        {
            var lstImage = new List <string>();
            HttpFileCollectionBase files = Request.Files;

            for (int i = 0; i < files.Count; i++)
            {
                HttpPostedFileBase file    = files[i];
                Account            account = new Account("dev2020", "247996535991499", "9jI_5YjJaseBKUrY929sUtt0Fy0");

                string path = Path.Combine(Server.MapPath("Images"), Path.GetFileName(file.FileName));

                Cloudinary cloudinary   = new Cloudinary(account);
                var        uploadParams = new ImageUploadParams()
                {
                    File = new FileDescription(path, file.InputStream),
                };
                var uploadResult = cloudinary.Upload(uploadParams);
                lstImage.Add(uploadResult.SecureUrl.ToString());
            }
            var apartment = new ApartmentsViewModel();

            apartment.name                  = apartments.name; //Reading text box values using Jquery
            apartment.amount_bed            = apartments.amount_bed;
            apartment.amount_sofa           = apartments.amount_sofa;
            apartment.capacity_standard     = apartments.capacity_standard;
            apartment.capacity_max          = apartments.capacity_max;
            apartment.relax_suggest         = apartments.relax_suggest;
            apartment.direction_instruction = apartments.direction_instruction;
            apartment.cuisine_suggest       = apartments.cuisine_suggest;
            apartment.regulation            = apartments.regulation;
            apartment.phone                 = apartments.phone;
            apartment.fax             = apartments.fax;
            apartment.area            = apartments.area;
            apartment.amount_bathroom = apartments.amount_bathroom;
            apartment.amount_bedroom  = apartments.amount_bedroom;
            apartment.star_standard   = apartments.star_standard;
            apartments.conveniences.RemoveAt(apartments.conveniences.Count - 1);
            apartment.conveniences  = apartments.conveniences;
            apartment.cancel_policy = apartments.cancel_policy;
            apartment.latitude      = apartments.latitude;
            apartment.longitude     = apartments.longitude;
            string[] arrListStr = apartments.travelfrom.Split(',');
            apartment.detail_address       = arrListStr[0];
            apartment.village_address      = arrListStr[1];
            apartment.district_address     = arrListStr[2];
            apartment.province_address     = arrListStr[3];
            apartment.apartment_type       = apartments.apartment_type;
            apartment.price                = apartments.price;
            apartment.price_promotion      = apartments.price_promotion;
            apartment.min_day              = apartments.min_day;
            apartment.max_day              = apartments.max_day;
            apartment.surcharge_per_person = apartments.surcharge_per_person;
            apartment.check_in_time        = apartments.check_in_time;
            apartment.check_out_time       = apartments.check_out_time;
            apartment.description          = apartments.description;
            apartment.gallery              = lstImage;

            if (Session["Authent"] != null)
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://35.197.153.19:12345/");
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Session["Authent"].ToString());
                    //HTTP POST

                    var response = await client.PostAsync("manager/apartments", new StringContent(
                                                              new JavaScriptSerializer().Serialize(apartment), Encoding.UTF8, "application/json"));

                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                    var EmpResponse = await response.Content.ReadAsStringAsync();

                    //var result = postTask.Result;
                    if (response.IsSuccessStatusCode)
                    {
                        TempData["message"] = "Create Success";
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        TempData["message"] = serializer.Deserialize <dynamic>(EmpResponse)["message"];
                        return(RedirectToAction("CreateApartment", "Home"));
                    }
                }
            }


            return(View());
        }