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); }
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); } } } }
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); } } } }
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); } }
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); }
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>(); } }
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>(); } }
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); }
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); }
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); }
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); }
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(); } }
private void Link(WGroup group, WTask task) { task.WGroups.Add(group); group.WTasks.Add(task); }
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(); }