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); }