示例#1
0
 /// <summary>
 /// Создание списка xml объектов
 /// </summary>
 /// <param name="modelAuto">Модель схемы по которой делаем список</param>
 /// <param name="modelXlsx">Xlsx файлы откуда тянем список</param>
 /// <param name="xmlModel">Модель файлов xml</param>
 /// <param name="pathSaveXml">Путь сохранения файла xml</param>
 public void CreateListModel(GenerateSchemesAutoModel modelAuto, ModelXlsxGenerate modelXlsx, ListViewModelXmlFileGenerateMethod xmlModel, string pathSaveXml)
 {
     if (modelAuto.IsValidationScheme() && modelXlsx.IsValidationXlsx())
     {
         xmlModel.UpdateOn();
         modelXlsx.UpdateOn();
         Task.Run((delegate
         {
             try
             {
                 var xmlConvert = new XmlConvert();
                 var instanceList = Activator.CreateInstance(typeof(List <>).MakeGenericType(modelAuto.Schemes.TypeObject));
                 var instanceMapper = Activator.CreateInstance(typeof(DataNamesMapper <>).MakeGenericType(modelAuto.Schemes.TypeObject));
                 LibraryAIS3Windows.XlsxToDataTable.XlsxToDataTable xlsxToDataTable = new LibraryAIS3Windows.XlsxToDataTable.XlsxToDataTable();
                 foreach (var modelScheme in modelXlsx.SchemesXlsx)
                 {
                     var dataTable = xlsxToDataTable.GetDateTableXslx(modelScheme.FullPathFile, modelScheme.SelectionSheet, 1, (uint)modelScheme.NumberMemoRow);
                     if (dataTable.Columns.Cast <DataColumn>().Select(x => x.ColumnName).Any(col => modelAuto.Schemes.DescriptionMemo.Contains(col)))
                     {
                         var dataMapType = instanceMapper.GetType().GetMethod("Map")?.Invoke(instanceMapper, new object[] { dataTable });
                         instanceList.GetType().GetMethod("AddRange")?.Invoke(instanceList, new[] { dataMapType });
                     }
                     else
                     {
                         modelScheme.ErrorXml = $"Отсутствуют заголовки {string.Join(",", modelAuto.Schemes.DescriptionMemo)}";
                     }
                 }
                 var instanceAutoGenerate = Activator.CreateInstance(typeof(AutoGenerateSchemes));
                 var property = typeof(AutoGenerateSchemes).GetProperty(modelAuto.Schemes.NameSchemes);
                 if (property != null)
                 {
                     property.SetValue(instanceAutoGenerate, instanceMapper.GetType().GetMethod("ListToClass")?.Invoke(instanceMapper, new [] { instanceList }), null);
                 }
                 //Генерация файла
                 xmlConvert.SerializerClassToXml($"{pathSaveXml}AutoGenerateSchemes.xml", instanceAutoGenerate, instanceAutoGenerate.GetType());
                 //Добавление в модель
                 xmlModel.AddXmlFile(pathSaveXml);
                 modelXlsx.UpdateOff();
                 xmlModel.UpdateOff();
             }
             catch (Exception e)
             {
                 MessageBox.Show(e.Message);
             }
         }));
     }
 }
        /// <summary>
        /// Формирование списков xml по схеме!!!
        /// </summary>
        /// <param name="modelsnuone">Выбор модели Сериализации файла</param>
        /// <param name="textboxfilemodel">Модель файла</param>
        /// <param name="shemedocument">Модель схем</param>
        /// <param name="checkBoxModel">Модель заголовка</param>
        /// <param name="path">Путь сохранение xml</param>
        /// <param name="xmlmodel">ListView для отражения xml</param>
        public void  FormirovanieXml(ModelSnuOneFormNameListProperty modelsnuone, TextBoxModelMethod textboxfilemodel, ShemeMethod shemedocument, CheckBoxModel checkBoxModel, string path, ListViewModelXmlFileGenerateMethod xmlmodel)
        {
            XmlConvert convert = new XmlConvert();

            if (shemedocument.IsValidation())
            {
                switch (shemedocument.Shema.Shemes)
                {
                case "SnuOneForm":
                    if (textboxfilemodel.IsValidation() && modelsnuone.IsValidation())
                    {
                        xmlmodel.UpdateOn();
                        Task.Run((delegate
                        {
                            try
                            {
                                convert.ConvertListSnuOneForm(textboxfilemodel.Path,
                                                              modelsnuone.SelectList.Listletter, modelsnuone.SelectColumnLetter.ColumnName,
                                                              checkBoxModel.IsCheced, string.Join(null, path, "Inn.xml"));
                                xmlmodel.AddXmlFile(path);
                                xmlmodel.UpdateOff();
                            }
                            catch (Exception e)
                            {
                                MessageBox.Show(e.Message);
                            }
                        }));
                    }
                    break;

                case "TreatmentFpd":
                    if (textboxfilemodel.IsValidation() && modelsnuone.IsValidation() &&
                        checkBoxModel.IsValidation())
                    {
                        xmlmodel.UpdateOn();
                        Task.Run((delegate
                        {
                            try
                            {
                                convert.ConvertListFpdReg(textboxfilemodel.Path, modelsnuone.SelectList.Listletter,
                                                          modelsnuone.SelectColumnLetter.ColumnName, checkBoxModel.SelectIntRow,
                                                          string.Join(null, path, "Fpd.xml"));
                                xmlmodel.AddXmlFile(path);
                                xmlmodel.UpdateOff();
                            }
                            catch (Exception e)
                            {
                                MessageBox.Show(e.Message);
                            }
                        }));
                    }
                    break;

                case "FullInnCount":
                    if (textboxfilemodel.IsValidation() && modelsnuone.IsValidation() &&
                        checkBoxModel.IsValidation())
                    {
                        xmlmodel.UpdateOn();
                        Task.Run((delegate
                        {
                            try
                            {
                                convert.ConvertInnMassList(textboxfilemodel.Path, modelsnuone.SelectList.Listletter,
                                                           modelsnuone.SelectColumnLetter.ColumnName, checkBoxModel.SelectIntRow,
                                                           checkBoxModel.Colelementcollection, string.Join(null, path, "InnFull.xml"));
                                xmlmodel.AddXmlFile(path);
                                xmlmodel.UpdateOff();
                            }
                            catch (Exception e)
                            {
                                MessageBox.Show(e.Message);
                            }
                        }));
                    }
                    break;

                case "FidZorI":
                    if (textboxfilemodel.IsValidation() && modelsnuone.IsValidation())
                    {
                        xmlmodel.UpdateOn();
                        Task.Run((delegate
                        {
                            try
                            {
                                convert.SerializFidZorI(textboxfilemodel.Path, modelsnuone.SelectList.Listletter,
                                                        modelsnuone.SelectColumnLetter.ColumnName, checkBoxModel.IsCheced,
                                                        string.Join(null, path, "Fid.xml"));
                                xmlmodel.AddXmlFile(path);
                                xmlmodel.UpdateOff();
                            }
                            catch (Exception e)
                            {
                                MessageBox.Show(e.Message);
                            }
                        }));
                    }
                    break;

                case "FidFace":
                    if (textboxfilemodel.IsValidation() && modelsnuone.IsValidation())
                    {
                        xmlmodel.UpdateOn();
                        Task.Run(delegate
                        {
                            try
                            {
                                convert.ConvertFidFace(textboxfilemodel.Path, modelsnuone.SelectList.Listletter,
                                                       modelsnuone.SelectColumnLetter.ColumnName, checkBoxModel.IsCheced,
                                                       string.Join(null, path, "FidFace.xml"));
                                xmlmodel.AddXmlFile(path);
                                xmlmodel.UpdateOff();
                            }
                            catch (Exception e)
                            {
                                MessageBox.Show(e.Message);
                            }
                        });
                    }
                    break;

                case "IdZaprosVisual":
                    if (textboxfilemodel.IsValidation() && modelsnuone.IsValidation())
                    {
                        xmlmodel.UpdateOn();
                        Task.Run(delegate
                        {
                            try
                            {
                                convert.ConvertIdVisual(textboxfilemodel.Path, modelsnuone.SelectList.Listletter,
                                                        modelsnuone.SelectColumnLetter.ColumnName, checkBoxModel.IsCheced,
                                                        string.Join(null, path, "IdZaprosVisual.xml"));
                                xmlmodel.AddXmlFile(path);
                                xmlmodel.UpdateOff();
                            }
                            catch (Exception e)
                            {
                                MessageBox.Show(e.Message);
                            }
                        });
                    }
                    break;
                }
            }
        }