public DataContextReport() { try { var command = new CommandSnuOneAuto(); ModelApi = ConfigFile.ResultGetTemplate <ModelServiceDataBase>(ConfigFile.ServiceModelInventory); ModelApi.ForEach(service => service.ApiService = string.Format(service.ApiService, ConfigFile.HostNameService)); Report = new ReportXlsxMethod(ConfigFile.ExcelReportFile); ReportJournalAndFile = new ReportJournalMethod(ConfigFile.PathJurnal, ConfigFile.PathInn, ModelApi); LabelModel = new LabelModel(); DeleteJournal = new DelegateCommand(() => { ReportJournalAndFile.DeleteXmlReportJournal(); }); DeleteReport = new DelegateCommand(() => { Report.DeleteReportFile(); }); OpenReport = new DelegateCommand(() => { Report.OpenReport(); }); OpenFile = new DelegateCommand(() => { command.ConvertXslToXmlAndOpen(Report, ReportJournalAndFile, ConfigFile.ExcelReportFile); }); FileToServerApiReport = new DelegateCommand(() => command.FileToServerApiReport(LabelModel, ModelApi, ReportJournalAndFile)); Update = new DelegateCommand(() => { ReportJournalAndFile.AddFileXml(ConfigFile.PathInn); ReportJournalAndFile.AddJournal(ConfigFile.PathJurnal); }); } catch (Exception e) { Console.WriteLine(e); throw; } }
/// <summary> /// Команда конвертации xml в Excel и открытия файла Excel /// </summary> /// <param name="reportExcel">отч</param> /// <param name="reportJournal"></param> /// <param name="pathReport"></param> public void ConvertXslToXmlAndOpen(ReportXlsxMethod reportExcel, ReportJournalMethod reportJournal, string pathReport) { var fileFullPath = LibaryXMLAuto.Converts.ConvertXmlToXslx.ConvertXmltoXlsx.ConvertXmlToXls(reportJournal.XmlFile.Path, pathReport); reportExcel.UpdateColectFile(fileFullPath.DirectoryName); reportJournal.OpenFile(fileFullPath.FullName); }
/// <summary> /// Отправка файла на сервер для анализа или отчета /// </summary> /// <param name="model">Возвращаемая модель</param> /// <param name="serverApi">Моделька с api</param> /// <param name="reportJournal">Выбор файла в журнале</param> public void FileToServerApiReport(LabelModel model, List <ModelServiceDataBase> serverApi, ReportJournalMethod reportJournal) { var modelFileApi = serverApi.FirstOrDefault(api => api.ModelNameFileXml == reportJournal.XmlFile.Name); if (modelFileApi != null) { XmlConvert xmlConverter = new XmlConvert(); var type = Type.GetType($"{modelFileApi.TypeFileNameSpaceClass},{modelFileApi.FileNameDll}"); var reports = xmlConverter.DeserializationXmlToClass(reportJournal.XmlFile.Path, type); var report = (ModelPathReport)ResultPost(modelFileApi.ApiService, reports); model.MessageReport = report.Note; model.Url = report.Url; model.Color = Brushes.Green; } else { model.MessageReport = $"Для данной команды выбран не тот файл!!!"; model.Color = Brushes.Red; } }
/// <summary> /// Команда Update вынесена в отдельный класс чтобы не загромождать логику MVVM /// </summary> /// <param name="xmlUseMethod">XmlUseMethod Метод файла xml</param> /// <param name="reportJournalMethod">ReportJournalMethod метод журнала файла xml</param> /// <param name="pathFileInn">Путь к файлу FullName</param> /// <param name="pathJournal">Просто путь к журналу</param> /// <param name="pathInn">Просто путь к ИНН</param> public void UpdateModel(XmlUseMethod xmlUseMethod, ReportJournalMethod reportJournalMethod, string pathFileInn, string pathJournal, string pathInn) { xmlUseMethod.UpdateFileXml(pathFileInn); reportJournalMethod.AddFileXml(pathInn); reportJournalMethod.AddJournal(pathJournal); }