Пример #1
0
        public void UpdateElder(Elder elder)
        {
            LoraPlatformEntities db = new LoraPlatformEntities();

            try
            {
                Elder data = db.Elder.Find(elder.IdCard);
                data.Name         = elder.Name;
                data.Birthday     = elder.Birthday;
                data.Sex          = elder.Sex;
                data.ContactPhone = elder.ContactPhone;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message.ToString());
            }
            finally
            {
                db.Dispose();
            }
        }
Пример #2
0
        private void fillContainers()
        {
            int homeCount       = 10000;
            int hospitalCount   = 4;
            int mallCount       = 5;
            int officeCount     = 500;
            int univercityCount = 1;
            int schoolCount     = 23;
            int nurseryCount    = 2;
            //int homeCount = 1;
            //int hospitalCount = 1;
            //int mallCount = 1;
            //int officeCount = 1;
            //int univercityCount = 1;
            //int schoolCount = 1;
            //int nurseryCount = 1;

            List <Message> messagesToSend = new List <Message>();
            int            currentId      = 0;

            // Messages for home containers creation
            List <AddContainerMessage> homes = new List <AddContainerMessage>();

            for (int i = 0; i < homeCount; i++)
            {
                homes.Add(new AddContainerMessage(MessageTransportSystem.Instance.Id, Enums.ContainerType.Home, currentId, 50, 12));
                Containers.Instance.Add(currentId, new Home(currentId, 50, 12));
                currentId++;
            }
            // Everyone at home at the beginning
            List <Person> p = new List <Person>();

            p.AddRange(Adolescent.AdolescentList(Enums.HealthState.Infectious, 4, "LocationProbabilities"));
            p.AddRange(Adolescent.AdolescentList(Enums.HealthState.Susceptible, 4534, "LocationProbabilities"));
            p.AddRange(Adult.AdultList(Enums.HealthState.Infectious, 4, "LocationProbabilities"));
            p.AddRange(Adult.AdultList(Enums.HealthState.Susceptible, 14812, "LocationProbabilities"));
            p.AddRange(Child.ChildList(Enums.HealthState.Infectious, 4, "LocationProbabilities"));
            p.AddRange(Child.ChildList(Enums.HealthState.Susceptible, 1511, "LocationProbabilities"));
            p.AddRange(Elder.ElderList(Enums.HealthState.Infectious, 4, "LocationProbabilities"));
            p.AddRange(Elder.ElderList(Enums.HealthState.Susceptible, 5441, "LocationProbabilities"));
            p.AddRange(Youngster.YoungsterList(Enums.HealthState.Infectious, 4, "LocationProbabilities"));
            p.AddRange(Youngster.YoungsterList(Enums.HealthState.Susceptible, 3930, "LocationProbabilities"));
            for (int i = 0; i < p.Count; i++)
            {
                int    homeNum = i % homeCount;
                Person a       = p[i];
                homes[homeNum].agentData.Add(new AddAgentMessage(MessageTransportSystem.Instance.Id, a.GetType().Name, a.GetId(), a.GetHealthState(), 1));
                this.agentLocations[a.GetId()] = Containers.Instance[homes[homeNum].containerId];
            }
            messagesToSend.AddRange(homes);

            this.totalAgents = p.Count;

            // Messages for hospital containers creation
            List <AddContainerMessage> hospitals = new List <AddContainerMessage>();

            for (int i = 0; i < hospitalCount; i++)
            {
                hospitals.Add(new AddContainerMessage(MessageTransportSystem.Instance.Id, Enums.ContainerType.Hospital, currentId, 237, 19));
                Containers.Instance.Add(currentId, new Hospital(currentId, 237, 19));
                currentId++;
            }
            messagesToSend.AddRange(hospitals);

            // Messages for mall containers creation
            List <AddContainerMessage> malls = new List <AddContainerMessage>();

            for (int i = 0; i < mallCount; i++)
            {
                malls.Add(new AddContainerMessage(MessageTransportSystem.Instance.Id, Enums.ContainerType.Mall, currentId, 578, 90));
                Containers.Instance.Add(currentId, new Mall(currentId, 578, 90));
                currentId++;
            }
            messagesToSend.AddRange(malls);

            // Messages for office containers creation
            List <AddContainerMessage> offices = new List <AddContainerMessage>();

            for (int i = 0; i < officeCount; i++)
            {
                offices.Add(new AddContainerMessage(MessageTransportSystem.Instance.Id, Enums.ContainerType.Office, currentId, 236, 20));
                Containers.Instance.Add(currentId, new Office(currentId, 236, 20));
                currentId++;
            }
            messagesToSend.AddRange(offices);

            // Messages for univercity containers creation
            List <AddContainerMessage> univercities = new List <AddContainerMessage>();

            for (int i = 0; i < univercityCount; i++)
            {
                univercities.Add(new AddContainerMessage(MessageTransportSystem.Instance.Id, Enums.ContainerType.University, currentId, 300, 25));
                Containers.Instance.Add(currentId, new University(currentId, 300, 25));
                currentId++;
            }
            messagesToSend.AddRange(univercities);

            // Messages for school containers creation
            List <AddContainerMessage> schools = new List <AddContainerMessage>();

            for (int i = 0; i < schoolCount; i++)
            {
                schools.Add(new AddContainerMessage(MessageTransportSystem.Instance.Id, Enums.ContainerType.School, currentId, 237, 19));
                Containers.Instance.Add(currentId, new School(currentId, 237, 19));
                currentId++;
            }
            messagesToSend.AddRange(schools);

            // Messages for nursery containers creation
            List <AddContainerMessage> nurseries = new List <AddContainerMessage>();

            for (int i = 0; i < nurseryCount; i++)
            {
                nurseries.Add(new AddContainerMessage(MessageTransportSystem.Instance.Id, Enums.ContainerType.Nursery, currentId, 60, 23));
                Containers.Instance.Add(currentId, new Nursery(currentId, 60, 23));
                currentId++;
            }
            messagesToSend.AddRange(nurseries);

            // Now sending all messages equally spread to all CS workers and saving what container on what worker
            this.containers2workers.Clear();
            Dictionary <Message, Guid> res = MessageTransportSystem.Instance.SendSpread(messagesToSend);

            foreach (var r in res)
            {
                AddContainerMessage message = (AddContainerMessage)r.Key;
                Guid workerId = r.Value;
                this.containers2workers[message.containerId] = workerId;
            }
        }
Пример #3
0
        public static Agent CreateAgent(AgentClass type_of_agent)
        {
            int[] agent_data = AgentHelper.pickAgent(type_of_agent);

            // If Kid
            if (type_of_agent == AgentClass.Kid)
            {
                // Instantiate prefab
                prefab    = Resources.Load(AgentUtils.getCitizenPath(type_of_agent)) as GameObject;
                agent_obj = GameObject.Instantiate(prefab) as GameObject;

                // Add component to new agent
                new_agent = Kid.CreateComponent(agent_obj,
                                                (CitizenGender)agent_data[0],
                                                (KidVariation)agent_data[1],
                                                (CitizenTraits)agent_data[2],
                                                (KidEducation)agent_data[3]);
            }

            // If Adult
            else if (type_of_agent == AgentClass.Adult)
            {
                // Instantiate prefab
                prefab    = Resources.Load(AgentUtils.getCitizenPath(type_of_agent)) as GameObject;
                agent_obj = GameObject.Instantiate(prefab) as GameObject;

                // Add component to new agent
                new_agent = Adult.CreateComponent(agent_obj,
                                                  (CitizenGender)agent_data[0],
                                                  (AdultVariation)agent_data[1],
                                                  (CitizenTraits)agent_data[2],
                                                  (AdultEducation)agent_data[3]);
            }

            // If Elder
            else if (type_of_agent == AgentClass.Elder)
            {
                // Instantiate prefab
                prefab    = Resources.Load(AgentUtils.getCitizenPath(type_of_agent)) as GameObject;
                agent_obj = GameObject.Instantiate(prefab) as GameObject;

                // Add component to new agent
                new_agent = Elder.CreateComponent(agent_obj,
                                                  (CitizenGender)agent_data[0],
                                                  (ElderVariation)agent_data[1],
                                                  (CitizenTraits)agent_data[2],
                                                  (ElderEducation)agent_data[3]);
            }

            // If Car
            else if (type_of_agent == AgentClass.Car)
            {
                // Instantiate prefab
                prefab    = Resources.Load(AgentUtils.getCarPath(agent_data[0])) as GameObject;
                agent_obj = GameObject.Instantiate(prefab) as GameObject;

                // Add component to new agent
                new_agent = Car.CreateComponent(agent_obj, (CarVariation)agent_data[1]);
            }

            // If Airplane
            else if (type_of_agent == AgentClass.Airplane)
            {
                // Instantiate prefab
                prefab    = Resources.Load(AgentUtils.getAirplanePath(agent_data[0])) as GameObject;
                agent_obj = GameObject.Instantiate(prefab) as GameObject;

                // Add component to new agent
                new_agent = Airplane.CreateComponent(agent_obj, (AirplaneVariation)agent_data[1]);
            }

            // If Boat
            else if (type_of_agent == AgentClass.Boat)
            {
                // Instantiate prefab
                prefab    = Resources.Load(AgentUtils.getBoatPath(agent_data[0])) as GameObject;
                agent_obj = GameObject.Instantiate(prefab) as GameObject;

                // Add component to new agent
                new_agent = Boat.CreateComponent(agent_obj, (BoatVariation)agent_data[1]);
            }

            return(new_agent);
        }
Пример #4
0
        private void onAddAgentMessage(Message message, ContainersCore container = null)
        {
            AddAgentMessage aaMessage = (AddAgentMessage)message;
            List <IAgent>   ags       = new List <IAgent>();

            GlobalAgentDescriptorTable.GetNewId = aaMessage.agentId;
            switch (aaMessage.agentType)
            {
            case "Adolescent":
                ags.AddRange(Adolescent.AdolescentList(aaMessage.state, aaMessage.count, "LocationProbabilities"));
                break;

            case "Adult":
                ags.AddRange(Adult.AdultList(aaMessage.state, aaMessage.count, "LocationProbabilities"));
                break;

            case "Child":
                ags.AddRange(Child.ChildList(aaMessage.state, aaMessage.count, "LocationProbabilities"));
                break;

            case "Elder":
                ags.AddRange(Elder.ElderList(aaMessage.state, aaMessage.count, "LocationProbabilities"));
                break;

            case "Youngster":
                ags.AddRange(Youngster.YoungsterList(aaMessage.state, aaMessage.count, "LocationProbabilities"));
                break;
            }
            foreach (IAgent a in ags)
            {
                if (container == null)
                {
                    int containerId = aaMessage.containerId;
                    if (containerId > 0)
                    {
                        if (Containers.Instance.ContainsKey(containerId))
                        {
                            var foundContainer = Containers.Instance[containerId];

                            AbstractPerson ap = (AbstractPerson)a;
                            ap.currentContainerId   = containerId;
                            ap.currentContainerType = foundContainer.ContainerType;
                        }
                        else
                        {
                            Trace.TraceWarning("Agent was added to moved to another node container. Moving him again");
                            CoreAMS.MessageTransportSystem.MessageTransfer.Instance.AddToGoto((AbstractPerson)a, Enums.ContainerType.Home);
                        }
                    }
                }
                else
                {
                    AbstractPerson ap = (AbstractPerson)a;
                    ap.currentContainerId   = container.Id;
                    ap.currentContainerType = container.ContainerType;
                }
            }
            GlobalAgentDescriptorTable.AddAgents(ags);
            //foreach (var ag in ags) {
            //    Trace.TraceInformation("Added agent with id {0} (check: {1})", ag.GetId(), aaMessage.agentId);
            //}
        }
Пример #5
0
        static void Main(string[] args)
        {
            var printToConsole = new PrinterConsole();
            var printToFile    = new PrinterFile();

            var femaleChild = new Child
            {
                Category           = "Child",
                Sex                = "Female",
                LowestPossibleAge  = 0,
                HighestPossibleAge = 12
            };

            printToConsole.AddElement(femaleChild.Show());
            printToFile.AddElement(femaleChild.Show());

            var femaleTeenager = new Teenager
            {
                Category           = "Teenager",
                Sex                = "Female",
                LowestPossibleAge  = 13,
                HighestPossibleAge = 19
            };

            printToConsole.AddElement(femaleTeenager.Show());
            printToFile.AddElement(femaleTeenager.Show());

            var femaleAdult = new Adult
            {
                Category           = "Adult",
                Sex                = "Female",
                LowestPossibleAge  = 20,
                HighestPossibleAge = 64
            };

            printToConsole.AddElement(femaleAdult.Show());
            printToFile.AddElement(femaleAdult.Show());

            var femaleElder = new Elder
            {
                Category           = "Elder",
                Sex                = "Female",
                LowestPossibleAge  = 65,
                HighestPossibleAge = 110
            };

            printToConsole.AddElement(femaleElder.Show());
            printToFile.AddElement(femaleElder.Show());

            var maleChild = new Child
            {
                Category           = "Child",
                Sex                = "Male",
                LowestPossibleAge  = 0,
                HighestPossibleAge = 12
            };

            printToConsole.AddElement(maleChild.Show());
            printToFile.AddElement(maleChild.Show());

            var maleTeenager = new Teenager
            {
                Category           = "Teenager",
                Sex                = "Male",
                LowestPossibleAge  = 13,
                HighestPossibleAge = 19
            };

            printToConsole.AddElement(maleTeenager.Show());
            printToFile.AddElement(maleTeenager.Show());

            var maleAdult = new Adult
            {
                Category           = "Adult",
                Sex                = "Male",
                LowestPossibleAge  = 20,
                HighestPossibleAge = 64
            };

            printToConsole.AddElement(maleAdult.Show());
            printToFile.AddElement(maleAdult.Show());

            var maleElder = new Elder
            {
                Category           = "Elder",
                Sex                = "Male",
                LowestPossibleAge  = 65,
                HighestPossibleAge = 110
            };

            printToConsole.AddElement(maleElder.Show());
            printToFile.AddElement(maleElder.Show());

            printToConsole.Print();
            printToFile.Print();
        }