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> Logout(Request request, ServerCallContext context) { tripsGrpc.Account account = request.Account; IServerStreamWriter <Response> o = null; observers.Remove(account.Id, out o); Logger.InfoFormat("removing observer {0}", account.Id); return(Task.FromResult(ProtoUtils.CreateOkResponse())); }