コード例 #1
0
        /// <summary>
        /// Add update tier level
        /// </summary>
        /// <param name="pumpIds"></param>
        /// <param name="tierId"></param>
        /// <param name="levelId"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public TierLevelResponse AddUpdateTierLevel(List <int> pumpIds, int tierId, int levelId, out ErrorMessage error)
        {
            error = new ErrorMessage();
            var result = new TierLevelResponse
            {
                Tiers  = GetAllTiers(),
                Levels = GetAllLevels()
            };

            object i;
            string tierLevel    = "";
            bool   pumpSelected = false;
            var    store        = CacheManager.GetStoreInfo();
            var    offSet       = store?.OffSet ?? 0;
            float  timeIn       = 0;

            for (i = 1; (int)i <= (int)Variables.gPumps.PumpsCount; i = (int)i + 1)
            {
                if (tierId == 0)
                {
                    //        MsgBox ("Please select Tier!") '21
                    //MsgBoxStyle temp_VbStyle = (int)MsgBoxStyle.OkOnly + MsgBoxStyle.Critical;
                    //Chaps_Main.DisplayMessage(this, (short)21, temp_VbStyle, null, (byte)0);
                    error = new ErrorMessage
                    {
                        MessageStyle = _resourceManager.CreateMessage(offSet, 44, 21, null, CriticalOkMessageType)
                    };
                    return(null);
                }
                if (levelId == 0)
                {
                    //        MsgBox ("Please select Level!") '22
                    //MsgBoxStyle temp_VbStyle2 = (int)MsgBoxStyle.OkOnly + MsgBoxStyle.Critical;
                    //Chaps_Main.DisplayMessage(this, (short)22, temp_VbStyle2, null, (byte)0);
                    error = new ErrorMessage
                    {
                        MessageStyle = _resourceManager.CreateMessage(offSet, 44, 22, null, CriticalOkMessageType)
                    };
                    return(null);
                }

                switch (tierId + levelId.ToString())
                {
                case "11":
                    tierLevel = "0";
                    break;

                case "12":
                    tierLevel = "1";
                    break;

                case "21":
                    tierLevel = "2";
                    break;

                case "22":
                    tierLevel = "3";
                    break;
                }

                if (pumpIds.Contains((int)i))
                {
                    pumpSelected = true;
                    //lblinformation.Caption = "Setting in Process... Please Wait..." 'Resource.DisplayCaption(lblinformation.Tag, Me.Tag, , 2) '24-4
                    //lblinformation.Text = Chaps_Main.Resource.DisplayCaption(System.Convert.ToInt16(lblinformation.Tag), System.Convert.ToInt16(this.Tag), null, (short)4); //24-4
                    result.PageCaption = _resourceManager.CreateCaption(offSet, 24, 44, null, 4);

                    if (TCPAgent.Instance.PortOpened)
                    {
                        var response  = "";
                        var strRemain = "";


                        var cmd = "STL" + Strings.Right("00" + System.Convert.ToString(i), 2) + tierLevel;
                        TCPAgent.Instance.Send_TCP(ref cmd, true);
                        if (timeIn > DateAndTime.Timer)
                        {
                            timeIn = 0; //reset on midnight
                        }
                        else
                        {
                            timeIn = (float)DateAndTime.Timer;
                        }

                        while (!(DateAndTime.Timer - timeIn > Variables.gPumps.CommunicationTimeOut))
                        {
                            var strBuffer = System.Convert.ToString(TCPAgent.Instance.NewPortReading);
                            WriteToLogFile("TCPAgent.PortReading: " + strBuffer + " from waiting STL" + Strings.Right("00" + System.Convert.ToString(i), 2));
                            if (!string.IsNullOrEmpty(strBuffer))
                            {
                                modStringPad.SplitResponse(strBuffer, "STL" + Strings.Right("00" + System.Convert.ToString(i), 2), ref response, ref strRemain); //strBuffer<>""
                                if (!string.IsNullOrEmpty(response))                                                                                             //got what we are waiting
                                {
                                    TCPAgent.Instance.PortReading = strRemain;                                                                                   //& ";" & TCPAgent.PortReading
                                    WriteToLogFile("modify TCPAgent.PortReading from Get Totalizer: " + strRemain);
                                    break;
                                }
                            }
                            Variables.Sleep(100);
                            if (DateAndTime.Timer < timeIn)
                            {
                                timeIn = (float)DateAndTime.Timer;
                            }
                        }


                        if (Strings.Left(response, 7) != "STL" + Strings.Right("00" + System.Convert.ToString(i), 2) + "OK")
                        {
                            string tempCommandRenamed = "ENDPOS";
                            TCPAgent.Instance.Send_TCP(ref tempCommandRenamed, true);
                            //  lblinformation.Caption = "Setting TierLevel failed !" 'Resource.DisplayCaption(lblinformation.Tag, Me.Tag, , 2) '24-3
                            //(System.Convert.ToInt16(lblinformation.Tag), System.Convert.ToInt16(this.Tag), null, (short)3); //24-3
                            result.PageCaption = _resourceManager.CreateCaption(offSet, 24, 44, null, 3);
                            return(result);
                        }


                        _fuelPumpService.UpdateTierLevelForPump((int)i, tierId, levelId);



                        Variables.gPumps.get_Pump(System.Convert.ToByte(i)).TierID = (byte)tierId;

                        Variables.gPumps.get_Pump(System.Convert.ToByte(i)).LevelID = (byte)levelId;


                        if (Variables.Pump[(int)i].cashUP == null)
                        {
                            Variables.Pump[(int)i].cashUP = new float[10];
                        }

                        if (Variables.Pump[(int)i].creditUP == null)
                        {
                            Variables.Pump[(int)i].creditUP = new float[10];
                        }

                        if (Variables.Pump[(int)i].Stock_Code == null)
                        {
                            Variables.Pump[(int)i].Stock_Code = new string[10];
                        }


                        short j;
                        for (j = 1; j <= Variables.gPumps.get_PositionsCount(System.Convert.ToByte(i)); j++)
                        {
                            Variables.Pump[(int)i].cashUP[j] = Variables.gPumps.get_FuelPrice(System.Convert.ToByte(Variables.gPumps.get_Assignment(System.Convert.ToByte(i), (byte)j).GradeID), (byte)(Conversion.Val(tierId)), (byte)(Conversion.Val(levelId))).CashPrice;

                            Variables.Pump[(int)i].creditUP[j] = Variables.gPumps.get_FuelPrice(System.Convert.ToByte(Variables.gPumps.get_Assignment(System.Convert.ToByte(i), (byte)j).GradeID), (byte)(Conversion.Val(tierId)), (byte)(Conversion.Val(levelId))).CreditPrice;
                        }
                    }
                    else
                    {
                        //            lblinformation.Caption = "Please select pump and corresponding Tier/Level, then press 'SET TO PUMP' button to set!"  '24-1
                        //lblinformation.Text = Chaps_Main.Resource.DisplayCaption(System.Convert.ToInt16(lblinformation.Tag), System.Convert.ToInt16(this.Tag), null, (short)1); //24-1
                        result.PageCaption    = _resourceManager.CreateCaption(offSet, 24, 44, null, 1);
                        result.PumpTierLevels = GetPumpsTierLevel();
                        //MsgBox "No TCP connection to Host !!!", vbCritical
                        //MsgBoxStyle temp_VbStyle3 = (int)MsgBoxStyle.OkOnly + MsgBoxStyle.Critical;
                        //Chaps_Main.DisplayMessage(this, (short)92, temp_VbStyle3, null, (byte)0);
                        error.MessageStyle = new MessageStyle
                        {
                            Message     = _resourceManager.GetResString(offSet, 3892),
                            MessageType = MessageType.OkOnly
                        };
                        return(result);
                    }
                }
            }

            if (!pumpSelected) //if no pump is selected
            {
                //    MsgBox ("Please select Pump!") '23
                //Chaps_Main.DisplayMessage(this, (short)23, temp_VbStyle4, null, (byte)0);
                error = new ErrorMessage
                {
                    MessageStyle = _resourceManager.CreateMessage(offSet, 44, 23, null, CriticalOkMessageType)
                };
                //    lblinformation.Caption = "Please select pump and corresponding Tier/Level, then press 'SET TO PUMP' button to set!" '24-1
                //lblinformation.Text = Chaps_Main.Resource.DisplayCaption(System.Convert.ToInt16(lblinformation.Tag), System.Convert.ToInt16(this.Tag), null, (short)1); //24-1
                result.PageCaption    = _resourceManager.CreateCaption(offSet, 24, 44, null, 1);
                result.PumpTierLevels = GetPumpsTierLevel();
                return(result);
            }
            //    lblinformation.Caption = "Setting TierLevel is Done successfully !" 'Resource.DisplayCaption(lblinformation.Tag, Me.Tag, , 2) '24-2
            //lblinformation.Text = Chaps_Main.Resource.DisplayCaption(System.Convert.ToInt16(lblinformation.Tag), System.Convert.ToInt16(this.Tag), null, (short)2); //24-2
            result.PageCaption    = _resourceManager.CreateCaption(offSet, 24, 44, null, 2);
            result.PumpTierLevels = GetPumpsTierLevel();
            return(result);
        }