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