public Task <SettingsEventOfStartSprint> CreateLastStartSprintSettings(SettingsEventOfStartSprint setting) { if (setting == null) { throw new ArgumentNullException(); } settingsEventOfStartSprint.InsertOne(setting); return(Task.FromResult(setting)); }
public async void GenerateEventOfStartSprintAsync() { var dateOfLastChecked = await settingsRepository.GetLastStartSprintSettings(); var activities = await activityRepository.GetAsync(); foreach (var activity in activities) { if (DateTime.Now.CompareTo(activity.EndAt) > 0) { continue; } var allSprintsByActivity = await GetAllSprintsByActivity(activity); var numberOfSprint = await GetNumberOfSprintAsync(activity, dateOfLastChecked); if (numberOfSprint == -1) { continue; } var timeStartOfSprint = (numberOfSprint == 0) ? activity.StartAt : GetTimeStartOfSprint(activity, allSprintsByActivity, numberOfSprint); var startSprintEventInfo = new StartSprintEventInfo() { ActivityId = activity.Id, Number = numberOfSprint, StartAt = timeStartOfSprint, Description = allSprintsByActivity[numberOfSprint].Description, Tasks = allSprintsByActivity[numberOfSprint].Tasks, CreatedAt = allSprintsByActivity[numberOfSprint].CreatedAt, Duration = allSprintsByActivity[numberOfSprint].Duration, IsChecked = false }; await startSprintEventRepository.CreateStartSprintEventInfo(startSprintEventInfo); } var settingOfStartSprintInfo = new SettingsEventOfStartSprint() { DateOfLastCheckedSprint = DateTime.Now }; await settingsRepository.CreateLastStartSprintSettings(settingOfStartSprintInfo); }
private async Task <int> GetNumberOfSprintAsync(Activity activity, SettingsEventOfStartSprint settingsEventOfStartSprint) { var sprints = await GetAllSprintsByActivity(activity); if (settingsEventOfStartSprint == null || activity.StartAt.CompareTo(DateTime.Now) < 0 && activity.StartAt.CompareTo(settingsEventOfStartSprint.DateOfLastCheckedSprint) > 0) { return(await Task.FromResult(0)); } for (var i = 1; i < sprints.Length; i++) { if (GetTimeStartOfSprint(activity, sprints, i).CompareTo(DateTime.Now) < 0 && GetTimeStartOfSprint(activity, sprints, i) .CompareTo(settingsEventOfStartSprint.DateOfLastCheckedSprint) > 0) { return(await Task.FromResult(i)); } } return(await Task.FromResult(-1)); }