public override async Task <ActionResult <ListRoomResponse> > HandleAsync([FromQuery] ListRoomRequest request, CancellationToken cancellationToken) { var response = new ListRoomResponse(request.CorrelationId()); var roomSpec = new RoomSpecification(); var rooms = await _repository.ListAsync(roomSpec); if (rooms is null) { return(NotFound()); } response.Rooms = _mapper.Map <List <RoomDto> >(rooms); response.Count = response.Rooms.Count; return(Ok(response)); }
private async void GetRooms(string startDate = null, string endDate = null) { UserDialogs.Instance.Loading(title: "Getting Rooms...").Show(); var client = new HttpClient() { Timeout = TimeSpan.FromSeconds(20) }; JObject @params = new JObject() { new JProperty("params", new JObject() { new JProperty("auth", new JObject() { new JProperty("token", currentHost.usr_token) }), new JProperty("dates", new JObject() { new JProperty("start_date", !string.IsNullOrWhiteSpace(startDate) ? startDate : DateTime.Today.ToString("yyyy-MM-dd")), new JProperty("end_date", !string.IsNullOrWhiteSpace(endDate) ? endDate : DateTime.Today.AddDays(1).ToString("yyyy-MM-dd")) }) }) }; var data = @params.ToString(); var content = new StringContent(data, Encoding.UTF8, "application/json"); Debug.WriteLine("REQUEST-AvailableRooms: " + data); try { HttpResponseMessage response = await client.PostAsync(currentHost.host_url + ApiUri.AVAILABLE_ROOMS, content); string responseContent = await response.Content.ReadAsStringAsync(); if (response.StatusCode == HttpStatusCode.OK) { UserDialogs.Instance.Loading().Hide(); Debug.WriteLine("RESPONSE-AvailableRooms: " + responseContent); ListRoomResponse listRoomResponse = JsonConvert.DeserializeObject <ListRoomResponse>(responseContent, App.DefaultSerializerSettings); listCamping = listRoomResponse.result.Where(s => s.camping.Equals(true)).OrderBy(s => s.room_type).ToList(); listPrivateRoom = listRoomResponse.result.Where(s => s.Private.Equals(true) && !s.camping.Equals(true)).OrderBy(s => s.room_type).ToList(); listSharedRoom = listRoomResponse.result.Where(s => s.Private.Equals(false) && !s.camping.Equals(true)).OrderBy(s => s.room_type).ToList(); if (listCamping.Count != 0 || listPrivateRoom.Count != 0 || listSharedRoom.Count != 0) { //private rooms if (listPrivateRoom.Count != 0) { privateRoomsLayout.IsVisible = true; listPrivateRooms.ItemsSource = listPrivateRoom; } else { privateRoomsLayout.IsVisible = false; listSharedRooms.Padding = 0; } //shared rooms if (listSharedRoom.Count != 0) { sharedRoomsLayout.IsVisible = true; listSharedRooms.ItemsSource = listSharedRoom; } else { sharedRoomsLayout.IsVisible = false; listCampingRooms.Padding = 0; } //camping if (listCamping.Count != 0) { campingRoomsLayout.IsVisible = true; listCampingRooms.ItemsSource = listCamping; } else { campingRoomsLayout.IsVisible = false; } notAvailableRoom.IsVisible = false; } else { notAvailableRoom.IsVisible = true; privateRoomsLayout.IsVisible = false; sharedRoomsLayout.IsVisible = false; campingRoomsLayout.IsVisible = false; } } } catch (TaskCanceledException ex) { UserDialogs.Instance.Loading().Hide(); UserDialogs.Instance.Toast(new ToastConfig("Bad Connection Error. Try Again")); Debug.WriteLine(ex.Message); } catch (Exception exx) { Debug.WriteLine(exx.Message); UserDialogs.Instance.Loading().Hide(); Notifications.Internal.ServerError(); } }