Ejemplo n.º 1
0
        private List <WActivity> GenerateActivitiesForTask(WActivity latestActivity, WTask task, DateTime date)
        {
            var result = new List <WActivity>();

            DateTime nextActivityDate = task.StartDate.Date;

            if (latestActivity != null)
            {
                var nextFromActivity = latestActivity.Date.Date.AddDays(task.Frequency);
                if (DateTime.Compare(nextFromActivity, nextActivityDate) > 0)
                {
                    nextActivityDate = nextFromActivity;
                }
            }

            while (DateTime.Compare(nextActivityDate, date) <= 0)
            {
                result.Add(new WActivity()
                {
                    Date = nextActivityDate, WTask = task
                });
                nextActivityDate = nextActivityDate.AddDays(task.Frequency);
            }

            return(result);
        }
Ejemplo n.º 2
0
        public void ConvertFromDto(WTask wTask, TaskDto dto, IEnumerable <WGroup> groups, bool updateGroups)
        {
            ConvertFromDto(wTask, dto);
            foreach (var group in dto.Groups)
            {
                var wgroup = groups.Where(x => x.Id == group.Id).SingleOrDefault();
                if (wgroup == null)
                {
                    continue;
                }

                if (!wTask.WGroups.Contains(wgroup))
                {
                    wTask.WGroups.Add(wgroup);
                }

                if (updateGroups)
                {
                    if (wgroup.WTasks == null)
                    {
                        wgroup.WTasks = new List <WTask>();
                    }

                    if (!wgroup.WTasks.Contains(wTask))
                    {
                        wgroup.WTasks.Add(wTask);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void ConvertToDto(TaskDto dto, WTask wtask, IEnumerable <GroupDto> groups, bool updateGroups)
        {
            ConvertToDto(dto, wtask);
            if (dto.Groups == null)
            {
                dto.Groups = new List <GroupDto>();
            }

            foreach (var wgroup in wtask.WGroups)
            {
                var group = groups.Where(x => x.Id == wgroup.Id).SingleOrDefault();
                if (group == null)
                {
                    continue;
                }

                if (!dto.Groups.Contains(group))
                {
                    dto.Groups.Add(group);
                }

                if (updateGroups)
                {
                    if (group.Tasks == null)
                    {
                        group.Tasks = new List <TaskDto>();
                    }

                    if (!group.Tasks.Contains(dto))
                    {
                        group.Tasks.Add(dto);
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public void UpdateEntities(IDbSet <WTask> wTasks, IDbSet <WGroup> wGroups, ConfigDto config)
        {
            if (config == null || config.Groups == null || config.Tasks == null || wTasks == null || wGroups == null)
            {
                return;
            }

            foreach (var group in config.Groups)
            {
                var wGroupToUpdate = wGroups.Where(x => x.Id == group.Id).SingleOrDefault();
                if (wGroupToUpdate == null)
                {
                    wGroupToUpdate = new WGroup();
                    wGroups.Add(wGroupToUpdate);
                }
                wGroupToUpdate.WTasks = new List <WTask>();
                _conversionService.ConvertFromDto(wGroupToUpdate, group);
            }

            foreach (var task in config.Tasks)
            {
                var wTaskToUpdate = wTasks.Where(x => x.Id == task.Id).SingleOrDefault();
                if (wTaskToUpdate == null)
                {
                    wTaskToUpdate = new WTask();
                    wTasks.Add(wTaskToUpdate);
                }
                wTaskToUpdate.WGroups = new List <WGroup>();
                _conversionService.ConvertFromDto(wTaskToUpdate, task, wGroups, true);
            }
        }
Ejemplo n.º 5
0
        public void GetActivityWithNotNullTask()
        {
            WTask t1 = new WTask()
            {
                Id = 1234, Name = "t1", Frequency = 1, StartDate = new DateTime(2017, 10, 10)
            };
            WActivity a1 = new WActivity()
            {
                Id = 5123, WTask = t1, Date = new DateTime(2017, 10, 10)
            };

            using (WContext db = new WContext())
            {
                db.WActivities.Add(a1);
                db.SaveChanges();
            }

            bool resut = false;

            using (WContext db = new WContext())
            {
                var dbActivity = db.WActivities.Include(a => a.WTask).Where(x => x.Id == a1.Id).SingleOrDefault();
                if (dbActivity != null && dbActivity.WTask != null)
                {
                    resut = true;
                }
            }
            Assert.IsTrue(resut);
        }
Ejemplo n.º 6
0
 public void ConvertFromDto(WTask wTask, TaskDto dto)
 {
     ConvertFromNamedModelDto(wTask, dto);
     wTask.StartDate = dto.StartDate;
     wTask.Frequency = dto.Frequency;
     if (wTask.WGroups == null)
     {
         wTask.WGroups = new List <WGroup>();
     }
 }
Ejemplo n.º 7
0
 public void ConvertToDto(TaskDto dto, WTask task)
 {
     ConvertToNamedModelDto(dto, task);
     dto.Frequency = task.Frequency;
     dto.StartDate = task.StartDate;
     if (dto.Groups == null)
     {
         dto.Groups = new List <GroupDto>();
     }
 }
Ejemplo n.º 8
0
        private List <WActivity> GenerateActivities(Random rd, WTask task)
        {
            var activities = new List <WActivity>();
            int n          = rd.Next() % 10 + 7;

            for (int i = 0; i < n; i++)
            {
                activities.Add(new WActivity()
                {
                    WTask = task, IsDone = rd.Next() % 5 != 0, Date = DateTime.Today.Date.AddDays(-i * task.Frequency)
                });
            }
            return(activities);
        }
Ejemplo n.º 9
0
        public void AddTaskToDB_ReturnsCorrectId()
        {
            DataAccessIntegration c = new DataAccessIntegration();
            WTask t1 = new WTask()
            {
                Name = "T1", Description = "T1", Frequency = 1, StartDate = DateTime.Today
            };

            c.SaveTask(t1);

            WTask dbTask;

            using (WContext db = new WContext())
            {
                dbTask = db.WTasks.Where((t) => (t.Name == t1.Name) && (t.Description == t1.Description) && (t.Frequency == t1.Frequency)).Single();
            }
            Assert.AreEqual(t1.Id, dbTask.Id);
        }
Ejemplo n.º 10
0
        public void AutoAddIdTest()
        {
            WTask t1 = new WTask()
            {
                Id = 0, Name = nameof(AutoAddIdTest), Description = "T1", Frequency = 1, StartDate = DateTime.Today
            };

            using (WContext db = new WContext())
            {
                db.WTasks.Add(t1);
                db.SaveChanges();
            }

            WTask dbTask;

            using (WContext db = new WContext())
            {
                dbTask = db.WTasks.Where(x => x.Name == nameof(AutoAddIdTest)).SingleOrDefault();
            }
            Assert.AreNotEqual(0, dbTask.Id);
        }
Ejemplo n.º 11
0
        public void GetGroupWithNotNullTask()
        {
            WTask t1 = new WTask()
            {
                Id = 12345, Name = "t1", Frequency = 1, StartDate = new DateTime(2017, 10, 10)
            };
            WGroup g1 = new WGroup()
            {
                Id = 45678, Name = "g1", WTasks = new List <WTask>()
                {
                    t1
                }
            };

            t1.WGroups = new List <WGroup>()
            {
                g1
            };

            using (WContext db = new WContext())
            {
                db.WGroups.Add(g1);
                db.SaveChanges();
            }

            bool resut = false;

            using (WContext db = new WContext())
            {
                var dbActivity = db.WGroups.Include(a => a.WTasks).Where(x => x.Id == g1.Id).SingleOrDefault();
                if (dbActivity != null && dbActivity.WTasks != null && dbActivity.WTasks.Count == 1)
                {
                    resut = true;
                }
            }
            Assert.IsTrue(resut);
        }
Ejemplo n.º 12
0
        public void Init()
        {
            using (var db = new WContext())
            {
                Random random = new Random(1);
                WGroup g1     = new WGroup()
                {
                    Name = "Zwierzęta", Description = "wszystkie moje domowe zwierzaki"
                };
                WGroup g2 = new WGroup()
                {
                    Name = "Rośliny", Description = "wszystkie rośliny doniczkowe"
                };
                WGroup g3 = new WGroup()
                {
                    Name = "Finanse"
                };
                WGroup g4 = new WGroup()
                {
                    Name = "Ważne", Description = "Lepiej o tym nie zapominać"
                };


                WTask t1 = new WTask()
                {
                    Name = "Nakarmić kota", Description = "Tom jest wybredny i je tylko Royal Canin", Frequency = 1, StartDate = DateTime.Today
                };
                WTask t2 = new WTask()
                {
                    Name = "Nakarmić psa", Description = "Burek zje wszystko", Frequency = 1, StartDate = DateTime.Today
                };
                WTask t3 = new WTask()
                {
                    Name = "Nakarmić rybki", Description = "Jeśli pływają brzuszkiem do góry to można przestać karmić", Frequency = 2, StartDate = DateTime.Today
                };
                WTask t4 = new WTask()
                {
                    Name = "Wymienić wodę rybkom", Frequency = 14, StartDate = DateTime.Today
                };

                WTask t5 = new WTask()
                {
                    Name = "Podlać kwiaty", Description = "Wszytkie oprócz rosiczki", Frequency = 3, StartDate = DateTime.Today
                };
                WTask t6 = new WTask()
                {
                    Name = "Podlać rosiczkę", Description = "Rosiczka jest mięsożerna, ale można i trzeba ją regularnie podlewać", Frequency = 1, StartDate = DateTime.Today
                };

                WTask t7 = new WTask()
                {
                    Name = "Zapłacić czynsz", Description = "1000zl plus ewentualne dopłaty", Frequency = 30, StartDate = DateTime.Today
                };
                WTask t8 = new WTask()
                {
                    Name = "Zapłacić za internet", Description = "60 plus ewentualne dopłaty", Frequency = 30, StartDate = DateTime.Today
                };

                db.WTasks.Add(t1);
                db.WTasks.Add(t2);
                db.WTasks.Add(t3);
                db.WTasks.Add(t5);
                db.WTasks.Add(t6);
                db.WTasks.Add(t7);
                db.WTasks.Add(t8);

                db.WGroups.Add(g1);
                db.WGroups.Add(g2);
                db.WGroups.Add(g3);
                db.WGroups.Add(g4);

                db.SaveChanges();

                foreach (var task in db.WTasks)
                {
                    foreach (var activity in GenerateActivities(random, task))
                    {
                        db.WActivities.Add(activity);
                    }
                }

                Link(g1, t1);
                Link(g1, t2);
                Link(g1, t3);
                Link(g1, t4);

                Link(g2, t5);
                Link(g2, t6);

                Link(g3, t7);
                Link(g3, t8);

                Link(g4, t1);
                Link(g4, t7);

                db.SaveChanges();
                var a = db.WActivities.ToList();
            }
        }
Ejemplo n.º 13
0
 private void Link(WGroup group, WTask task)
 {
     task.WGroups.Add(group);
     group.WTasks.Add(task);
 }
Ejemplo n.º 14
0
        protected override void Seed(WContext db)
        {
            WGroup g1 = new WGroup()
            {
                Name = "Group1", Description = "Animals"
            };
            WGroup g2 = new WGroup()
            {
                Name = "Group2", Description = "Plants"
            };

            WTask t1 = new WTask()
            {
                Name = "Feed the cat", Description = "Royal Canin", Frequency = 1, StartDate = DateTime.Today
            };
            WTask t2 = new WTask()
            {
                Name = "Feed the dog", Frequency = 1, StartDate = new DateTime(2017, 12, 01)
            };
            WTask t3 = new WTask()
            {
                Name = "Water plant1", Frequency = 3, StartDate = new DateTime(2017, 12, 02)
            };
            WTask t4 = new WTask()
            {
                Name = "water Maciek", Frequency = 1, StartDate = new DateTime(2017, 12, 03)
            };
            WTask t5 = new WTask()
            {
                Name = "give insect to Maciek", Frequency = 20, StartDate = new DateTime(2017, 12, 01)
            };

            WActivity a1 = new WActivity()
            {
                WTask = t1, Date = DateTime.Today, IsDone = true
            };
            WActivity a2 = new WActivity()
            {
                WTask = t1, Date = new DateTime(2017, 12, 03), IsDone = false
            };
            WActivity a3 = new WActivity()
            {
                WTask = t1, Date = new DateTime(2017, 12, 03), IsDone = true
            };

            g1.WTasks.Add(t1);
            g1.WTasks.Add(t2);
            g1.WTasks.Add(t5);

            g2.WTasks.Add(t3);
            g2.WTasks.Add(t4);

            t1.WGroups.Add(g1);
            t2.WGroups.Add(g1);
            t3.WGroups.Add(g2);
            t4.WGroups.Add(g2);
            t5.WGroups.Add(g1);
            t5.WGroups.Add(g2);

            db.WGroups.Add(g1);
            db.WGroups.Add(g2);

            db.WTasks.Add(t1);
            db.WTasks.Add(t2);
            db.WTasks.Add(t3);
            db.WTasks.Add(t5);

            db.WActivities.Add(a1);
            db.WActivities.Add(a2);
            db.WActivities.Add(a3);

            db.SaveChanges();
        }