Exemplo n.º 1
0
        /// <summary>
        /// Prepare data for uploading to DB
        /// </summary>
        public void UploadData(string[] data)
        {
            var kindergardensData = ConvertData(data);

            foreach (var kg in kindergardensData.Kindergardens)
            {
                kindergardensData.UniqueKindergardens.Add(new Kindergarden()
                {
                    Name = kg.Name,
                });
            }
            var kindergardens = repository.SaveKindergarden(kindergardensData.UniqueKindergardens);

            for (int i = 0; i < kindergardensData.GroupNames.Count; i++)
            {
                var groupName      = kindergardensData.GroupNames[i].Name;
                var kindergardenId = kindergardens.First(kg => kg.Name == kindergardensData.Kindergardens[i].Name).Id;

                if (kindergardensData.UniqueGroups.FirstOrDefault(x => x.Name == groupName &&
                                                                  x.KindergardenId == kindergardenId) == null)
                {
                    kindergardensData.UniqueGroups.Add(new Group()
                    {
                        Name           = groupName,
                        KindergardenId = kindergardenId,
                    });
                }
            }

            repository.SaveGroup(kindergardensData.UniqueGroups);

            for (int j = 0; j < kindergardensData.Children.Count; j++)
            {
                if (kindergardensData.UniqueChildren.FirstOrDefault(x => x.Id == kindergardensData.Children[j].Id) == null)
                {
                    var groupName      = kindergardensData.GroupNames[j].Name;
                    var kindergardenId = kindergardens.First(kg => kg.Name == kindergardensData.Kindergardens[j].Name).Id;
                    var groupId        = kindergardensData.UniqueGroups.First(x => x.Name == groupName &&
                                                                              x.KindergardenId == kindergardenId).Id;
                    var childId = kindergardensData.Children[j].Id;

                    kindergardensData.UniqueChildren.Add(new Child()
                    {
                        Id = childId,
                        RegisteredInCity = kindergardensData.Children[j].RegisteredInCity,
                    });

                    kindergardensData.GroupChild.Add(new GroupChild()
                    {
                        ChildId = childId,
                        GroupId = groupId,
                        Current = true,
                        Started = DateTime.Today,
                    });

                    int sick         = kindergardensData.SickList[j];
                    int otherReasons = kindergardensData.OtherReasonList[j];
                    int noReasons    = kindergardensData.NoReasonList[j];

                    kindergardensData.Attendance.Add(new Attendance()
                    {
                        ChildId      = childId,
                        Date         = DateTime.Today,
                        NoReasons    = noReasons,
                        OtherReasons = otherReasons,
                        Sick         = sick,
                    });
                }
            }

            repository.AttachChild(kindergardensData.UniqueChildren);
            repository.AttachGroupChild(kindergardensData.GroupChild);
            repository.AttachAttendance(kindergardensData.Attendance);

            context.SaveChanges();
        }
        public void Initialize()
        {
            context = new KindergardenContext(options);

            context.Kindergarden.Add(new Kindergarden()
            {
                Id     = 1,
                Name   = "kindergarden1",
                Groups = new List <Group>()
                {
                    new Group()
                    {
                        Id                 = 1,
                        Name               = "group1",
                        KindergardenId     = 1,
                        GroupChildRelation = new List <GroupChild>()
                        {
                            new GroupChild()
                            {
                                ChildId = 1,
                                GroupId = 1,
                                Current = true,
                                //Id = 1,
                                Child = new Child()
                                {
                                    Id = 1,
                                    RegisteredInCity = true,
                                    Attendance       = new List <Attendance>()
                                    {
                                        new Attendance()
                                        {
                                            ChildId      = 1,
                                            NoReasons    = 0,
                                            Sick         = 2,
                                            OtherReasons = 0,
                                        }
                                    }
                                }
                            }
                        }
                    },
                    new Group()
                    {
                        Id                 = 2,
                        Name               = "group2",
                        KindergardenId     = 1,
                        GroupChildRelation = new List <GroupChild>()
                        {
                            new GroupChild()
                            {
                                ChildId = 2,
                                GroupId = 2,
                                Current = true,
                                //Id = 1,
                                Child = new Child()
                                {
                                    Id = 2,
                                    RegisteredInCity = true,
                                    Attendance       = new List <Attendance>()
                                    {
                                        new Attendance()
                                        {
                                            ChildId      = 2,
                                            NoReasons    = 0,
                                            Sick         = 0,
                                            OtherReasons = 0,
                                        }
                                    }
                                }
                            },
                            new GroupChild()
                            {
                                ChildId = 3,
                                GroupId = 2,
                                Current = true,
                                //Id = 1,
                                Child = new Child()
                                {
                                    Id = 3,
                                    RegisteredInCity = true,
                                    Attendance       = new List <Attendance>()
                                    {
                                        new Attendance()
                                        {
                                            ChildId      = 3,
                                            NoReasons    = 1,
                                            Sick         = 1,
                                            OtherReasons = 0,
                                        }
                                    }
                                }
                            },
                        }
                    },
                }
            });
            context.Kindergarden.Add(new Kindergarden()
            {
                Id     = 2,
                Name   = "kindergarden2",
                Groups = new List <Group>()
                {
                    new Group()
                    {
                        Id                 = 3,
                        Name               = "group3",
                        KindergardenId     = 2,
                        GroupChildRelation = new List <GroupChild>()
                        {
                            new GroupChild()
                            {
                                ChildId = 4,
                                GroupId = 3,
                                Current = true,
                                //Id = 1,
                                Child = new Child()
                                {
                                    Id = 4,
                                    RegisteredInCity = true,
                                    Attendance       = new List <Attendance>()
                                    {
                                        new Attendance()
                                        {
                                            ChildId      = 4,
                                            NoReasons    = 0,
                                            Sick         = 5,
                                            OtherReasons = 0,
                                        }
                                    }
                                }
                            }
                        }
                    },
                    new Group()
                    {
                        Id                 = 4,
                        Name               = "group1",
                        KindergardenId     = 2,
                        GroupChildRelation = new List <GroupChild>()
                        {
                            new GroupChild()
                            {
                                ChildId = 5,
                                GroupId = 4,
                                Current = true,
                                //Id = 1,
                                Child = new Child()
                                {
                                    Id = 5,
                                    RegisteredInCity = true,
                                    Attendance       = new List <Attendance>()
                                    {
                                        new Attendance()
                                        {
                                            ChildId      = 5,
                                            NoReasons    = 0,
                                            Sick         = 10,
                                            OtherReasons = 0,
                                        }
                                    }
                                }
                            }
                        }
                    },
                }
            });

            context.SaveChanges();

            kindergardenManager = new KindergardenManager(context);
        }