Пример #1
0
 private void HandleUpdate(UpdateResponse update)
 {
     if (update is NewChildResponse)
     {
         NewChildResponse response = (NewChildResponse)update;
         // TODO observer code for this
         client.ChildSaved(DtoUtils.GetFromDto(response.Child));
     }
 }
Пример #2
0
        public Child SaveChild(Child c)
        {
            ChildDto childDto = DtoUtils.GetDto(c);

            SendRequest(new SaveChildRequest(childDto));
            Response response = ReadResponse();

            if (response is ErrorResponse)
            {
                ErrorResponse err = (ErrorResponse)response;
                throw new Error(err.Message);
            }

            SavedChildResponse savedChild = (SavedChildResponse)response;

            return(DtoUtils.GetFromDto(savedChild.Child));
        }
Пример #3
0
        public List <Child> GetFilteredChildren(int idEvent, int ageMin, int ageMax)
        {
            SendRequest(new FilterChildrenRequest(Parser.ToString(idEvent, ageMin, ageMax)));
            Response response = ReadResponse();

            if (response is ErrorResponse)
            {
                ErrorResponse e = (ErrorResponse)response;
                throw new Error(e.Message);
            }

            Child[]      listOfChildren = DtoUtils.GetFromDto(((ListOfChildrenResponse)response).Children);
            List <Child> result         = new List <Child>();

            for (int i = 0; i < listOfChildren.Length; i++)
            {
                result.Add(listOfChildren[i]);
            }
            return(result);
        }
Пример #4
0
        public List <Event> GetAllEvents()
        {
            SendRequest(new GetEventsRequest());
            Response r = ReadResponse();

            if (r is ErrorResponse)
            {
                ErrorResponse e = (ErrorResponse)r;
                throw new Error(e.Message);
            }
            Event[] events = DtoUtils.GetFromDto(((ListOfEventsResponse)r).Events);

            List <Event> result = new List <Event>();

            for (int i = 0; i < events.Length; i++)
            {
                result.Add(events[i]);
            }

            return(result);
        }
Пример #5
0
        private Response HandleRequest(Request request)
        {
            Response response = null;

            if (request is LoginRequest)
            {
                LoginRequest loginRequest = (LoginRequest)request;
                AdminDto     dto          = loginRequest.User;
                logger.Debug("Processing login request by user " + dto.ID);
                Admin user = DtoUtils.GetFromDto(dto);
                try
                {
                    lock (server)
                    {
                        server.Login(user.ID, user.Password, this);
                    }
                    return(new OkResponse());
                }
                catch (Error e)
                {
                    logger.Debug("User " + dto.ID + " already logged in. Disconnecting...");
                    connected = false;
                    return(new ErrorResponse(e.Message));
                }
            }

            if (request is LogoutRequest)
            {
                LogoutRequest logoutRequest = (LogoutRequest)request;
                AdminDto      dto           = logoutRequest.User;
                logger.Debug("Processing logout request by user " + dto.ID);
                Admin user = DtoUtils.GetFromDto(dto);
                try
                {
                    lock (server)
                    {
                        server.Logout(user.ID, this);
                    }
                    connected = false;
                    return(new OkResponse());
                }
                catch (Error e)
                {
                    return(new ErrorResponse(e.Message));
                }
            }

            if (request is SaveChildRequest)
            {
                SaveChildRequest saveChildRequest = (SaveChildRequest)request;
                ChildDto         dto = saveChildRequest.Child;
                logger.Debug("Processing save request for child ID " + dto.ID);
                Child c = DtoUtils.GetFromDto(dto);
                try
                {
                    Child result;
                    lock (server)
                    {
                        result = server.SaveChild(c);
                    }
                    if (result != null)
                    {
                        return(new SavedChildResponse(DtoUtils.GetDto(result)));
                    }
                    else
                    {
                        return(new ErrorResponse("Child " + c.ID + " could not be saved"));
                    }
                }
                catch (Error e)
                {
                    return(new ErrorResponse(e.Message));
                }
            }

            if (request is FilterChildrenRequest)
            {
                FilterChildrenRequest filterChildrenRequest = (FilterChildrenRequest)request;
                string      data       = filterChildrenRequest.Data;
                IList <int> parameters = Parser.ToList(data);
                logger.Debug("Processing filter children request for event ID " + parameters[0]);
                try
                {
                    Child[] result;
                    lock (server)
                    {
                        result = server.GetFilteredChildren(parameters[0], parameters[1], parameters[2]).ToArray();
                    }
                    return(new ListOfChildrenResponse(DtoUtils.GetDto(result)));
                }
                catch (Error e)
                {
                    return(new ErrorResponse(e.Message));
                }
            }

            if (request is GetEventsRequest)
            {
                GetEventsRequest getEventsRequest = (GetEventsRequest)request;
                logger.Debug("Processing get events request");
                try
                {
                    Event[] events;
                    lock (server)
                    {
                        events = server.GetAllEvents().ToArray();
                    }
                    return(new ListOfEventsResponse(DtoUtils.GetDto(events)));
                }
                catch (Error e)
                {
                    return(new ErrorResponse(e.Message));
                }
            }

            if (request is CountChildrenRequest)
            {
                CountChildrenRequest countChildrenRequest = (CountChildrenRequest)request;
                logger.Debug("Processing count children request for event ID " + countChildrenRequest.EventID);
                try
                {
                    int count;
                    lock (server)
                    {
                        count = server.CountChildren(countChildrenRequest.EventID);
                    }
                    return(new CounterOfChildrenResponse(count));
                }
                catch (Error e)
                {
                    return(new ErrorResponse(e.Message));
                }
            }
            return(response);
        }