protected override Task Poll()
        {
            if (!API.IsLoggedIn)
            {
                return(base.Poll());
            }

            if (selectedRoom.Value?.RoomID.Value == null)
            {
                return(base.Poll());
            }

            var tcs = new TaskCompletionSource <bool>();

            pollReq?.Cancel();
            pollReq = new GetRoomRequest(selectedRoom.Value.RoomID.Value.Value);

            pollReq.Success += result =>
            {
                RoomManager.AddOrUpdateRoom(result);
                tcs.SetResult(true);
            };

            pollReq.Failure += _ => tcs.SetResult(false);

            API.Queue(pollReq);

            return(tcs.Task);
        }
        public JsonResult Update(UserDetailView vm)
        {
            GetUserRequest request = new GetUserRequest();

            request.UserId = vm.UserId;

            ModifyUserRequest updateRequest = _userService.GetUser(request).User.ConvertToModifyUserRequest();

            updateRequest.UserId      = vm.UserId;
            updateRequest.UserName    = vm.UserName;
            updateRequest.Email       = vm.Email;
            updateRequest.Password    = vm.Password;
            updateRequest.FirstName   = vm.FirstName;
            updateRequest.LastName    = vm.LastName;
            updateRequest.PhoneNumber = vm.PhoneNumber;
            updateRequest.BirthDay    = vm.BirthDay;
            updateRequest.IpAddress   = vm.IpAddress;
            updateRequest.Status      = vm.Status;
            updateRequest.CreateDate  = vm.CreateDate;
            GetRoomRequest roomRequest = new GetRoomRequest();

            roomRequest.RoomId = vm.RoomRoomId;
            updateRequest.Room = _roomService.GetRoom(roomRequest).Room;

            ModifyUserResponse response = _userService.ModifyUser(updateRequest);

            return(Json(response));
        }
        protected override Task Poll()
        {
            if (!API.IsLoggedIn)
            {
                return(base.Poll());
            }

            if (room.RoomID.Value == null)
            {
                return(base.Poll());
            }

            var tcs = new TaskCompletionSource <bool>();

            lastPollRequest?.Cancel();

            var req = new GetRoomRequest(room.RoomID.Value.Value);

            req.Success += result =>
            {
                result.RemoveExpiredPlaylistItems();
                RoomManager.AddOrUpdateRoom(result);
                tcs.SetResult(true);
            };

            req.Failure += _ => tcs.SetResult(false);

            API.Queue(req);

            lastPollRequest = req;

            return(tcs.Task);
        }
        public JsonResult GetRoom(System.Int32 id)
        {
            DataTableViewModel data1;

            GetRoomRequest request = new GetRoomRequest();

            request.RoomId = id;
            DetailRoom_RoomDetailView data = _roomService.GetRoom(request).Room.ConvertToDetailRoom_RoomDetailView();

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
示例#5
0
        private void btnCheck_Click(object sender, RoutedEventArgs e)
        {
            /*var request = new RegisterUserRequest();
             * request.User = new User("skirlet", "qwerty12");
             *          string json = JsonConvert.SerializeObject(request);
             */

            var    request = new GetRoomRequest();
            string json    = JsonConvert.SerializeObject(request);


            client.SendMessage(json);
        }
示例#6
0
        public async Task <IActionResult> GetRoom()
        {
            try
            {
                var request  = new GetRoomRequest();
                var response = await _roomUseCase.Get(request);

                return(await ResponseAsync(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
示例#7
0
        public JsonResult GetDetail(System.Int32 id)
        {
            RoomDetailView vm      = new RoomDetailView();
            GetRoomRequest request = new GetRoomRequest();

            request.RoomId = id;
            GetRoomResponse response = _roomService.GetRoom(request);

            if (response.RoomFound)
            {
                vm = response.Room.ConvertToRoomDetailView();
            }

            return(Json(vm, JsonRequestBehavior.AllowGet));
        }
示例#8
0
        public JsonResult Update(RoomDetailView vm)
        {
            GetRoomRequest request = new GetRoomRequest();

            request.RoomId = vm.RoomId;

            ModifyRoomRequest updateRequest = _roomService.GetRoom(request).Room.ConvertToModifyRoomRequest();

            updateRequest.RoomId      = vm.RoomId;
            updateRequest.RoomName    = vm.RoomName;
            updateRequest.Address     = vm.Address;
            updateRequest.PhoneNumber = vm.PhoneNumber;

            ModifyRoomResponse response = _roomService.ModifyRoom(updateRequest);

            return(Json(response));
        }
        public JsonResult GetUserDataTable(System.Int32 id)
        {
            DataTableViewModel data;

            GetRoomRequest request = new GetRoomRequest();

            request.RoomId = id;
            RoomView room = _roomService.GetRoom(request).Room;

            data                 = new DataTableViewModel();
            data.draw            = "1";
            data.recordsTotal    = room.Users.ToList().Count.ToString();
            data.recordsFiltered = room.Users.ToList().Count.ToString();

            data.data = room.Users.ConvertToDetailRoomUserDetailViews().ToList <object>();

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
示例#10
0
 public GetRoomResponse getById(GetRoomRequest request)
 {
     try
     {
         var response = new GetRoomResponse();
         var bc       = new RoomComponent();
         response.Result = bc.Find(request.Room.Id);
         return(response);
     }
     catch (Exception ex)
     {
         var httpError = new HttpResponseMessage()
         {
             StatusCode   = (HttpStatusCode)422,
             ReasonPhrase = ex.Message
         };
         throw new HttpResponseException(httpError);
     }
 }
示例#11
0
        /// <summary>
        /// 获取房间明细
        /// </summary>

        public GetRoomResponse GetRoom([FromUri] GetRoomRequest request)
        {
            try
            {
                var result = Global.Bus.Send <GetRoomResponse>(Constants.HotelServiceAddress, request);
                if (!result.IsSuccess)
                {
                    throw new HttpResponseException(
                              Request.CreateErrorResponse(HttpStatusCode.InternalServerError,
                                                          "获取房间信息失败。"));
                }
                return(result.Data);
            }
            catch
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError,
                                                                            "获取房间信息失败。"));
            }
        }
示例#12
0
        public GetRoomResponse GetRoom(GetRoomRequest request)
        {
            GetRoomResponse response = new GetRoomResponse();

            Room room = _roomRepository
                        .FindBy(request.RoomId);

            if (room != null)
            {
                response.RoomFound = true;
                response.Room      = room.ConvertToRoomView();
            }
            else
            {
                response.RoomFound = false;
            }


            return(response);
        }
示例#13
0
        protected override Task Poll()
        {
            if (!API.IsLoggedIn)
            {
                return(base.Poll());
            }

            if (selectedRoom.Value?.RoomID.Value == null)
            {
                return(base.Poll());
            }

            var tcs = new TaskCompletionSource <bool>();

            pollReq?.Cancel();
            pollReq = new GetRoomRequest(selectedRoom.Value.RoomID.Value.Value);

            pollReq.Success += result =>
            {
                // existing rooms need to be ordered by their position because the received of NotifyRoomsReceives expects to be able to sort them based on this order.
                var rooms = new List <Room>(roomManager.Rooms.OrderBy(r => r.Position.Value));

                int index = rooms.FindIndex(r => r.RoomID.Value == result.RoomID.Value);

                if (index < 0)
                {
                    return;
                }

                rooms[index] = result;

                NotifyRoomsReceived(rooms);
                tcs.SetResult(true);
            };

            pollReq.Failure += _ => tcs.SetResult(false);

            API.Queue(pollReq);

            return(tcs.Task);
        }
        public JsonResult Create(UserDetailView vm)
        {
            CreateUserRequest request = new CreateUserRequest();

            request.UserName    = vm.UserName;
            request.Email       = vm.Email;
            request.Password    = vm.Password;
            request.FirstName   = vm.FirstName;
            request.LastName    = vm.LastName;
            request.PhoneNumber = vm.PhoneNumber;
            request.BirthDay    = vm.BirthDay;
            request.IpAddress   = vm.IpAddress;
            request.Status      = vm.Status;
            request.CreateDate  = vm.CreateDate;
            GetRoomRequest roomRequest = new GetRoomRequest();

            roomRequest.RoomId = vm.RoomRoomId;
            request.Room       = _roomService.GetRoom(roomRequest).Room;
            CreateUserResponse response = _userService.CreateUser(request);

            return(Json(response));
        }
示例#15
0
        protected override Task Poll()
        {
            if (!API.IsLoggedIn)
            {
                return(base.Poll());
            }

            if (selectedRoom.Value?.RoomID.Value == null)
            {
                return(base.Poll());
            }

            var tcs = new TaskCompletionSource <bool>();

            pollReq?.Cancel();
            pollReq = new GetRoomRequest(selectedRoom.Value.RoomID.Value.Value);

            pollReq.Success += result =>
            {
                var rooms = new List <Room>(roomManager.Rooms);

                int index = rooms.FindIndex(r => r.RoomID.Value == result.RoomID.Value);
                if (index < 0)
                {
                    return;
                }

                rooms[index] = result;

                NotifyRoomsReceived(rooms);
                tcs.SetResult(true);
            };

            pollReq.Failure += _ => tcs.SetResult(false);

            API.Queue(pollReq);

            return(tcs.Task);
        }
示例#16
0
        public override async Task <GetRoomReply> GetRoom(GetRoomRequest request, ServerCallContext context)
        {
            var room = await _queryRepository.GetById(request.Id);

            var reservation = new RepeatedField <RoomReservation>();

            reservation.AddRange(room.RoomReservations.Select(x => new RoomReservation()
            {
                Id        = x.Id.ToString(),
                StartDate = x.StartDate.ToTimestamp(),
                EndDate   = x.EndDate.ToTimestamp()
            }));
            var result = new GetRoomReply()
            {
                Id          = room.Id.ToString(),
                RoomType    = room.RoomType.ToString(),
                Name        = room.Name,
                Price       = room.Price,
                Reservation = { reservation }
            };

            return(result);
        }
示例#17
0
        /// <summary>
        /// Copies a room and opens it as a fresh (not-yet-created) one.
        /// </summary>
        /// <param name="room">The room to copy.</param>
        public void OpenCopy(Room room)
        {
            Debug.Assert(room.RoomID.Value != null);

            if (joiningRoomOperation != null)
            {
                return;
            }

            joiningRoomOperation = ongoingOperationTracker?.BeginOperation();

            var req = new GetRoomRequest(room.RoomID.Value.Value);

            req.Success += r =>
            {
                // ID must be unset as we use this as a marker for whether this is a client-side (not-yet-created) room or not.
                r.RoomID.Value = null;

                // Null out dates because end date is not supported client-side and the settings overlay will populate a duration.
                r.EndDate.Value  = null;
                r.Duration.Value = null;

                Open(r);

                joiningRoomOperation?.Dispose();
                joiningRoomOperation = null;
            };

            req.Failure += exception =>
            {
                Logger.Error(exception, "Couldn't create a copy of this room.");
                joiningRoomOperation?.Dispose();
                joiningRoomOperation = null;
            };

            api.Queue(req);
        }
示例#18
0
        public async Task <Response> Get(GetRoomRequest getRoomRequest)
        {
            var getRoom = await _mediator.Send(getRoomRequest, CancellationToken.None);

            return(getRoom);
        }
示例#19
0
 public override async Task <IEnumerable <Room> > Handle(GetRoomRequest request, CancellationToken cancellationToken)
 {
     return(roomsRepository.GetRooms());
 }