wxr
2024-09-03 179c377723a79384efed619e0a5880390998035e
HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
@@ -10,7 +11,41 @@
    public class InverterJinmaoHistroyPage : FrameLayout
    {
        InverterJinmaoHistroyPage bodyView;
        Function device;
        Function function;
        FrameLayout infoView1;
        EchartsOption_Histogram echartOption1;
        MyEchartsViewOn infoView1_EchartsView;
        Button infoView1_Date_Day;
        Button infoView1_Date_Month;
        Button infoView1_Date_Year;
        Button infoView1_DateInfo_PreClickButton;
        Button infoView1_DateInfo_DateTextButton;
        Button infoView1_DateInfo_NextClickButton;
        Button infoView1_DateInfo_NextIconButton;
        Button infoView1_DateInfo_PreIconButton;
        QueryType queryType1 = QueryType.day_hour;
        int queryTime_Day1 = DateTime.Now.Day;
        int queryTime_Month1 = DateTime.Now.Month;
        int queryTime_Year1 = DateTime.Now.Year;
        string queryTimeString1 = DateTime.Now.ToString("yyyy/MM/dd");
        FrameLayout infoView2;
        MyEchartsViewOn infoView2_EchartsView;
        EchartsOption_Histogram echartOption2;
        Button infoView2_Date_Day;
        Button infoView2_Date_Month;
        Button infoView2_Date_Year;
        Button infoView2_DateInfo_PreClickButton;
        Button infoView2_DateInfo_DateTextButton;
        Button infoView2_DateInfo_NextClickButton;
        Button infoView2_DateInfo_NextIconButton;
        Button infoView2_DateInfo_PreIconButton;
        QueryType queryType2 = QueryType.day_hour;
        int queryTime_Day2 = DateTime.Now.Day;
        int queryTime_Month2 = DateTime.Now.Month;
        int queryTime_Year2 = DateTime.Now.Year;
        string queryTimeString2 = DateTime.Now.ToString("yyyy/MM/dd");
        /// <summary>
@@ -18,10 +53,10 @@
        /// </summary>
        MyEchartsViewOn tempEchartsView;
        public InverterJinmaoHistroyPage(Function function)
        public InverterJinmaoHistroyPage(Function deviceFunction)
        {
            bodyView = this;
            device = function;
            function = deviceFunction;
        }
        public void LoadPage()
@@ -149,7 +184,7 @@
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
                TextAlignment = TextAlignment.Center,
                Text = "2024-8-12",
                Text = DateTime.Now.ToString("yyyy-MM-dd"),
                TextColor = CSS_Color.FirstLevelTitleColor,
                IsBold = true,
                TextSize = 16,
@@ -169,6 +204,7 @@
            var infoView1_DateInfo_NextClickButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6 -32),
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView1_DateInfoView.AddChidren(infoView1_DateInfo_NextClickButton);
@@ -185,7 +221,7 @@
            var echartOption = new EchartsOption_Histogram();
            echartOption.xTitle = "时间";
            echartOption.yTitle = "温度(℃)";
            echartOption.yTitle = "电量(kw)";
            echartOption.InitXdataText(new List<string>()
            {
                "21","22","23","24","25","26","26","27","28","29",
@@ -353,7 +389,7 @@
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
                TextAlignment = TextAlignment.Center,
                Text = "2024-8-12",
                Text = DateTime.Now.ToString("yyyy-MM-dd"),
                TextColor = CSS_Color.FirstLevelTitleColor,
                IsBold = true,
                TextSize = 16,
@@ -373,6 +409,7 @@
            var infoView2_DateInfo_NextClickButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6 -32),
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_NextClickButton);
@@ -389,7 +426,7 @@
            var echartOption2 = new EchartsOption_Histogram();
            echartOption2.xTitle = "时间";
            echartOption2.yTitle = "温度(℃)";
            echartOption2.yTitle = "电量(kw)";
            echartOption2.InitXdataText(new List<string>()
            {
                "21","22","23","24","25","26","26","27","28","29",
@@ -444,8 +481,965 @@
            {
                Height = Application.GetRealWidth(26)
            });
            initQueryButton();
        }
        /// <summary>
        /// 读取温度值历史数据
        /// hour=近24小时、day_hour =某日24小时、week=近一周、month = 近一月、custom_month=某年某月 y/M、custom_year=某年 y
        /// </summary>
        private void getTempHistory()
        {
            if (MainPage.NoLoginMode)
            {
                return;
            }
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            infoView1.AddChidren(loadPage);
            new System.Threading.Thread(() =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    switch (queryType1)
                    {
                        case QueryType.day_hour:
                            queryTimeString1 = queryTime_Year1.ToString() + "/" + queryTime_Month1 + "/" + queryTime_Day1;
                            break;
                        case QueryType.custom_month:
                            queryTimeString1 = queryTime_Year1.ToString() + "/" + queryTime_Month1;
                            break;
                        case QueryType.custom_year:
                            queryTimeString1 = queryTime_Year1.ToString();
                            break;
                    }
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType1.ToString(), function.deviceId, InverterJinmao_AttrEnum.pv_electricity.ToString(), queryTimeString1);
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                            List<string> vs = new List<string>();
                            foreach (var data in revertData)
                            {
                                vs.Add(data.fieldName);
                            }
                            echartOption1.InitXdataText(vs);
                            echartOption1.InitYdataText(revertData);
                            Application.RunOnMainThread(() =>
                            {
                                infoView1_EchartsView.ShowWithOption(echartOption1.InitOption());
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"history error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 获取用水量历史记录
        /// </summary>
        private void getWaterHistory()
        {
            if (MainPage.NoLoginMode)
            {
                return;
            }
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            infoView2.AddChidren(loadPage);
            new System.Threading.Thread(() =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    switch (queryType2)
                    {
                        case QueryType.day_hour:
                            queryTimeString2 = queryTime_Year2.ToString() + "/" + queryTime_Month2 + "/" + queryTime_Day2;
                            break;
                        case QueryType.custom_month:
                            queryTimeString2 = queryTime_Year2.ToString() + "/" + queryTime_Month2;
                            break;
                        case QueryType.custom_year:
                            queryTimeString2 = queryTime_Year2.ToString();
                            break;
                    }
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType2.ToString(), function.deviceId, InverterJinmao_AttrEnum.load_electricity.ToString(), queryTimeString2);
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                            List<string> vs = new List<string>();
                            foreach (var data in revertData)
                            {
                                vs.Add(data.fieldName);
                            }
                            echartOption2.InitXdataText(vs);
                            echartOption2.InitYdataText(revertData);
                            Application.RunOnMainThread(() =>
                            {
                                infoView2_EchartsView.ShowWithOption(echartOption2.InitOption());
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"history 2 error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        private void initQueryButton()
        {
            infoView1_DateInfo_DateTextButton.MouseUpEventHandler = (sender, e) =>
            {
                SetTempQureyDateDialog();
            };
            infoView1_DateInfo_PreClickButton.MouseUpEventHandler = (sender, e) => {
                var tempQueryDate = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1);
                if (queryType1 == QueryType.day_hour)
                {
                    tempQueryDate = tempQueryDate.AddDays(-1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1 && tempQueryDate.Day == 1)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month && tempQueryDate.Day == DateTime.Now.Day - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType1 == QueryType.custom_month)
                {
                    tempQueryDate = tempQueryDate.AddMonths(-1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType1 == QueryType.custom_year)
                {
                    tempQueryDate = tempQueryDate.AddYears(-1);
                    if (tempQueryDate.Year == 2023)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                queryTime_Year1 = tempQueryDate.Year;
                queryTime_Month1 = tempQueryDate.Month;
                queryTime_Day1 = tempQueryDate.Day;
                infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_DateInfo_NextIconButton.Visible = false;
            infoView1_DateInfo_NextClickButton.Enable = false;
            infoView1_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => {
                var tempQueryDate = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1);
                if (queryType1 == QueryType.day_hour)
                {
                    tempQueryDate = tempQueryDate.AddDays(1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1 && tempQueryDate.Day == 2)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = true;
                        infoView1_DateInfo_PreClickButton.Enable = true;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month && tempQueryDate.Day == DateTime.Now.Day)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType1 == QueryType.custom_month)
                {
                    tempQueryDate = tempQueryDate.AddMonths(1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 2)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = true;
                        infoView1_DateInfo_PreClickButton.Enable = true;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType1 == QueryType.custom_year)
                {
                    tempQueryDate = tempQueryDate.AddYears(1);
                    if (tempQueryDate.Year == 2023)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                queryTime_Year1 = tempQueryDate.Year;
                queryTime_Month1 = tempQueryDate.Month;
                queryTime_Day1 = tempQueryDate.Day;
                infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_Date_Day.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Day.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = true;
                infoView1_Date_Month.IsSelected = false;
                infoView1_Date_Year.IsSelected = false;
                queryType1 = QueryType.day_hour;
                infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_Date_Month.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Month.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = false;
                infoView1_Date_Month.IsSelected = true;
                infoView1_Date_Year.IsSelected = false;
                queryType1 = QueryType.custom_month;
                infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM");
                getTempHistory();
            };
            infoView1_Date_Year.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Year.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = false;
                infoView1_Date_Month.IsSelected = false;
                infoView1_Date_Year.IsSelected = true;
                queryType1 = QueryType.custom_year;
                infoView1_DateInfo_DateTextButton.Text = queryTime_Year1.ToString();
                getTempHistory();
            };
            //-----------用水
            infoView2_DateInfo_DateTextButton.MouseUpEventHandler = (sender, e) =>
            {
                SetWaterQureyDateDialog();
            };
            infoView2_DateInfo_PreClickButton.MouseUpEventHandler = (sender, e) => {
                var waterQueryDate = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2);
                if (queryType2 == QueryType.day_hour)
                {
                    waterQueryDate = waterQueryDate.AddDays(-1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 1)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month && waterQueryDate.Day == DateTime.Now.Day - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType2 == QueryType.custom_month)
                {
                    waterQueryDate = waterQueryDate.AddMonths(-1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType2 == QueryType.custom_year)
                {
                    waterQueryDate = waterQueryDate.AddYears(-1);
                    if (waterQueryDate.Year == 2023)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                queryTime_Year2 = waterQueryDate.Year;
                queryTime_Month2 = waterQueryDate.Month;
                queryTime_Day2 = waterQueryDate.Day;
                infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_DateInfo_NextIconButton.Visible = false;
            infoView2_DateInfo_NextClickButton.Enable = false;
            infoView2_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => {
                var waterQueryDate = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2);
                if (queryType2 == QueryType.day_hour)
                {
                    waterQueryDate = waterQueryDate.AddDays(1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 2)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = true;
                        infoView2_DateInfo_PreClickButton.Enable = true;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month && waterQueryDate.Day == DateTime.Now.Day)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType2 == QueryType.custom_month)
                {
                    waterQueryDate = waterQueryDate.AddMonths(1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 2)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = true;
                        infoView2_DateInfo_PreClickButton.Enable = true;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType2 == QueryType.custom_year)
                {
                    waterQueryDate = waterQueryDate.AddYears(1);
                    if (waterQueryDate.Year == 2023)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                queryTime_Year2 = waterQueryDate.Year;
                queryTime_Month2 = waterQueryDate.Month;
                queryTime_Day2 = waterQueryDate.Day;
                infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_Date_Day.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Day.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = true;
                infoView2_Date_Month.IsSelected = false;
                infoView2_Date_Year.IsSelected = false;
                queryType2 = QueryType.day_hour;
                infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_Date_Month.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Month.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = false;
                infoView2_Date_Month.IsSelected = true;
                infoView2_Date_Year.IsSelected = false;
                queryType2 = QueryType.custom_month;
                infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM");
                getWaterHistory();
            };
            infoView2_Date_Year.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Year.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = false;
                infoView2_Date_Month.IsSelected = false;
                infoView2_Date_Year.IsSelected = true;
                queryType2 = QueryType.custom_year;
                infoView2_DateInfo_DateTextButton.Text = queryTime_Year2.ToString();
                getWaterHistory();
            };
        }
        /// <summary>
        /// </summary>
        public void SetTempQureyDateDialog()
        {
            var pickerItems_Year = new List<string>();
            List<string> pickerItems_Month = null;
            List<string> pickerItems_Day = null;
            int item1 = queryTime_Year1;
            int item2 = queryTime_Month1;
            int item3 = queryTime_Day1;
            pickerItems_Year.Add("2023");
            while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
            {
                pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
            }
            if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
            {
                pickerItems_Month = new List<string>();
                if (queryTime_Year1 == DateTime.Now.Year)
                {
                    int addMonth = 0;
                    while (DateTime.Now.Month > addMonth)
                    {
                        addMonth++;
                        pickerItems_Month.Add(addMonth.ToString());
                    }
                }
                else
                {
                    for (var i = 1; i < 13; i++)
                    {
                        pickerItems_Month.Add(i.ToString());
                    }
                }
                if (queryType1 == QueryType.day_hour)
                {
                    pickerItems_Day = new List<string>();
                    if (queryTime_Month1 == DateTime.Now.Month)
                    {
                        int addDay = 0;
                        while (DateTime.Now.Day > addDay)
                        {
                            addDay++;
                            pickerItems_Day.Add(addDay.ToString());
                        }
                    }
                    else
                    {
                        for (var i = 1; i <= DateTime.DaysInMonth(queryTime_Year1, queryTime_Month1); i++)
                        {
                            pickerItems_Day.Add(i.ToString());
                        }
                    }
                }
            }
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(456 - 60),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(260),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(40),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            UIPickerView uIPickerView = new UIPickerView()
            {
                Y = Application.GetRealHeight(40),
                Height = Application.GetRealHeight(210),
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(uIPickerView);
            uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
            uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(queryTime_Year1.ToString()),
                pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(queryTime_Month1.ToString()),
                pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(queryTime_Day1.ToString()));
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
            {
                if (pickerItems_Year[int1] != item1.ToString())
                {
                    int.TryParse(pickerItems_Year[int1], out item1);
                    if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
                    {
                        pickerItems_Month = new List<string>();
                        if (item1 == DateTime.Now.Year)
                        {
                            int addMonth = 0;
                            while (DateTime.Now.Month > addMonth)
                            {
                                addMonth++;
                                pickerItems_Month.Add(addMonth.ToString());
                            }
                        }
                        else
                        {
                            for (var i = 1; i < 13; i++)
                            {
                                pickerItems_Month.Add(i.ToString());
                            }
                        }
                        if (queryType1 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                    }
                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                }
                if (pickerItems_Month != null)
                {
                    if (pickerItems_Month[int2] != item2.ToString())
                    {
                        int.TryParse(pickerItems_Month[int2], out item2);
                        if (queryType1 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                    }
                }
                if (pickerItems_Day != null)
                {
                    if (int3 >= pickerItems_Day.Count)
                    {
                        int3 = 0;
                    }
                    if (pickerItems_Day[int3] != item3.ToString())
                    {
                        int.TryParse(pickerItems_Day[int3], out item3);
                    }
                }
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                queryTime_Year1 = item1;
                infoView1_DateInfo_DateTextButton.Text = queryTime_Year1.ToString();
                if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
                {
                    if (item2 != queryTime_Month1)
                    {
                        queryTime_Month1 = item2;
                    }
                    infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM");
                    if (queryType1 == QueryType.day_hour)
                    {
                        if (item3 != queryTime_Day1)
                        {
                            queryTime_Day1 = item3;
                        }
                        infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM-dd");
                    }
                }
                getTempHistory();
            };
        }
        public void SetWaterQureyDateDialog()
        {
            var pickerItems_Year = new List<string>();
            List<string> pickerItems_Month = null;
            List<string> pickerItems_Day = null;
            int item1 = queryTime_Year2;
            int item2 = queryTime_Month2;
            int item3 = queryTime_Day2;
            pickerItems_Year.Add("2023");
            while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
            {
                pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
            }
            if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
            {
                pickerItems_Month = new List<string>();
                if (queryTime_Year2 == DateTime.Now.Year)
                {
                    int addMonth = 0;
                    while (DateTime.Now.Month > addMonth)
                    {
                        addMonth++;
                        pickerItems_Month.Add(addMonth.ToString());
                    }
                }
                else
                {
                    for (var i = 1; i < 13; i++)
                    {
                        pickerItems_Month.Add(i.ToString());
                    }
                }
                if (queryType2 == QueryType.day_hour)
                {
                    pickerItems_Day = new List<string>();
                    if (queryTime_Month2 == DateTime.Now.Month)
                    {
                        int addDay = 0;
                        while (DateTime.Now.Day > addDay)
                        {
                            addDay++;
                            pickerItems_Day.Add(addDay.ToString());
                        }
                    }
                    else
                    {
                        for (var i = 1; i <= DateTime.DaysInMonth(queryTime_Year2, queryTime_Month2); i++)
                        {
                            pickerItems_Day.Add(i.ToString());
                        }
                    }
                }
            }
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(456 - 60),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(260),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(40),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            UIPickerView uIPickerView = new UIPickerView()
            {
                Y = Application.GetRealHeight(40),
                Height = Application.GetRealHeight(210),
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(uIPickerView);
            uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
            uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(queryTime_Year2.ToString()),
                pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(queryTime_Month2.ToString()),
                pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(queryTime_Day2.ToString()));
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
            {
                if (pickerItems_Year[int1] != item1.ToString())
                {
                    int.TryParse(pickerItems_Year[int1], out item1);
                    if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
                    {
                        pickerItems_Month = new List<string>();
                        if (item1 == DateTime.Now.Year)
                        {
                            int addMonth = 0;
                            while (DateTime.Now.Month > addMonth)
                            {
                                addMonth++;
                                pickerItems_Month.Add(addMonth.ToString());
                            }
                        }
                        else
                        {
                            for (var i = 1; i < 13; i++)
                            {
                                pickerItems_Month.Add(i.ToString());
                            }
                        }
                        if (queryType2 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                    }
                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                }
                if (pickerItems_Month != null)
                {
                    if (pickerItems_Month[int2] != item2.ToString())
                    {
                        int.TryParse(pickerItems_Month[int2], out item2);
                        if (queryType2 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                    }
                }
                if (pickerItems_Day != null)
                {
                    if (int3 >= pickerItems_Day.Count)
                    {
                        int3 = 0;
                    }
                    if (pickerItems_Day[int3] != item3.ToString())
                    {
                        int.TryParse(pickerItems_Day[int3], out item3);
                    }
                }
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                queryTime_Year2 = item1;
                infoView2_DateInfo_DateTextButton.Text = queryTime_Year2.ToString();
                if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
                {
                    if (item2 != queryTime_Month2)
                    {
                        queryTime_Month2 = item2;
                    }
                    infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM");
                    if (queryType2 == QueryType.day_hour)
                    {
                        if (item3 != queryTime_Day2)
                        {
                            queryTime_Day2 = item3;
                        }
                        infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM-dd");
                    }
                }
                getWaterHistory();
            };
        }
    }
}