public virtual void AddParticipant(string name, int age, Event event1, Event event2) { ParticipantDetailsDTO pd = new ParticipantDetailsDTO { Name = name, Age = age, Event1 = event1, Event2 = event2 }; SendRequest(new AddParticipantRequest { ParticipantDetails = pd }); Response response = ReadResponse(); if (response is ErrorResponse) { ErrorResponse err = (ErrorResponse)response; throw new Exception(err.ErrorMessage); } }
private Response HandleRequest(Request request) { if (request is LoginRequest) { Console.WriteLine("Login request"); LoginRequest logReq = (LoginRequest)request; User user = logReq.User; try { lock (Server) { Server.Login(user, this); } return(new OkResponse()); } catch (Exception e) { Connected = false; return(new ErrorResponse { ErrorMessage = e.Message }); } } if (request is LogoutRequest) { Console.WriteLine("Logout request"); LogoutRequest logReq = (LogoutRequest)request; User user = logReq.User; try { lock (Server) { Server.Logout(user, this); } Connected = false; return(new OkResponse()); } catch (Exception e) { return(new ErrorResponse { ErrorMessage = e.Message }); } } if (request is ChildrenEventsRequest) { Console.WriteLine("Children Events Request"); ChildrenEventsRequest ceReq = (ChildrenEventsRequest)request; EventAgeGroupDTO eag = ceReq.EventAgeGroup; try { ChildNoEventsDTO[] lst; lock (Server) { lst = Server.GetChildrenNoEvents(eag.Event, eag.AgeGroup).ToArray(); } return(new ChildrenEventsResponse { ChildNoEventsList = lst }); } catch (Exception e) { return(new ErrorResponse { ErrorMessage = e.Message }); } } if (request is AddParticipantRequest) { Console.WriteLine("Add Participant Request"); AddParticipantRequest apReq = (AddParticipantRequest)request; ParticipantDetailsDTO pd = apReq.ParticipantDetails; try { lock (Server) { Server.AddParticipant(pd.Name, pd.Age, pd.Event1, pd.Event2); } return(new OkResponse()); } catch (Exception e) { return(new ErrorResponse { ErrorMessage = e.Message }); } } if (request is EventCountRequest) { Console.WriteLine("Event Count Request"); try { EventCountDTO[] lst; lock (Server) { lst = Server.GetEventsNumber().ToArray(); } return(new EventCountResponse { EventCountList = lst }); } catch (Exception e) { return(new ErrorResponse { ErrorMessage = e.Message }); } } return(null); }