public async Task <List <Equipment> > GetEquipmentEntityAsync(List <long> equipmentIds)
        {
            var              equipmentAccessClient    = EquipmentAccessClient.CreateClient();
            List <long>      equipmentIdsNotFoundInDb = new List <long>();
            List <Equipment> equipmentList            = new List <Equipment>();

            foreach (long equipmentId in equipmentIds)
            {
                Equipment equipmentDbEntity = equipmentAccessClient.GetEquipment(equipmentId).Result;

                if (equipmentDbEntity == null)
                {
                    equipmentIdsNotFoundInDb.Add(equipmentId);
                }
                else
                {
                    equipmentList.Add(equipmentDbEntity);
                }
            }

            if (equipmentIdsNotFoundInDb.Count > 0)
            {
                List <Equipment> createdEquipments = await CreateEquipmentEntitiesFromNmsDataAsync(equipmentIdsNotFoundInDb);

                var equipmentAccess = EquipmentAccessClient.CreateClient();

                List <Task> addingEquipmentTasks = new List <Task>();
                foreach (var createdEquipment in createdEquipments)
                {
                    addingEquipmentTasks.Add(Task.Run(() => equipmentAccess.AddEquipment(createdEquipment)));
                }

                Task.WaitAll(addingEquipmentTasks.ToArray());
                equipmentList.AddRange(createdEquipments);
            }

            return(equipmentList);
        }
        private async Task SetDefaultIsolationPoints(OutageEntity outageEntity, IsolationAlgorithm algorithm)
        {
            var algorithmBaseLogString = $"{baseLogString} [HeadBreakerGid: 0x{algorithm.HeadBreakerGid:X16}]";

            var       equipmentAccessClient = EquipmentAccessClient.CreateClient();
            Equipment headBreakerEquipment  = await equipmentAccessClient.GetEquipment(algorithm.HeadBreakerGid);

            Equipment recloserEquipment = await equipmentAccessClient.GetEquipment(algorithm.RecloserGid);

            if (headBreakerEquipment == null || recloserEquipment == null)
            {
                string message = $"{algorithmBaseLogString} SetDefaultIsolationPoints => Recloser [0x{algorithm.HeadBreakerGid:X16}] or HeadBreaker [0x{algorithm.RecloserGid:X16}] were not found in database";
                Logger.LogError(message);
                throw new Exception(message);
            }

            outageEntity.DefaultIsolationPoints = new List <Equipment>()
            {
                headBreakerEquipment, recloserEquipment
            };

            Logger.LogInformation($"{algorithmBaseLogString} SetDefaultIsolationPoints => Optimum points 0x{headBreakerEquipment:X16} and 0x{recloserEquipment:X16}");
        }