示例#1
0
        private async Task UpdateJdaEmployeeFromTeamsAsync(string teamId, EmployeeModel jdaEmployee)
        {
            var teamEmployee = await _scheduleDestinationService.GetEmployeeAsync(teamId, jdaEmployee.LoginName);

            if (teamEmployee != null)
            {
                jdaEmployee.DestinationId = teamEmployee.DestinationId;
                jdaEmployee.DisplayName   = teamEmployee.DisplayName;
            }
        }
示例#2
0
        private async Task SetTeamsEmployeeIds(IEnumerable <ShiftModel> shifts, IDictionary <int, string> employeeLookup, WeekModel weekModel, ILogger log)
        {
            await _scheduleSourceService.LoadEmployeesAsync(weekModel.TeamId, shifts.Select(s => s.JdaEmployeeId.ToString()).Distinct().ToList());

            foreach (var shift in shifts)
            {
                if (!employeeLookup.ContainsKey(shift.JdaEmployeeId))
                {
                    EmployeeModel jdaEmployee;

                    try
                    {
                        jdaEmployee = await _scheduleSourceService.GetEmployeeAsync(weekModel.TeamId, shift.JdaEmployeeId.ToString())
                                      ?? throw new KeyNotFoundException();
                    }
                    catch (Exception)
                    {
                        log.LogEmployeeNotFound(weekModel, shift);
                        continue;
                    }

                    try
                    {
                        var graphEmployee = await _scheduleDestinationService.GetEmployeeAsync(weekModel.TeamId, jdaEmployee.LoginName)
                                            ?? throw new KeyNotFoundException();

                        employeeLookup.Add(shift.JdaEmployeeId, graphEmployee.DestinationId);
                    }
                    catch (KeyNotFoundException)
                    {
                        employeeLookup.Add(shift.JdaEmployeeId, null);
                    }
                    catch (Exception e)
                    {
                        log.LogMemberError(e, weekModel, jdaEmployee);

                        employeeLookup.Add(shift.JdaEmployeeId, null);
                    }
                }

                shift.TeamsEmployeeId = employeeLookup[shift.JdaEmployeeId];
            }
        }