コード例 #1
0
ファイル: ApiPSU.cs プロジェクト: OlehR/UniCS.TM
        public ApiPSU()
        {
            Bl = new BL();
            Global.OnReceiptCalculationComplete += (wareses, pIdReceipt) =>
            {
                FileLogger.WriteLogMessage($"OnReceiptCalculationComplete =>Start", eTypeLog.Expanded);
                foreach (var el in wareses)
                {
                    FileLogger.WriteLogMessage($"OnReceiptCalculationComplete Promotion=>{el.GetStrWaresReceiptPromotion.Trim()} \n{el.NameWares} - {el.Price} Quantity=> {el.Quantity} SumDiscount=>{el.SumDiscount}", eTypeLog.Expanded);
                }

                OnProductsChanged?.Invoke(wareses.Select(s => GetProductViewModel(s)), Global.GetTerminalIdByIdWorkplace(pIdReceipt.IdWorkplace));
                FileLogger.WriteLogMessage($"OnReceiptCalculationComplete =>End", eTypeLog.Expanded);
            };

            Global.OnSyncInfoCollected += (SyncInfo) =>
            {
                OnSyncInfoCollected?.Invoke(SyncInfo);
                FileLogger.WriteLogMessage($"OnSyncInfoCollected Status=>{SyncInfo.Status} StatusDescription=>{SyncInfo.StatusDescription}", eTypeLog.Expanded);
            };

            Global.OnStatusChanged += (Status) => OnStatusChanged?.Invoke(Status);

            Global.OnChangedStatusScale += (Status) => OnChangedStatusScale?.Invoke(Status);

            Global.OnClientChanged += (client, guid) =>
            {
                OnCustomerChanged?.Invoke(GetCustomerViewModelByClient(client), Global.GetTerminalIdByIdWorkplace(guid));
                FileLogger.WriteLogMessage($"Client.Wallet=> {client.Wallet} SumBonus=>{client.SumBonus} ", eTypeLog.Expanded);
            };

            Global.OnClientWindows += (pTerminalId, pTypeWindows, pMessage) =>
            {
                TerminalCustomWindowModel TCV = null;
                if (pTypeWindows == eTypeWindows.LimitSales)
                {
                    TCV = new TerminalCustomWindowModel()
                    {
                        TerminalId   = Global.GetTerminalIdByIdWorkplace(pTerminalId),
                        CustomWindow = new CustomWindowModel()
                        {
                            Caption        = "",
                            Text           = pMessage,
                            AnswerRequired = false,
                            Type           = CustomWindowInputType.Buttons,
                            Buttons        = new List <CustomWindowButton>()
                            {
                                new CustomWindowButton()
                                {
                                    ActionData = "Ok", DisplayName = "Ok"
                                }
                            }
                        }
                    };
                }
                OnShowCustomWindow?.Invoke(TCV);
                string sTCV = JsonConvert.SerializeObject(TCV);
                FileLogger.WriteLogMessage($"OnClientWindows => {pTypeWindows} TerminalId=>{pTerminalId}{Environment.NewLine} Message=> {pMessage} {Environment.NewLine} TCV=>{sTCV}", eTypeLog.Expanded);
            };
        }
コード例 #2
0
ファイル: ApiPSU.cs プロジェクト: OlehR/UniCS.TM
 public override async Task RequestSyncInfo(bool pIsFull = false)
 {
     // TODO: check status
     try
     {
         var res = await Bl.SyncDataAsync(pIsFull);
     }
     catch (Exception ex)
     {
         var SyncInfo = new SyncInformation()
         {
             Status = eSyncStatus.SyncFinishedError, StatusDescription = ex.Message, SyncData = ex
         };
         FileLogger.WriteLogMessage($"OnSyncInfoCollected Status=>{SyncInfo.Status} StatusDescription=>{SyncInfo.StatusDescription}", eTypeLog.Expanded);
         OnSyncInfoCollected?.Invoke(SyncInfo);
     }
 }