コード例 #1
0
        private async Task <List <JobModel> > GetJobsAsync(ConnectionModel connection, List <string> jobIds)
        {
            var tasks = jobIds.Select(jobId => _scheduleSourceService.GetJobAsync(connection.TeamId, connection.StoreId, jobId));
            var jobs  = await Task.WhenAll(tasks);

            return(jobs.ToList());
        }
コード例 #2
0
        private async Task SetJobAndDepartmentName(IEnumerable <ShiftModel> shifts, IDictionary <string, JobModel> jobLookup, WeekModel weekModel, ILogger log)
        {
            var activities = shifts
                             .SelectMany(s => s.Jobs)
                             .Where(a => !string.IsNullOrEmpty(a.JdaJobId));

            foreach (var activity in activities)
            {
                if (!jobLookup.TryGetValue(activity.JdaJobId, out var job))
                {
                    try
                    {
                        job = await _scheduleSourceService.GetJobAsync(weekModel.TeamId, weekModel.StoreId, activity.JdaJobId)
                              ?? throw new KeyNotFoundException();

                        jobLookup[activity.JdaJobId] = job;
                    }
                    catch (Exception)
                    {
                        log.LogJobNotFound(weekModel, activity);
                        continue;
                    }
                }

                activity.Code           = job.Name;
                activity.DepartmentName = job.DepartmentName;
                activity.ThemeCode      = job.ThemeCode;
            }

            foreach (var shift in shifts)
            {
                var firstJob = shift.Jobs
                               .OrderBy(j => j.StartDate)
                               .FirstOrDefault();
                shift.DepartmentName = firstJob?.DepartmentName;
                shift.ThemeCode      = firstJob?.ThemeCode;
            }
        }