Exemple #1
0
        private static void UpdateApartmentsAggregate(IOrganizationService orgSvc, HttpClient client)
        {
            Task <ApartmentMain>       apartmentsList = Task.Run(() => Requests.GetApartmentsSeltAsync(client));
            Task <List <SeltMapping> > seltMapping    = Task.Run(() => Requests.GetSeltMapAsync(orgSvc));

            try
            {
                Task.WaitAll(apartmentsList, seltMapping);
            }
            catch (AggregateException ex)
            {
                logger.Error(ex, ex.Message);
            }

            List <SeltMapping> selts      = seltMapping.GetAwaiter().GetResult();
            List <Apartment>   apartments = apartmentsList.GetAwaiter().GetResult()?.AppartmentsList?.Apartment;

            if (apartments.Count <= 0 || selts.Count <= 0)
            {
                logger.Warning("Collection appartments or selt mapping is empty");
                return;
            }

            List <SeltMapping> validateCollectionApartments = Helpers.AggregateCollectionEstate(apartments, selts, logger);

            Helpers.ProcessingApartmentsUpdate(orgSvc, validateCollectionApartments, logger);
            InstanceEntityUpdate.PushEntity(orgSvc, logger);
            logger.Information($"Successfully updated {InstanceEntityUpdate.Entities.Count} entities");
        }
Exemple #2
0
        static void Main(string[] args)
        {
            logger.Information("running app");
            IOrganizationService orgSvc = Requests.ConnectionCrm();
            HttpClient           client = new HttpClient();

            UpdateApartmentsAggregate(orgSvc, client);
        }
Exemple #3
0
 internal static void ProcessingApartmentsUpdate(IOrganizationService orgSvc, List <SeltMapping> validateCollectionApartments, ILogger logger)
 {
     Parallel.ForEach(validateCollectionApartments, (apartment) =>
     {
         try
         {
             Entity entity = Requests.GetEstateObject(orgSvc, apartment.Apartment, apartment.BuildingId, apartment.CorpusNumber);
             if (entity != null)
             {
                 Requests.SettingEstateObject(orgSvc, entity, apartment.Apartment);
                 InstanceEntityUpdate.Entities.Add(entity);
             }
         }
         catch (Exception ex)
         {
             logger.Error(ex, "the element is not processed");
         }
     });
 }