Exemplo n.º 1
0
        public override Task <Response> AddBooking(Request request, ServerCallContext context)
        {
            Logger.Info("add booking");
            Response response = null;

            try
            {
                tripsGrpc.Booking booking = request.Booking;
                Trip    trip         = ProtoUtils.ConvertToTrip(booking.Trip);
                Account account      = ProtoUtils.ConvertToAccount(booking.Account);
                Booking savedBooking = tripServices.AddBooking(booking.Client, booking.Phone, booking.NumTickets, trip, account);
                response = ProtoUtils.CreateOkResponse();

                Logger.Info("notifying observers");
                Response responseBookingAdded = new Response()
                {
                    Booking = new tripsGrpc.Booking()
                    {
                        Id         = savedBooking.Id,
                        Account    = booking.Account,
                        Trip       = booking.Trip,
                        Client     = savedBooking.ClientName,
                        Phone      = savedBooking.PhoneNumber,
                        NumTickets = savedBooking.NumTickets
                    }
                };
                buffer.Post(responseBookingAdded);
            }
            catch (Exception e)
            {
                response = ProtoUtils.CreateErrorResponse(e);
            }
            Logger.InfoFormat("add booking response {0}", response);
            return(Task.FromResult(response));
        }
Exemplo n.º 2
0
        public override Task <Response> GetAllTrips(Request request, ServerCallContext context)
        {
            Logger.Info("getting all trips");
            Response response = null;

            try
            {
                List <Trip> t = tripServices.GetAllTrips();
                response = ProtoUtils.CreateGetTripsResponse(t);
            }
            catch (Exception e)
            {
                response = ProtoUtils.CreateErrorResponse(e);
            }
            Logger.InfoFormat("sending get all trips response {0}", response.Type);
            return(Task.FromResult(response));
        }
Exemplo n.º 3
0
        public override Task <Response> GetTripsByLandmarkDepartureHour(Request request, ServerCallContext context)
        {
            Logger.Info("searching trips");
            Response response = null;

            try
            {
                tripsGrpc.Trip t        = request.Trip;
                List <Trip>    tripList = tripServices.GetTripsByLandmarkDepartureHour(t.Landmark, t.Start, t.End);
                response = ProtoUtils.CreateGetTripsResponse(tripList);
            }
            catch (Exception e)
            {
                response = ProtoUtils.CreateErrorResponse(e);
            }
            Logger.InfoFormat("sending search trips response {0}", response.Type);
            return(Task.FromResult(response));
        }
Exemplo n.º 4
0
        public override Task <Response> GetAccountByNamePassword(Request request, ServerCallContext context)
        {
            Account a = ProtoUtils.GetAccount(request);

            Logger.InfoFormat("getting account by name {0} and password {1}", a.Name, a.Password);
            Response response = null;

            try
            {
                Account account = tripServices.GetAccountByNamePassword(a.Name, a.Password);
                response = ProtoUtils.CreateLoginResponse(account);
            }
            catch (Exception e)
            {
                response = ProtoUtils.CreateErrorResponse(e);
            }
            Logger.InfoFormat("sending response {0}", response);
            return(Task.FromResult(response));
        }