public override Task <Protos.GetAvailableRoomsResponse> GetAvailableRooms(Protos.GetAvailableRoomsRequest request, ServerCallContext context) { var values = _serviceContract.GetAvailableRooms(request.CheckInDate.ToDateTimeOffset(), request.CheckOutDate.ToDateTimeOffset()); var response = new Protos.GetAvailableRoomsResponse(); foreach (var value in values) { response.Values.Add(value); } return(Task.FromResult(response)); }
public override Task <Protos.GetAvailableRoomsResponse> GetAvailableRooms(Protos.GetAvailableRoomsRequest request, ServerCallContext context) { try { var returnValue = _serviceContract.GetAvailableRooms(request.CheckInDate.ToDateTimeOffset(), request.CheckOutDate.ToDateTimeOffset()); var response = new Protos.GetAvailableRoomsResponse(); response.Values.AddRange(returnValue.Select(x => (Protos.Room)x)); return(Task.FromResult(response)); } catch (Exception ex) { _logger.LogError(ex, "Error invoking GetAvailableRooms"); throw new RpcException(new Status(StatusCode.Internal, ex.Message)); } }