iiko / front.api.sdk

iikoFront Api SDK (part of iikoRMS)
34 stars 22 forks source link

Проблема интеграции плагина с iiko front, iiko waiter #40

Closed HakobyanAram closed 5 years ago

HakobyanAram commented 5 years ago

Добрый день. Мы пишем плагин для нашей системы лояльности. Как я понимаю для сканирования нашей карты мы должны использовать iikoWaiter. Как я понял из разговора с разработчиком iikoWaiter, для сканирования карты используется следующий сценарий

  1. iikoWaiter сканирует нашу карту
  2. Плагин iikoWaiter посылает запрос iikofront на добавления гостя в базу данных.
  3. Если Гость не существует то iikofront добавляет гостя.
  4. Затем нам надо подписаться на уведомление о сканирование карты, при помощи:
    • либо плагин iikoWaiter посылает HTTP request UserCheckin
    • либо iikofront дложен послать уведомления В документации iikofront я не нашел такого уведомления и решил имплементировать получения запроса от iikoWaiter с использованием фрейворка Nancy .

Вот код: public Plugin() { Debugger.Launch(); PluginContext.Log.Info("Initializing SamplePlugin"); subscriptions.Push(new Buttons()); // После добавления этих строк появляется исключения в Visual studio string uriString = "http://localhost:1234"; Uri[] baseUris = new Uri[] { new Uri(uriString) }; new NancyHost(baseUris).Start(); } В о-первых из-за этого исключения наш плагин не входитрежим debug, во-вторых не появляется созданная мною кнопка в меню "дополнения"

Вот лог из Visual studio Красным фоном выделено исключение: ` 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0b77a5c561934e089\mscorlib.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Host.exe'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V4.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V5.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V6.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Framework.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0b77a5c561934e089\System.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0b77a5c561934e089\System.Core.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\log4net\v4.0_1.2.13.01b44e1d426115821\log4net.dll'. Module was built without symbols. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0b03f5f7f11d50a3a\System.Configuration.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0b77a5c561934e089\System.Xml.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'Anonymously Hosted DynamicMethods Assembly'. The thread 0x1498 has exited with code 0 (0x0). : [19:13:30,659] INFO [ 1] - ================================================================================ : [19:13:30,671] INFO [ 1] - Resto.Front.Api.Host ver. 6.3.3014.0 : [19:13:30,672] INFO [ 1] - ================================================================================ : [19:13:30,672] INFO [ 1] - Host process Loona (6688) for “ikko.loona.Plugin” class from “E:\Projects\OtherUserProjects\Gev\Iiko-plugin\bin\Debug\Loona.dll” assembly is running in console mode. : [19:13:30,715] INFO [ 1] - Plugin assembly info:

Iiko-plugin v1.0.0.0, (Loona.dll v1.0.0.0, Iiko-plugin) 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Domain 2): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0b77a5c561934e089\mscorlib.dll'. Symbols loaded. : [19:13:30,859] INFO [ 1] - Created plugin domain “Loona” using “E:\Projects\OtherUserProjects\Gev\Iiko-plugin\bin\Debug\Loona.dll.config” 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Host.exe'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V4.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V5.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V6.dll'. Symbols loaded. : [19:13:30,879] INFO [ 1] - Registering ipc channel... 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0b77a5c561934e089\System.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Remoting\v4.0_4.0.0.0b77a5c561934e089\System.Runtime.Remoting.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0b03f5f7f11d50a3a\System.Configuration.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Ipc.dll'. Symbols loaded.

Exception thrown: 'System.Runtime.Remoting.RemotingException' in System.Runtime.Remoting.dll

Exception thrown: 'System.Runtime.Remoting.RemotingException' in mscorlib.dll

: [19:13:31,389] WARN [ 1] - Failed to connect to an IPC Port: The system cannot find the file specified.

: [19:13:31,392] INFO [ 1] - Unregistering ipc channel... The thread 0x83c has exited with code 0 (0x0). : [19:13:31,397] INFO [ 1] - Unloading plugin domain... 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Domain 2): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0b77a5c561934e089\mscorlib.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Host.exe' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V4.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V5.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V6.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0b77a5c561934e089\System.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Remoting\v4.0_4.0.0.0b77a5c561934e089\System.Runtime.Remoting.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0b03f5f7f11d50a3a\System.Configuration.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Ipc.dll' : [19:13:31,444] INFO [ 1] - Shutdown completed The program '[6688] Resto.Front.Api.Host.exe' has exited with code 0 (0x0). `

vcpp commented 5 years ago

Как я понял из разговора с разработчиком iikoWaiter, ... iikofront дложен послать уведомления В документации iikofront я не нашел такого уведомления

Я не понял, о каком уведомлении идёт речь. Поскольку мы имеем дело с кодом, у любых типов/событий/уведомлений есть названия. Думаю, лучше уточнить эти идентификаторы у тех, кто впервые упомянул некие уведомления, и дальше указывать их.

// После добавления этих строк появляется исключения в Visual studio

  1. Отформатируйте код, криво же получилось, нечитабельно, всё в одну строку слиплось.
  2. Неочевидно, после добавления каких именно строк проявляется «проблема».

Красным фоном выделено исключение

Не вижу. Лучше цитировать только интересный кусочек, а портянку логов целиком заворачивать в тэг <details> или прикреплять отдельными файлами.

В о-первых из-за этого исключения наш плагин не входитрежим debug, во-вторых не появляется созданная мною кнопка в меню "дополнения"

Вообще говоря, проблемы с отладчиком не относятся к iikoFront API, эти вопросы к IDE. В приведённом куске кода Debugger.Launch() стоит в самом начале конструктора, и у него, казалось бы, нет причин не сработать. Наши рекомендации по отладке можно почитать тут. Про кнопку в меню «Дополнения» кода не видно, говорить не о чем.

Постарайтесь как можно уже сформулировать проблему с iikoFront API, отбросив всё лишнее.

HakobyanAram commented 5 years ago

Я не понял, о каком уведомлении идёт речь. Поскольку мы имеем дело с кодом, у любых типов/событий/уведомлений есть названия. Думаю, лучше уточнить эти идентификаторы у тех, кто впервые упомянул некие уведомления, и дальше указывать их.

Мы сами конкретно не знаем, так как никто толком не может обьяснить и в документации не находим. Но могу пояснить что нам надо. На разработанном для iiko Front плагине каким нибудь образом надо получить результат сканирования (то есть ID нашей карты) от iiko Waiter. Как мы поняли, когда сканнер iiko Waiter 5 сканирует нашу карту то посылает запрос на плагин iiko Waiter установленный на iiko front, плагин в свою очередь посылает запрос о закрытие счета на iiko front. В этом запросе плагин iiko Waiter должен передавать такие параметры как номер стола и ID нашей карты. При разговоре с разработчиками iiko Waiter они упомянали событие под названием OrderChanged . Но никакого обьяснения нет и не совсем понятно как можно получить из этого события номер нашей карты.

Отформатируйте код, криво же получилось, нечитабельно, всё в одну строку слиплось. Неочевидно, после добавления каких именно строк проявляется «проблема».

public Plugin() 
{
   Debugger.Launch(); 
   PluginContext.Log.Info("Initializing SamplePlugin"); 
   subscriptions.Push(new Buttons()); 

   // После добавления нижеуказанных трех строк появляется исключения в Visual studio
   string uriString =    "http://localhost:1234";
   Uri[] baseUris = new Uri[] { new Uri(uriString) }; 
   new NancyHost(baseUris).Start();
}

Красным фоном выделено исключение Не вижу. Лучше цитировать только интересный кусочек, а портянку логов целиком заворачивать в тэг details или прикреплять отдельными файлами.

Exception thrown: 'System.Runtime.Remoting.RemotingException' in System.Runtime.Remoting.dll
Exception thrown: 'System.Runtime.Remoting.RemotingException' in mscorlib.dll
'Resto.Front.Api.Host.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Host.exe'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V4.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V5.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V6.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Framework.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\log4net\v4.0_1.2.13.0__1b44e1d426115821\log4net.dll'. Module was built without symbols. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Resto.Front.Api.Host.exe): Loaded 'Anonymously Hosted DynamicMethods Assembly'. The thread 0x1498 has exited with code 0 (0x0). : [19:13:30,659] INFO [ 1] - ================================================================================ : [19:13:30,671] INFO [ 1] - Resto.Front.Api.Host ver. 6.3.3014.0 : [19:13:30,672] INFO [ 1] - ================================================================================ : [19:13:30,672] INFO [ 1] - Host process Loona (6688) for “ikko.loona.Plugin” class from “E:\Projects\OtherUserProjects\Gev\Iiko-plugin\bin\Debug\Loona.dll” assembly is running in console mode. : [19:13:30,715] INFO [ 1] - Plugin assembly info: Iiko-plugin v1.0.0.0, (Loona.dll v1.0.0.0, Iiko-plugin) 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Domain 2): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Symbols loaded. : [19:13:30,859] INFO [ 1] - Created plugin domain “Loona” using “E:\Projects\OtherUserProjects\Gev\Iiko-plugin\bin\Debug\Loona.dll.config” 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Host.exe'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V4.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V5.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V6.dll'. Symbols loaded. : [19:13:30,879] INFO [ 1] - Registering ipc channel... 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Remoting\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Remoting.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Symbols loaded. 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Loaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Ipc.dll'. Symbols loaded. Exception thrown: 'System.Runtime.Remoting.RemotingException' in System.Runtime.Remoting.dll Exception thrown: 'System.Runtime.Remoting.RemotingException' in mscorlib.dll : [19:13:31,389] WARN [ 1] - Failed to connect to an IPC Port: The system cannot find the file specified. : [19:13:31,392] INFO [ 1] - Unregistering ipc channel... The thread 0x83c has exited with code 0 (0x0). : [19:13:31,397] INFO [ 1] - Unloading plugin domain... 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Domain 2): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Host.exe' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V4.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V5.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.V6.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Remoting\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Remoting.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll' 'Resto.Front.Api.Host.exe' (CLR v4.0.30319: Loona): Unloaded 'C:\Program Files\iiko\iikoRMS\Front.Net\Resto.Front.Api.Ipc.dll' : [19:13:31,444] INFO [ 1] - Shutdown completed The program '[6688] Resto.Front.Api.Host.exe' has exited with code 0 (0x0).
vcpp commented 5 years ago

Сами разобрались? Напишите, в чём причина была, вдруг ещё кто-то столкнётся :-)