예제 #1
0
 public void AddParticipant(string name, int age, Event event1, Event event2)
 {
     Server.AddParticipant(name, age, event1, event2);
 }
예제 #2
0
        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);
        }
예제 #3
0
        private Response HandleRequest(Request request)
        {
            if (request.Type is Request.Types.Type.Login)
            {
                Console.WriteLine("Login request");
                Domain.User user = ProtoUtils.GetUser(request);
                try
                {
                    lock (Server)
                    {
                        Server.Login(user, this);
                    }
                    return(ProtoUtils.OkResponse());
                }
                catch (Exception e)
                {
                    Connected = false;
                    return(ProtoUtils.ErrorResponse(e.Message));
                }
            }

            if (request.Type is Request.Types.Type.Logout)
            {
                Console.WriteLine("Logout request");
                Domain.User user = ProtoUtils.GetUser(request);
                try
                {
                    lock (Server)
                    {
                        Server.Logout(user, this);
                    }
                    Connected = false;
                    return(ProtoUtils.OkResponse());
                }
                catch (Exception e)
                {
                    return(ProtoUtils.ErrorResponse(e.Message));
                }
            }

            if (request.Type is Request.Types.Type.ChildrenEvents)
            {
                Console.WriteLine("Children Events Request");
                Domain.DTO.EventAgeGroupDTO eag = ProtoUtils.GetEventAgeGroupDTO(request);
                try
                {
                    Domain.DTO.ChildNoEventsDTO[] lst;
                    lock (Server)
                    {
                        lst = Server.GetChildrenNoEvents(eag.Event, eag.AgeGroup).ToArray();
                    }
                    return(ProtoUtils.GetChildrenNoEventsResponse(lst));
                }
                catch (Exception e)
                {
                    return(ProtoUtils.ErrorResponse(e.Message));
                }
            }

            if (request.Type is Request.Types.Type.AddParticipant)
            {
                Console.WriteLine("Add Participant Request");
                Domain.DTO.ParticipantDetailsDTO pd = ProtoUtils.GetParticipantDetailsDTO(request);
                try
                {
                    lock (Server)
                    {
                        Server.AddParticipant(pd.Name, pd.Age, pd.Event1, pd.Event2);
                    }
                    return(ProtoUtils.OkResponse());
                }
                catch (Exception e)
                {
                    return(ProtoUtils.ErrorResponse(e.Message));
                }
            }

            if (request.Type is Request.Types.Type.EventCount)
            {
                Console.WriteLine("Event Count Request");
                try
                {
                    Domain.DTO.EventCountDTO[] lst;
                    lock (Server)
                    {
                        lst = Server.GetEventsNumber().ToArray();
                    }
                    return(ProtoUtils.GetEventsNumberResponse(lst, false));
                }
                catch (Exception e)
                {
                    return(ProtoUtils.ErrorResponse(e.Message));
                }
            }
            return(null);
        }