Arxivga qaytish
IV. Mijoz loyihalari va logistika platformalariqo'shimchanoma'lummijoz anonimlashtirilgan

iikoFront POS plagini — maxsus veb-server (C#)

iikoFront POS (API V8) uchun maxsus plagin: POS jarayonining ichida o'zining HTTP serverini ishga tushiradi va kassani Restaurant chain (UZ) / Restaurant chain (UZ) yetkazib berish backendlariga, Yandex Eats to'lovlariga hamda oshxona "tablosiga" ulaydi.

Holat
noma'lum
Davr
n/a
AI sessiyalar
Stek
Tillar
C#XAML
Freymvorklar · Infra
iiko Resto.Front.Api V8ASP.NET Web API (self-host)Entity Framework 6System.Reactive (Rx)Newtonsoft.JsonSystem.Data.SQLiteDuckDB.NETWPF
§01

Umumiy ko'rinish

  • Bu nima: proprietar iikoFront POS tizimi (restoran kassasi) uchun kengaytma plagini. Ochib qo'yilgan papka — bu *tayyor build artefakti* (DLL + bog'liqliklar + NuGet paketi), manba kodi emas. Asosiy klass — Resto.Front.Api.CustomWebserver.CustomWebserver, API versiyasi V8, litsenziya moduli 19011701 (manifest.xml ga qarang). Plagin POS ichida o'zi hostlaydigan Web API'ni ishga tushiradi va kassani pitseriya/yetkazib berish tarmog'ining tashqi xizmatlari bilan integratsiya qiladi.
  • Turi / holati / roli: library (POS plagini) / holati noma'lum (git yo'q va "tiriklik"ni baholash uchun manba kodi ham yo'q) / roli noma'lum — mualliflik tasdiqlanmagan (.git yo'q). Papka foydalanuvchining shaxsiy dev muhitida joylashgan va uning Restaurant chain (UZ)/Restaurant chain (UZ) proyekt ekotizimiga bog'langan, biroq kodda hissa qo'shganiga to'g'ridan-to'g'ri dalil yo'q.
  • Faol davri: git sanalari mavjud emas. Artefakt 2025-04-12 da build qilingan (asosiy DLL va .nupkg vaqt belgisi); paket versiyasi 1.0.0. PDB build yo'lini ko'rsatadi — C:\projects\front.api.sdk\sample\new_webserver\Resto.Front.Api.SamplePlugin\, ya'ni plagin rasmiy iiko new_webserver namunasidan (SamplePlugin) olib kengaytirilgan.
§02

Stek

  • Tillar: C# (.NET Framework 4.7.2), XAML (WPF — POS ekranidagi OTP kiritish oynasi).
  • Freymvork/kutubxonalar (paketdagi haqiqiy DLL'lar va assembly ichidagi satrlardan):
  • Resto.Front.Api.V8 v8.7.6032 — iikoFront SDK (.nuspec dagi yagona e'lon qilingan bog'liqlik).
  • ASP.NET Web API self-host (System.Web.Http.SelfHost, HttpSelfHostServer, HttpSelfHostConfiguration, MapHttpRoute) — POS jarayoni ichidagi o'z HTTP serveri.
  • System.Reactive (Rx) + System.Interactive — POS hodisalariga obuna (OrderChanged, BeforeOrderBill).
  • Newtonsoft.Json (+ Bson) — serializatsiya (JsonConvert.SerializeObject, JToken).
  • System.Data.SQLite (EF6/Linq + native SQLite.Interop.dll x86/x64 uchun) — lokal saqlash.
  • DuckDB.NET (Bindings + Data) — o'rnatilgan analitik ombor (DuckOrderData satri).
  • EntityFramework 6 (+ EntityFramework.SqlServer, System.Data.SqlServerCe).
  • NuGet.* (Packaging/Configuration/Versioning) — ko'rinishidan plaginni paketlash/yangilash uchun ishlatilgan.
  • Infra/deploy: NuGet paketi Resto.Front.Api.CustomWebserver.V8.1.0.0.nupkg sifatida tarqatiladi (iiko plagin formati, target net472). iikoFront ga o'rnatiladi. CI/Docker yo'q.
  • Ma'lumotlar: lokal SQLite (skanerlangan buyurtmalar jadvali — UpdateOrInsertScannedOrder, selectLastScannedOrders, ScannedDate maydoni); DuckDB ixtiyoriy. Tashqi ma'lumotlar HTTP orqali yetkazib berish backendlaridan tortiladi.
  • E'tiborga molik tooling: lokalizatsiya (ru-RU/...resources.dll), WPF UI, token autentifikatsiyasi.
§03

Nima qilindi

Git tarixi yo'q — xronologiya kompilyatsiya qilingan assembly mazmuni (tip/metod simvollari) va *.dll.config konfiguratsiyasidan qayta tiklangan.

  • POS ichidagi self-host Web API. OrdersController : ApiController, marshrutlar MapHttpRoute orqali; endpointlar: GetKitchenOrders, GetOrderById, ReturnTabloOrders.
  • So'rovlar uchun token autentifikatsiyasi. Maxsus Helpers.AuthenticationHandler : DelegatingHandler (SendAsync), ValidateToken, token ApiToken sozlamasidan olinadi (konfigda 6bbbcb4e-...).
  • POS ekranidagi OTP oynasi. WPF OtpWindow (CheckCode/CheckCodeClick, CancellationToken bilan async CheckCode) — bir martalik kodni kiritish va uni backendga solishtirib tekshirish.
  • Chek chiqarishga hook. OnBeforeOrderBill (BeforeOrderBill ga Rx orqali obuna) — chek logikasini kengaytirish/takrorlash: ExtendBillCheque, DuplicatedCheque, RoundChequeNumber, RoundNumberCongratulation (chek raqami "yumaloq" bo'lganda "tabriklash").
  • Oshxona "tablosi". TabloOrder/TabloSplittedOrders, ReturnTabloOrders; yangi buyurtmani http://127.0.0.1:12123/new_order manzilidagi lokal tabloga yuborish; pishirish statusini boshqarish (Cooking/Cooked, ChangeKitchenOrderItemsProcessingStatus, intervallar DefaultCookedInterval/CookingTimePeriod).
  • Yetkazib berish/to'lov backendlari bilan integratsiya. DLL ichidagi satrlar: https://api.choparpizza.uz, https://api.restaurant-chain.uz; sozlamalar YandexPaymentId, EatsApiToken (Yandex Eats to'lovlari/buyurtmalari).
  • Hajm: baholab bo'lmaydi — git yo'q. Asosiy DLL ~45 KB (SDK atrofidagi ixcham glue-plagin).
§04

Texnik chellenjlar

Faqat assembly/config bilan tasdiqlangan narsalar.

  • POS jarayoni ichidagi HTTP serverSystem.Web.Http.SelfHost (HttpSelfHostServer + HttpSelfHostConfiguration, MapHttpRoute). Ko'rsatadi: klassik ASP.NET hostlash o'rniga web API'ni begona host jarayoniga (desktop kassaga) joylashtira olish qobiliyati.
  • Web API pipeline orqali autentifikatsiya → tayyor middleware o'rniga maxsus DelegatingHandler.SendAsync + ValidateToken. Pattern: Web API pipeline'ini past darajada kengaytirish.
  • Rx orqali POS hodisa modeliOrderChanged/BeforeOrderBill ga obunalar (System.Reactive), OnBeforeOrderBill dagi reaksiya. Proprietar SDK'ning reaktiv hodisa oqimlari bilan ishlashni ko'rsatadi.
  • Maxsus chek logikasiBeforeOrderBill ni ushlab qolib chekni kengaytirish/takrorlash va raqamni yumaloqlash (RoundChequeNumber). Kassaning fiskal oqimiga domen darajasidagi integratsiya — bu jiddiy va "xavfli" soha (chop etish/cheklar).
  • Lokal buyurtma navbati/jurnali → "skanerlangan" buyurtmalar upserti bilan SQLite (UpdateOrInsertScannedOrder/selectLastScannedOrders), kassa va oshxona tablosi orasidagi offline barqarorlik uchun.
  • Native interopSQLite.Interop.dll ning x86/x64 uchun alohida buildlari, bu Windows POS muhitida native bog'liqliklarning haqiqiy deploy qilinganini ko'rsatadi.
§05

AI yordamida ishlab chiqish

  • Topilgan sessiyalar: 0. Lokal Claude Code sessiyalar katalogida resto/CustomWebServer ga mos keladigan papka yo'q.
  • AI bilan nima qilingan: ma'lumot yo'q.
  • AI-vorkflow patternlari: yo'q.
  • Sessiyalar yo'q.
§06

Yutuqlar va metrikalar

Artefakt/config asosida, hech qanday taxminsiz:

  • iikoFront POS ning 3+ tashqi tizim bilan integratsiyasi: Restaurant chain (UZ) API, Restaurant chain (UZ) API, Yandex Eats (to'lovlar/buyurtmalar) + lokal oshxona tablosi.
  • self-host Web API'da 3 ta ochiq REST endpoint (GetKitchenOrders, GetOrderById, ReturnTabloOrders).
  • x86 va x64 native SQLite bog'liqliklarini qo'llab-quvvatlash; ru-RU lokalizatsiyasi.
  • iiko SDK V8.7.6032 ga bog'liqlik, target .NET Framework 4.7.2.
  • Aniq masshtab metrikalari yo'q (buyurtmalar hajmi, yuklama) — yopiq proprietar kontekst.
Hozirda

Senior / Staff muhandis rollari va tanlab olingan frilansga ochiqman — prodakshn AI, platforma va full-stack ishlar.

Bog'lanish