public async void UpdateTaskHolderAsync_SettingShouldChanged(string description, bool isRepeat, byte weeklyRepeatPattern, int taskDuration, int timeTakeToMakeTask) { var testTaskHolder = new NormalTaskHolder("Test", "Test", description, isRepeat, weeklyRepeatPattern, taskDuration, timeTakeToMakeTask, DateTime.Now); string descriptionOfFirstRow = ""; byte repeatPatternOfFirstRow = 0b00000; bool isRepeatOfFirstRow = false; int taskdurationOfFirstRow = 0; int timeTakeToMakeTaskOfFirstRow = 0; if (databaseAccess is SqliteDataAccessSqliteCon databaseAccessSqlite) { await databaseAccessSqlite.UpdateTaskHolderAsync(testTaskHolder); var list = await databaseAccessSqlite.GetTaskHolderListAsync(); descriptionOfFirstRow = list[0].Description; repeatPatternOfFirstRow = list[0].WeeklyRepeatPattern; isRepeatOfFirstRow = list[0].IsRepeat; taskdurationOfFirstRow = list[0].TaskDuration; timeTakeToMakeTaskOfFirstRow = list[0].TimeTakeToMakeTask; } Assert.Equal(testTaskHolder.Description, descriptionOfFirstRow); Assert.Equal(testTaskHolder.WeeklyRepeatPattern, repeatPatternOfFirstRow); Assert.Equal(testTaskHolder.IsRepeat, isRepeatOfFirstRow); Assert.Equal(testTaskHolder.TaskDuration, taskdurationOfFirstRow); Assert.Equal(testTaskHolder.TimeTakeToMakeTask, timeTakeToMakeTaskOfFirstRow); }
/// <summary> /// This class is for inserthing test data to see the live chart graph working or not. /// </summary> private async Task InsertTestingDataSetAsync() { Random rand = new Random(); int taskDuration = 1; byte weeklyRepeatPattern = 0b01111111; int numOfDate = 35; List <Task> tasks = new List <Task>(); DateTime numOfDayInTestingData = DateTime.Now - TimeSpan.FromDays(numOfDate); var today = (int)DateTime.Now.DayOfWeek; var taskHolder = new NormalTaskHolder("TestingData", this.GetTitleNameForDB("TestingData"), "This is Testing", true, weeklyRepeatPattern, taskDuration, 3320, numOfDayInTestingData); await DBAccess.CreateNewTaskHolderAsync(taskHolder); for (int j = 0; j < numOfDate; j++) { var checkingDayOfWeek = ((int)0b00000001 << ((today - j) % 7 + 7) % 7); if ((weeklyRepeatPattern & checkingDayOfWeek) > 0) { tasks.Add(DBAccess.UpsertUserTaskAsync(new BoolTypeUserTask(taskHolder.DisplayTitle, DateTime.Now - TimeSpan.FromDays(j)) { IsTaskDone = (rand.NextDouble() > 0.5), Date = (DateTime.Now - TimeSpan.FromDays(j)).ToString("G", CultureInfo.CreateSpecificCulture("es-ES")), TimeOfCompletionLocal = (DateTime.Now - TimeSpan.FromDays(j)).ToString("G", CultureInfo.CreateSpecificCulture("es-ES")), ParentTaskHolder = taskHolder //Set Random data. })); } } await Task.WhenAll(tasks); await ResetAllTaskListAsync(); }
private async Task <UserTask> BringSpecificTaskOnTaskHolderAsync(NormalTaskHolder taskHolder, DateTime date) { var boolTypeTask = await DBAccess.GetTaskOnSpecificDateAsync(taskHolder.Title, date.ToString("G", CultureInfo.CreateSpecificCulture("es-ES"))); if (boolTypeTask == null) { boolTypeTask = new BoolTypeUserTask(taskHolder.DisplayTitle, date); } boolTypeTask.DisplayTitle = taskHolder.DisplayTitle; boolTypeTask.ParentTaskHolder = taskHolder; boolTypeTask.OnDataChanged += UpdateCertainTask; taskHolder.CurrentTaskList.Add(boolTypeTask); return(boolTypeTask); }
private async Task AssignPastWeeklyTaskAsync(NormalTaskHolder taskHolder, double totalDaysAfterInitDay) { int today = (int)DateTime.Now.DayOfWeek; var checkUntilDay = (taskHolder.TaskDuration < totalDaysAfterInitDay) ? taskHolder.TaskDuration : totalDaysAfterInitDay; var tasks = Enumerable.Range(1, (int)checkUntilDay - 1).Select(async(i) => { //mod of negative number i to find dayOfWeek constraint var checkingDay = ((int)0b00000001 << ((today - i) % 7 + 7) % 7); if ((taskHolder.WeeklyRepeatPattern & checkingDay) > 0) { var task = await BringSpecificTaskOnTaskHolderAsync(taskHolder, DateTime.Now + TimeSpan.FromDays(-i)); if (task is BoolTypeUserTask boolTask) { this.BoolTypeTaskList.Add(boolTask); } } }); var totalDaysInFourWeeks = 28; var visualDate = ((today + 1) + totalDaysInFourWeeks < totalDaysAfterInitDay) ? (today + 1) + totalDaysInFourWeeks : totalDaysAfterInitDay; var tasks2 = Enumerable.Range((int)checkUntilDay, (int)visualDate - 1).Select(async(i) => { //mod of negative number i to find dayOfWeek constraint var checkingDay = ((int)0b00000001 << ((today - i) % 7 + 7) % 7); if ((taskHolder.WeeklyRepeatPattern & checkingDay) > 0) { var task = await BringSpecificTaskOnTaskHolderAsync(taskHolder, DateTime.Now + TimeSpan.FromDays(-i)); if ((taskHolder.WeeklyRepeatPattern & checkingDay) > 0) { await BringSpecificTaskOnTaskHolderAsync(taskHolder, (DateTime.Now + TimeSpan.FromDays(-i))); } } }); await Task.WhenAll(tasks); await Task.WhenAll(tasks2); }
public async Task AssignNewTaskHolder(NormalTaskHolder taskHolder) { await DBAccess.CreateNewTaskHolderAsync(taskHolder); }