private void HandleUpdate(UpdateResponse update) { if (update is NewChildResponse) { NewChildResponse response = (NewChildResponse)update; // TODO observer code for this client.ChildSaved(DtoUtils.GetFromDto(response.Child)); } }
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)); }
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); }
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); }
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); }