Exemplo n.º 1
0
        /// <summary>
        /// Экспорт блоков квартир в отдельные файлы dwg квартир.
        /// </summary>
        /// <returns>Количество экспортированных квартир.</returns>
        public static int ExportToFiles(List <Apartment> apartments)
        {
            int      count = 0;
            DateTime now   = DateTime.Now;

            // Бекап старых подложек
            BackupOldApartmentsFile();

            // Выключение слоев штриховки
            layersOff = LayerService.LayersOff(Options.Instance.LayersOffMatch);

            var apartsToFile = apartments.Where(a => !a.BaseStatus.HasFlag(EnumBaseStatus.NotInDwg));

            using (var progress = new ProgressMeter())
            {
                progress.SetLimit(apartsToFile.Count());
                progress.Start("Экспорт квартир в файлы...");

                foreach (var apart in apartsToFile)
                {
                    progress.MeterProgress();
                    try
                    {
                        apart.ExportToFile();
                        apart.ExportDate = now;
                        count++;
                    }
                    catch (System.Exception ex)
                    {
                        Inspector.AddError($"Ошибка при экспорте блока '{apart.Name}' - {ex.Message}", icon: System.Drawing.SystemIcons.Error);
                    }
                }
                progress.Stop();
            }

            // Восстановление слоев
            LayerService.LayersOn(layersOff);

            return(count);
        }