Пример #1
0
        // Microsoft.Graph.Device
        private async Task AddAdditionalInformationAboutAlert(Alert alert, AlertDetailsViewModel alertModel)
        {
            try
            {
                var startAdd = DateTime.Now;

                if (!string.IsNullOrWhiteSpace(alert.AssignedTo))
                {
                    UserAccountDevice assignedTo = _memoryCacheHelper.GetUserAccountDevice(alert.AssignedTo);

                    if (assignedTo == null)
                    {
                        assignedTo = await _graphService.GetUserDetailsAsync(alert.AssignedTo, populatePicture: true, populateManager : true, populateDevices : true);

                        alertModel.AssignedTo = assignedTo;
                        _memoryCacheHelper.SetUserAccountDevice(alert.AssignedTo, assignedTo);
                    }

                    alertModel.AssignedTo = assignedTo;
                }

                List <UserAccountDevice> userAccountDevices = new List <UserAccountDevice>();

                foreach (var userState in alert?.UserStates)
                {
                    // Get info about user
                    var principalName = userState.UserPrincipalName;
                    if (!string.IsNullOrWhiteSpace(principalName))
                    {
                        UserAccountDevice userAccountDevice = _memoryCacheHelper.GetUserAccountDevice(principalName);

                        if (userAccountDevice == null)
                        {
                            userAccountDevice = await _graphService.GetUserDetailsAsync(principalName, populatePicture : true, populateManager : true, populateDevices : true, populateRiskyUser : true);

                            if (!string.IsNullOrWhiteSpace(userAccountDevice.Manager.Upn))
                            {
                                userAccountDevice.Manager = await _graphService.GetUserDetailsAsync(userAccountDevice.Manager.Upn, populatePicture : false, populateManager : false, populateDevices : false);
                            }

                            if (!string.IsNullOrWhiteSpace(userState.DomainName))
                            {
                                userAccountDevice.DomainName = userState.DomainName;
                            }

                            userAccountDevice.RiskScore = userState?.RiskScore;
                            userAccountDevice.LogonId   = userState?.LogonId;
                            userAccountDevice.EmailRole = userState?.EmailRole.ToString();

                            if (userAccountDevice?.RegisteredDevices?.Count() == 0 && userAccountDevice?.OwnedDevices?.Count() == 0)
                            {
                                userAccountDevice.RegisteredDevices = _demoExample.GetDevices();
                                userAccountDevice.OwnedDevices      = _demoExample.GetDevices();
                            }
                            _memoryCacheHelper.SetUserAccountDevice(principalName, userAccountDevice);
                        }
                        if (userAccountDevice != null)
                        {
                            userAccountDevices.Add(userAccountDevice);
                        }
                    }
                }

                alertModel.UserAccountDevices = userAccountDevices;

                Debug.WriteLine($"Executing time AddAdditionalInformationAboutAlert: {DateTime.Now - startAdd}");
            }
            catch (Exception exception)
            {
                Trace.WriteLine(exception.Message);
            }
        }
 public AlertDetailsResponse(AlertDetailsViewModel alertDetails, ResultQueriesViewModel queries)
 {
     AlertDetails = alertDetails;
     Queries      = queries;
 }
 public AlertUpdatedResponse(AlertDetailsViewModel alert, ResultQueriesViewModel queries)
 {
     Alert   = alert;
     Queries = queries;
 }