private ActionAnswer DoAction(ClientAction action) { ParentChild wParentChild; switch (action.Action) { case Action.AddFloor: return(mSimulator.AddFloor()); case Action.AddRoom: var wDataAddRoom = JsonConvert.DeserializeObject <ParentChildPosition>(action.Data); return(mSimulator.AddRoom(wDataAddRoom.ParentId, wDataAddRoom.ChildId, wDataAddRoom.X, wDataAddRoom.Y, wDataAddRoom.Rotation)); case Action.ChangePersonTeam: wParentChild = JsonConvert.DeserializeObject <ParentChild>(action.Data); return(mSimulator.ChangePersonTeam(wParentChild.ParentId, wParentChild.ChildId)); case Action.ChangePersonWorkplace: wParentChild = JsonConvert.DeserializeObject <ParentChild>(action.Data); return(mSimulator.ChangePersonWorkplace(wParentChild.ParentId, wParentChild.ChildId)); case Action.ChangePersonProject: wParentChild = JsonConvert.DeserializeObject <ParentChild>(action.Data); return(mSimulator.ChangePersonProject(wParentChild.ParentId, wParentChild.ChildId)); case Action.GetGame: return(mSimulator.GetGame()); case Action.GetFloor: return(mSimulator.GetFloor(int.Parse(action.Data))); case Action.GetFloors: return(mSimulator.GetFloors()); case Action.GetPerson: return(mSimulator.GetPerson(int.Parse(action.Data))); case Action.GetPersonsAvailable: return(mSimulator.GetPersonsAvailable()); case Action.GetPersonsFired: return(mSimulator.GetPersonsFired()); case Action.GetPersonsHired: return(mSimulator.GetPersonsHired()); case Action.GetPersonsLeft: return(mSimulator.GetPersonsLeft()); case Action.GetPersonsNotAvailable: return(mSimulator.GetPersonsNotAvailable()); case Action.GetRoomTemplates: return(mSimulator.GetRoomTemplates()); case Action.GetStats: return(mSimulator.GetStats()); case Action.FirePerson: return(mSimulator.FirePerson(int.Parse(action.Data))); case Action.HirePerson: return(mSimulator.HirePerson(int.Parse(action.Data))); case Action.RemovePersonTeam: return(mSimulator.RemovePersonTeam(int.Parse(action.Data))); case Action.RemovePersonWorkplace: return(mSimulator.RemovePersonWorkplace(int.Parse(action.Data))); case Action.RemovePersonProject: return(mSimulator.RemovePersonProject(int.Parse(action.Data))); case Action.RemoveRoom: return(mSimulator.RemoveRoom(int.Parse(action.Data))); case Action.SpeedMinus: return(mSimulator.SpeedMinus()); case Action.SpeedPlus: return(mSimulator.SpeedPlus()); case Action.GetProjects: return(mSimulator.GetProjects()); case Action.AcceptProject: return(mSimulator.AcceptProject(int.Parse(action.Data))); case Action.RejectProject: return(mSimulator.RejectProject(int.Parse(action.Data))); } return(null); }