Model integracji oparty o bibliotekę dla aplikacji .NET

<< Click to Display Table of Contents >>

Navigation:  Integracja z systemami EOD > Modele integracji >

Model integracji oparty o bibliotekę dla aplikacji .NET

Ten model integracji jest najbardziej rozbudowany, ponieważ pozwala na wbudowanie programu Legislator w system EOD. Ograniczeniem jest technologia w jakiej wykonany jest system EOD. Aby skorzystać z biblioteki integracyjnej, system EOD lub jego fragment musi być wykonany w technologii Microsoft .NET  co najmniej w wersji 2.0 oraz umieć skorzystać z technologii Windows.Forms. 

Konfiguracja

Przechowywanie ścieżki do produkcyjnie wykorzystywanej kompilacji EAP XML Legislator, należy do zakresu konfiguracji systemu EOD. Domyślnie EAP XML Legislator instalowany jest w katalogu c:\program files\legislator, jednakże użytkownik może jednocześnie wykorzystywać więcej niż jedną kompilację (np. w celach testowych), która może znajdować się w dowolnym miejscu na dysku lokalnym lub sieciowym. Żadna z bibliotek EAP XML Legislator nie jest rejestrowana w GAC. 

Aby wszystkie elementy wywoływanych fragmentów programu Legislator wyświetlały polskie opisy funkcji, w katalogu aplikacji EOD należy umieścić folder pl zawierający pliki lokalizacyjne dostępne do pobrania z http://www.abcpro.pl/download/eod/pl.zip. 

W pliku AssemblyInfo.cs należy dodać wpis: 

using System.Resources;

[assembly: NeutralResourcesLanguageAttribute("pl")]

Korzystanie z biblioteki integracyjnej

Za pomocą Visual Studio otwieramy rozwiązanie i do wybranej aplikacji lub biblioteki dodajemy referencję do EAP.Editor.Plugins.Core.dll. Plik ten znajduje się w katalogu programu Legislator. 

Do wykonania wszelkich operacji integracyjnych należy używać instancji interfejsu EAP.Editor.Plugins.Core.API.IController.  

Aby utworzyć tę instancję wywołujemy metodę CreateController()statycznej klasy 

EAP.Editor.Plugins.Core.API.LegislatorController podając w parametrze ścieżkę katalogu programu EAP XML Legislator. 

Metoda CreateController()zwraca statyczny egzemplarz kontrolera. Można zatem wywoływać ją wielokrotnie.  

Tworzenie nowego dokumentu

Tworzenie nowego dokumentu bez podawania metadanych

W tym celu należy wywołać metodę CreateDocument w parametrze wskazując ścieżkę dla nowo utworzonego pliku ZIPX. 

var controller = LegislatorController.CreateController("C:\\Program Files\\Legislator\\");

using (var dlg = new SaveFileDialog()

{

  Filter = "Plik Edytora Aktów Prawnych XML (*.zipx)|*.zipx"

})  {

  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)

  {

Initialize(false);     controller.CreateDocument(dlg.FileName);

  }

}

Wynik metody można wykorzystać do otwarcia aktu w edytorze za pomocą metody kontrolera  OpenFile.

Podczas wywołania tej metody zostanie wyświetlone okno dialogowe jak na rysunku poniżej, umożliwiające wprowadzenie podstawowych informacji o tworzonym akcie prawnym. 

 

clip0617

 

Tworzenie nowego dokumentu na podstawie metadanych

W tym celu należy wywołać metodę CreateDocument w parametrze wskazując ścieżkę dla nowo utworzonego pliku ZIPX, typ aktu prawnego, autora dokumentu (organ wydający), numer oraz datę aktu i tytuł (przedmiot regulacji). 

var controller = LegislatorController.CreateController("C:\\Program Files\\Legislator\\");

using (var dlg = new SaveFileDialog()

{

  Filter = "Plik Edytora Aktów Prawnych XML (*.zipx)|*.zipx"

})  {

  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)

  {

Initialize(false);

var authors = controller.GetAuthors();

 

ILegalActAuthor author = null; foreach (var _author in authors) { author = _author; break;

}

var legalActTypes = controller.GetLegalActTypes(); var legalActType = "uchwala";

 

foreach (var _legalActType in legalActTypes) {

         legalActType = _legalActType;

         break;

}  

var zipx = controller.CreateDocument(dlg.FileName,

legalActType, author, "XXX", DateTime.Now.AddDays(5), "w sprawie testu API");

  }

}

Wynik metody można wykorzystać do otwarcia aktu w edytorze za pomocą metody kontrolera  OpenFile.

Tworzenie nowego dokumentu na podstawie innego dokumentu

W tym celu należy wywołać metodę CreateDocumentFromExisting(string,string). Pierwszy parametr zawiera pełną ścieżkę pliku źródłowego, na podstawie którego zostanie utworzony nowy dokument. Jeżeli wartość równa się null to wyświetlone zostanie standardowe okno dialogowe z prośbą o wybranie pliku ZIPX. Drugi parametr to ścieżka do utworzonego dokumentu. . Jeżeli wartość równa się null to nowy dokument zostanie utworzony w katalogu tymczasowym programu Legislator. Metoda zwraca ścieżkę do nowo utworzonego dokumentu. Plik można otworzyć za pomocą metody OpenFile(string).

Tworzenie nowego wniosku o ogłoszenie

Tworzenie nowego wniosku o ogłoszenie bez wskazywania aktów do ogłoszenia

Jeżeli akt prawny został podpisany i podlega ogłoszeniu w wojewódzkim dzienniku urzędowym, to należy przekazać go celem ogłoszenia wraz z wnioskiem o jego ogłoszenie. W tym celu należy uruchomić kreator tworzenia nowego wniosku wywołując metodę CreateRequest().

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\"); controller.CreateRequest();

Podczas wywołania tej metody wyświetlony zostanie kreator jak na rysunku poniżej. 

 

clip0804

 

Uwaga.

Do poprawnego działania tej opcji niezbędne jest dodanie odpowiednich wpisów w pliku konfiguracyjnym aplikacji. Wymagane wpisy zostały opisane w rozdziale Wymagane wpisy w pliku konfiguracyjnym aplikacji.

Tworzenie nowego wniosku o ogłoszenie ze wskazaniem aktów do ogłoszenia

W tym celu należy wywołać metodę CreateRequest w parametrze wskazując plik ZIP zawierający wniosek o ogłoszenie. Jeżeli w parametrze przekażemy plik o rozszerzeniu ZIPX, to program Legislator automatycznie utworzy wniosek dla tego aktu. 

var controller = LegislatorController.CreateController("C:\\Program Files\\Legislator\\");

using (var dlg = new OpenFileDialog()

{

  Filter = "Plik Edytora Aktów Prawnych XML (*.zipx)|*.zipx"

})  {

  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)

  {

Initialize(false);

controller.CreateRequest(dlg.FileName);

       }

   }

Otwieranie istniejącego wniosku o ogłoszenie

W tym celu należy wywołać metodę OpenRequest w parametrze wskazując ścieżkę pliku wniosku o ogłoszenie. 

using (var dlg = new OpenFileDialog()

{

 Filter = "Plik wniosku o ogłoszenie (*.zip)|*.zip"

})  {

  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)

  {

    var controller = LegislatorController.CreateController("C:\\Program Files\\Legislator\\");

    controller.OpenRequest(dlg.FileName);

  }

}

Podczas wywołania tej metody wyświetlony zostanie kreator jak na rysunku poniżej. 

 

clip0805

 

Wyświetlanie dokumentu PDF

Jeżeli istnieje potrzeba wyświetlenia podglądu aktu prawnego, wówczas można skorzystać z metody CreatePdf. Jeżeli dokument jest podpisany lub zablokowany, to metoda zwróci plik PDF znajdujący się w pliku ZIPX. W przeciwnym wypadku plik PDF zostanie wygenerowany. W zależności od wielkości dokumentu, generowanie dokumentu PDF może potrwać od kilku sekund do paru minut.  

 

W tym celu należy wywołać metodę CreatePdf w parametrze wskazując ścieżkę docelową pliku PDF oraz informację, czy po zakończeniu generowania pliku PDF ma on zostać wyświetlony. 

using (var dlg = new OpenFileDialog()

{

Filter = "Plik Edytora Aktów Prawnych XML (*.zipx)|*.zipx" })  {

  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)

  { var controller = LegislatorController.CreateController("C:\\Program Files\\Legislator\\");

     controller.CreatePdf(dlg.FileName, true);

  }

}

Wyświetlanie dokumentu HTML

Jeżeli istnieje potrzeba wyświetlenia podglądu aktu prawnego, wówczas można skorzystać z metody CreateHtml. Jeżeli dokument jest podpisany lub zablokowany, to metoda zwróci plik HTML znajdujący się w pliku ZIPX. W przeciwnym wypadku plik PDF zostanie wygenerowany.  

 

W tym celu należy wywołać metodę CreateHtml w parametrze wskazując ścieżkę docelową pliku HTML. 

using (var dlg = new OpenFileDialog()

{

Filter = "Plik Edytora Aktów Prawnych XML (*.zipx)|*.zipx"

})  {

  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)

  { var controller = LegislatorController.CreateController("C:\\Program Files\\Legislator\\");

    var htmlFilePath = controller.CreateHtml(dlg.FileName);        if (htmlFilePath != null) {

               System.Diagnostic.Process.Start(htmlFilePath);

       }

  }

}

 

}

 

clip0620

Otwieranie dokumentu z EOD

W celu otwarcia aktu prawnego przeznaczonego do dalszej edycji, podpisania lub zablokowania należy skorzystać z metody OpenFile. Metoda zwraca formularz, który można następnie wyświetlić jako okno dialogowe. 

W tym celu należy wywołać metodę OpenFile w parametrze wskazując ścieżkę pliku ZIPX. 

using (var dlg = new OpenFileDialog()

{

Filter = "Plik Edytora Aktów Prawnych XML (*.zipx)|*.zipx"

})  {

  if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)

  { var controller = LegislatorController.CreateController("C:\\Program

Files\\Legislator\\");         var frm = controller.OpenFile(dlg.FileName);         if (frm != null)

        {

                 frm.Width = 1000;

frm.Height = 600;

frm.WindowState = FormWindowState.Maximized; if (frm.ShowDialog() == DialogResult.OK){

 // zapisanie pliku ZIPX

 // do repozytorium plików EOD

}

}

   }

 }

Po zamknięciu tego okna za pomocą przycisku Zapisz i zamknij, należy wykonać zapis pliku ZIPX do repozytorium plików systemu EOD. 

Aby przechwytywać każdy zapis pliku należy podpiąć się do zdarzenia DocumentSaved kontrolera.         

W wyniku wywołania powyższego kodu , na ekranie powinno zostać wyświetlone okno edycji aktu prawnego. 

 

clip0806

 

Za pomocą opcji dostępnych na wstążce, można wykonać wszystkie operacje dostępne w pełnej wersji programu Legislator. 

Wywołanie funkcji wersji Premium

Wersja Premium programu Legislator, umożliwia tworzenie aktów zmieniających, automatycznych tekstów ujednoliconych i porównawczych oraz obwieszczeń z tekstem jednolitym. 

Utworzenie nowego aktu zmieniającego

W tym celu należy wywołać metodę  CreateNewAmendment().  

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\");

var fileName = controller. CreateNewAmendment(); if (fileName!=null){ var frm = Controller.OpenFile(fileName); if (frm != null) {

frm.Width = 1000; frm.Height = 600; frm.WindowState = FormWindowState.Maximized;

       if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

       MessageBox.Show("Teraz trzeba zapisać dokument do

EOD!",Application.ProductName,MessageBoxButtons.OK,

MessageBoxIcon.Information); }}}

Utworzenie nowego technicznego aktu zmieniającego

W tym celu należy wywołać metodę  CreateNewTechnicalAmendment(). Dokument techniczny używany jest między innymi do włączania w proces nowelizacyjny rozstrzygnięć nadzorczych. 

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\");

var fileName = controller. CreateNewTechnicalAmendment(); if (fileName!=null){

var frm = Controller.OpenFile(fileName); if (frm != null) { frm.Width = 1000; frm.Height = 600; frm.WindowState = FormWindowState.Maximized;

       if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

       MessageBox.Show("Teraz trzeba zapisać dokument do

EOD!",Application.ProductName,MessageBoxButtons.OK,

MessageBoxIcon.Information); }}}

Utworzenie nowego aktu zmieniającego w trybie śledzenia zmian

W tym celu należy wywołać metodę  CreateNewAmendmentUsingTrackingChanges().  

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\");

var fileName = controller. CreateNewAmendmentUsingTrackingChanges(); if (fileName!=null){

var frm = Controller.OpenFile(fileName); if (frm != null) { frm.Width = 1000; frm.Height = 600;

frm.WindowState = FormWindowState.Maximized;

       if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

       MessageBox.Show("Teraz trzeba zapisać dokument do

EOD!",Application.ProductName,MessageBoxButtons.OK,

MessageBoxIcon.Information); }}}

Utworzenie nowego obwieszczenia z tekstem jednolitym

W tym celu należy wywołać metodę CreateNewConsolidation().  

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\");

var fileName = controller.CreateNewConsolidation(); if (fileName!=null){ var frm = Controller.OpenFile(fileName); if (frm != null) {

frm.Width = 1000; frm.Height = 600; frm.WindowState = FormWindowState.Maximized;

       if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

       MessageBox.Show("Teraz trzeba zapisać dokument do

EOD!",Application.ProductName,MessageBoxButtons.OK,

MessageBoxIcon.Information); }}}

Integracja z Bazą Aktów Własnych

Publikacja plików ZIPX w BAW

W celu opublikowania aktu prawnego w formacie ZIPX, należy wywołać metodę 

PublishInBAW(string zipxFilePath)w parametrze przekazując ścieżkę do pliku ZIPX, który ma zostać opublikowany w BAW. 

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\");

 

 using (var dlg = new OpenFileDialog() {

    Filter = "Plik Edytora Aktów Prawnych XML (*.zipx)|*.zipx"}) {     if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) {        controller.PublishInBAW(dlg.FileName);

   }

  }

Publikacja plików PDF w BAW

W celu opublikowania aktów prawnych w postaci plików PDF, należy wywołać metodę 

PublishInBAW(string path, params string[] attachments)w parametrze przekazując ścieżkę do pliku PDF dokumentu głównego oraz opcjonalną listą załączników do tego aktu.

Zarządzanie BAW

W celu wyświetlenia formularza zarządzania Bazą Aktów Własnych, należy wywołać metodę ShowBawForm(). Po wprowadzeniu nazwy użytkownika i hasła do modułu komunikacyjnego, uruchomiona zostanie przeglądarka internetowa na stronie prawomiejscowe.pl.

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\"); controller.ShowBawForm();

 

clip0807

 

Wyświetlanie opcji programu

W celu wyświetlenia okna z opcjami programu należy wywołać metodę GetOptionsForm. Metoda przyjmuje parametr wskazujący czy okno ma zostać wyświetlone jako okno modalne. Jeżeli okno wyświetlane jest jako okno modalne, to zwracany wynik metody to null. Jeżeli parametr modal ustawiony jest jako false, to zwracana jest instancja okna opcji programu w celu wyświetlania jako okno potomne w aplikacji EOD. 

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\"); controller.GetOptionsForm(true);

var controller = LegislatorController.CreateController ("C:\\Program Files\\Legislator\\");

var optionsForm = controller.GetOptionsForm(false); optionsForm.MdiParent = this; optionsForm.Show();