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)); }
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)); }
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)); }
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)); }