예제 #1
0
        public BookingMutation()
        {
            Field <NonNullGraphType <BookingType> >(
                "CheckIn",
                "Cập nhật thời gian checkin của phòng",
                _IdArgument(),
                _CheckPermission_TaskObject(
                    p => p.PermissionManageRentingRoom,
                    context =>
            {
                var employee = AuthenticationHelper.GetEmployee(context);
                return(BookingBusiness.CheckIn(employee, _GetId <int>(context)));
            }
                    )
                );

            Field <NonNullGraphType <BookingType> >(
                "RequestCheckOut",
                "Yêu cầu kiểm tra khi trả phòng",
                _IdArgument(),
                _CheckPermission_TaskObject(
                    p => p.PermissionManageRentingRoom,
                    context =>
            {
                var employee = AuthenticationHelper.GetEmployee(context);
                return(BookingBusiness.RequestCheckOut(employee, _GetId <int>(context)));
            }
                    )
                );

            Field <NonNullGraphType <BookingType> >(
                "CheckOut",
                "Thực hiện xác nhận trả phòng",
                _IdArgument(),
                _CheckPermission_TaskObject(
                    p => p.PermissionManageRentingRoom,
                    context =>
            {
                var employee = AuthenticationHelper.GetEmployee(context);
                return(BookingBusiness.CheckOut(employee, _GetId <int>(context)));
            }
                    )
                );

            Field <NonNullGraphType <StringGraphType> >(
                "Cancel",
                "Hủy đặt phòng",
                _IdArgument(),
                _CheckPermission_String(
                    p => p.PermissionManageRentingRoom,
                    context =>
            {
                BookingBusiness.Cancel(_GetId <int>(context));
                return("Hủy thành công");
            }
                    )
                );

            Field <NonNullGraphType <BookingType> >(
                "AddBookingToBill",
                "Thêm phòng khách đoàn",
                new QueryArguments(
                    new QueryArgument <NonNullGraphType <BillIdInput> > {
                Name = "bill"
            },
                    new QueryArgument <NonNullGraphType <BookingCreateInput> > {
                Name = "booking"
            }
                    ),
                _CheckPermission_TaskObject(
                    p => p.PermissionManageRentingRoom,
                    context =>
            {
                var employee = AuthenticationHelper.GetEmployee(context);
                var bill     = context.GetArgument <Bill>("bill");
                var booking  = context.GetArgument <Booking>("booking");

                return(BookingBusiness.Add(employee, bill, booking));
            }
                    )
                );
        }