From f500e14c0a994487070380c50c85e0929cbc8e63 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 05 一月 2021 10:48:04 +0800 Subject: [PATCH] 2021-01-05 1.更新 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs | 219 +++++++++++++++++++++++++++++++++++------------------- 1 files changed, 140 insertions(+), 79 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs index a89d8e3..c725d7f 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs @@ -30,6 +30,7 @@ filesList = IO.FileUtils.ReadFiles ().FindAll ((obj) => { return obj.Split ('_').Length == 5; }); } + public void ShowScene (Action<string> action) { this.BackgroundColor = SkinStyle.Current.MainColor; @@ -398,6 +399,7 @@ LightMixSwitch lightSwitch = Newtonsoft.Json.JsonConvert.DeserializeObject<LightMixSwitch> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath))); #region title.Text = lightSwitch.Name; + //2020-01-13 鏄惁绂佹帀寤惰繜鍔熻兘锛屽緟纭 Button lblChangeName = new Button () { X = Application.GetRealWidth (30), Y = Application.GetRealHeight (100), @@ -605,7 +607,7 @@ }; dialogBodyLayout.AddChidren (btnMaxBrightness); horizontalSeekBar.ProgressChanged += (sender, e) => { - //Console.WriteLine (DateTime.Now.ToString ()); + //Utlis.WriteLine (DateTime.Now.ToString ()); btnMaxBrightness.Text = horizontalSeekBar.Progress + "%"; System.Threading.Tasks.Task.Run (() => { if ((System.DateTime.Now - (DateTime)(horizontalSeekBar.Tag)).TotalMilliseconds < 100) { @@ -752,7 +754,7 @@ }; dialogBodyLayout.AddChidren (btnMaxBrightness); horizontalSeekBar.ProgressChanged += (sender, e) => { - //Console.WriteLine (DateTime.Now.ToString ()); + //Utlis.WriteLine (DateTime.Now.ToString ()); btnMaxBrightness.Text = horizontalSeekBar.Progress + "%"; System.Threading.Tasks.Task.Run (() => { if ((System.DateTime.Now - (DateTime)(horizontalSeekBar.Tag)).TotalMilliseconds < 100) { @@ -1036,8 +1038,8 @@ } title.Text = curtainmodel.Name; Button btnOpenCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), UnSelectedImagePath = "Curtain/CurtainOpen.png", SelectedImagePath = "Curtain/CurtainOpenSelected.png", X = Application.GetRealWidth (20), @@ -1055,8 +1057,8 @@ }; dialogBodyLayout.AddChidren (btnOpenLbl); Button btnStopCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), X = Application.GetRealWidth ((480 - 124) / 2), Y = btnOpenCurtain.Y, UnSelectedImagePath = "Curtain/CurtainTimeOut.png", @@ -1074,8 +1076,8 @@ }; dialogBodyLayout.AddChidren (btnStopLbl); Button btnCloseCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), X = Application.GetRealWidth (480 - 124 - 35), Y = btnOpenCurtain.Y, UnSelectedImagePath = "Curtain/CurtainClose.png", @@ -1097,18 +1099,24 @@ btnOpenCurtain.IsSelected = false; btnStopCurtain.IsSelected = false; curtainmodel.Status = (CurtainStatus)2; + Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainmodel.SubnetID, curtainmodel.DeviceID, + new byte [] { curtainmodel.LoopID, (byte)curtainmodel.Status }); }; btnOpenCurtain.MouseUpEventHandler += (sender3, e3) => { btnCloseCurtain.IsSelected = false; btnOpenCurtain.IsSelected = true; btnStopCurtain.IsSelected = false; curtainmodel.Status = (CurtainStatus)1; + Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainmodel.SubnetID, curtainmodel.DeviceID, + new byte [] { curtainmodel.LoopID, (byte)curtainmodel.Status }); }; btnStopCurtain.MouseUpEventHandler += (sender3, e3) => { btnCloseCurtain.IsSelected = false; btnOpenCurtain.IsSelected = false; btnStopCurtain.IsSelected = true; curtainmodel.Status = (CurtainStatus)0; + Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainmodel.SubnetID, curtainmodel.DeviceID, + new byte [] { curtainmodel.LoopID, (byte)curtainmodel.Status }); }; if (curtainmodel.Status == 0) { btnStopCurtain.IsSelected = true; @@ -1170,8 +1178,8 @@ }; Button btnOpenCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), UnSelectedImagePath = "Curtain/CurtainOpen.png", SelectedImagePath = "Curtain/CurtainOpenSelected.png", X = Application.GetRealWidth (20), @@ -1190,8 +1198,8 @@ }; dialogBodyLayout.AddChidren (btnOpenLbl); Button btnStopCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), X = Application.GetRealWidth ((480 - 124) / 2), Y = btnOpenCurtain.Y, UnSelectedImagePath = "Curtain/CurtainTimeOut.png", @@ -1209,8 +1217,8 @@ }; //dialogBodyLayout.AddChidren (btnStopLbl); Button btnCloseCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), X = Application.GetRealWidth (480 - 124 - 35), Y = btnOpenCurtain.Y, UnSelectedImagePath = "Curtain/CurtainClose.png", @@ -1317,19 +1325,19 @@ Button btnOpenCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), UnSelectedImagePath = "Curtain/CurtainRollerUp.png", SelectedImagePath = "Curtain/CurtainRollerUpOn.png", X = Application.GetRealWidth (20), Y = tempSeekBarFrame.Bottom + Application.GetRealHeight (40), }; dialogBodyLayout.AddChidren (btnOpenCurtain); - btnOpenCurtain.MouseUpEventHandler += (sender, e) => { - Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainroller.SubnetID, curtainroller.DeviceID, new byte [] { 17, 100 }); - horizontalSeekBar.Progress = 100; - btnMaxBrightness.Text = "100%"; - }; + //btnOpenCurtain.MouseUpEventHandler += (sender, e) => { + // Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainroller.SubnetID, curtainroller.DeviceID, new byte [] { 17, 100 }); + // horizontalSeekBar.Progress = 100; + // btnMaxBrightness.Text = "100%"; + //}; Button btnOpenLbl = new Button () { Width = Application.GetRealWidth (124), Height = Application.GetRealHeight (30), @@ -1341,8 +1349,8 @@ }; dialogBodyLayout.AddChidren (btnOpenLbl); Button btnStopCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), X = Application.GetRealWidth ((480 - 124) / 2), Y = btnOpenCurtain.Y, UnSelectedImagePath = "Curtain/CurtainTimeOut.png", @@ -1360,19 +1368,19 @@ }; //dialogBodyLayout.AddChidren (btnStopLbl); Button btnCloseCurtain = new Button () { - Width = Application.GetRealWidth (124), - Height = Application.GetRealHeight (125), + Width = Application.GetMinRealAverage (124), + Height = Application.GetMinRealAverage (124), X = Application.GetRealWidth (480 - 124 - 35), Y = btnOpenCurtain.Y, UnSelectedImagePath = "Curtain/CurtainRollerDown.png", SelectedImagePath = "Curtain/CurtainRollerDownOn.png", }; dialogBodyLayout.AddChidren (btnCloseCurtain); - btnCloseCurtain.MouseUpEventHandler += (sender, e) => { - Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainroller.SubnetID, curtainroller.DeviceID, new byte [] { 17, 0 }); - horizontalSeekBar.Progress = 0; - btnMaxBrightness.Text = "0%"; - }; + //btnCloseCurtain.MouseUpEventHandler += (sender, e) => { + // Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainroller.SubnetID, curtainroller.DeviceID, new byte [] { 17, 0 }); + // horizontalSeekBar.Progress = 0; + // btnMaxBrightness.Text = "0%"; + //}; Button btnCloseLbl = new Button () { Width = Application.GetRealWidth (124), Height = Application.GetRealHeight (30), @@ -1384,16 +1392,24 @@ }; dialogBodyLayout.AddChidren (btnCloseLbl); btnCloseCurtain.MouseUpEventHandler += (sender3, e3) => { + Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainroller.SubnetID, curtainroller.DeviceID, new byte [] { 17, 0 }); + horizontalSeekBar.Progress = 0; + btnMaxBrightness.Text = "0%"; btnCloseCurtain.IsSelected = true; btnOpenCurtain.IsSelected = false; btnStopCurtain.IsSelected = false; curtainroller.Status = (CurtainStatus)2; + }; btnOpenCurtain.MouseUpEventHandler += (sender3, e3) => { + Control.ControlBytesSend (Command.UpdataCurtainModelStutas, curtainroller.SubnetID, curtainroller.DeviceID, new byte [] { 17, 100 }); + horizontalSeekBar.Progress = 100; + btnMaxBrightness.Text = "100%"; btnCloseCurtain.IsSelected = false; btnOpenCurtain.IsSelected = true; btnStopCurtain.IsSelected = false; curtainroller.Status = (CurtainStatus)1; + }; btnStopCurtain.MouseUpEventHandler += (sender3, e3) => { btnCloseCurtain.IsSelected = false; @@ -1440,8 +1456,8 @@ dialogBodyLayout.AddChidren (btnSetTemperature); Button btnReduceTemperature = new Button () { - Width = Application.GetRealWidth (94), - Height = Application.GetRealHeight (94), + Width = Application.GetMinRealAverage (94), + Height = Application.GetMinRealAverage (94), X = Application.GetRealWidth (20), Y = btnSetTemperature.Bottom + Application.GetRealHeight (20), UnSelectedImagePath = "AC/AC-.png", @@ -1450,8 +1466,8 @@ dialogBodyLayout.AddChidren (btnReduceTemperature); Button btnSwitchAC = new Button () { - Width = Application.GetRealWidth (94), - Height = Application.GetRealHeight (94), + Width = Application.GetMinRealAverage (94), + Height = Application.GetMinRealAverage (94), X = Application.GetRealWidth ((480 - 94) / 2), Y = btnReduceTemperature.Y, UnSelectedImagePath = "AC/ACClose.png", @@ -1476,8 +1492,8 @@ } Button btnAddTemperature = new Button () { - Width = Application.GetRealWidth (94), - Height = Application.GetRealHeight (94), + Width = Application.GetMinRealAverage (94), + Height = Application.GetMinRealAverage (94), X = Application.GetRealWidth (480 - 20 - 94), Y = btnReduceTemperature.Y, UnSelectedImagePath = "AC/AC+.png", @@ -1517,8 +1533,8 @@ dialogBodyLayout.AddChidren (acModeView); Button btnACModeLeft = new Button () { - Width = Application.GetRealWidth (129), - Height = Application.GetRealHeight (129), + Width = Application.GetMinRealAverage (129), + Height = Application.GetMinRealAverage (129), X = btnReduceTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACLeft.png", @@ -1535,8 +1551,8 @@ }; acModeView.AddChidren (btnModeIcon); Button btnACModeRight = new Button () { - Width = Application.GetRealWidth (129), - Height = Application.GetRealHeight (129), + Width = Application.GetMinRealAverage (129), + Height = Application.GetMinRealAverage (129), X = btnAddTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACRight.png", @@ -1578,8 +1594,8 @@ dialogBodyLayout.AddChidren (acWindView); Button btnACWindLeft = new Button () { - Width = Application.GetRealWidth (129), - Height = Application.GetRealHeight (129), + Width = Application.GetMinRealAverage (129), + Height = Application.GetMinRealAverage (129), X = btnReduceTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACLeft.png", @@ -1597,8 +1613,8 @@ acWindView.AddChidren (btnWindIcon); Button btnACWindRight = new Button () { - Width = Application.GetRealWidth (129), - Height = Application.GetRealHeight (129), + Width = Application.GetMinRealAverage (129), + Height = Application.GetMinRealAverage (129), X = btnAddTemperature.X - Application.GetRealWidth (17), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/ACRight.png", @@ -1694,8 +1710,8 @@ title.Text = fh.Name; Button FH_Heat = new Button () { - Width = Application.GetRealWidth (120), - Height = Application.GetRealHeight (120), + Width = Application.GetMinRealAverage (120), + Height = Application.GetMinRealAverage (120), X = Application.GetRealWidth (20), Y = Application.GetRealHeight (120), UnSelectedImagePath = "FH/FH_Heat_on.png", @@ -1720,8 +1736,8 @@ }; Button btnFHSwitch = new Button () { - Width = Application.GetRealWidth (80), - Height = Application.GetRealHeight (80), + Width = Application.GetMinRealAverage (80), + Height = Application.GetMinRealAverage (80), X = Application.GetRealWidth (480 - 40 - 80), Y = Application.GetRealHeight (140), UnSelectedImagePath = "AC/ACClose.png", @@ -1756,8 +1772,8 @@ dialogBodyLayout.AddChidren (fhTemperatureView); Button btnReduceTemperature = new Button () { - Width = Application.GetRealWidth (90), - Height = Application.GetRealHeight (90), + Width = Application.GetMinRealAverage (90), + Height = Application.GetMinRealAverage (90), X = Application.GetRealWidth (40), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/AC-.png", @@ -1776,8 +1792,8 @@ }; fhTemperatureView.AddChidren (btnSetTemperature); Button BtnAddTemperature = new Button () { - Width = Application.GetRealWidth (90), - Height = Application.GetRealHeight (90), + Width = Application.GetMinRealAverage (90), + Height = Application.GetMinRealAverage (90), X = Application.GetRealWidth (480 - 90 - 40), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "AC/AC+.png", @@ -1847,8 +1863,8 @@ Button btnWindSpeedReduce = new Button () { X = Application.GetRealWidth (100), Y = btnWindSpeedTitle.Bottom, - Width = Application.GetRealWidth (64), - Height = Application.GetRealHeight (62), + Width = Application.GetMinRealAverage (64), + Height = Application.GetMinRealAverage (62), UnSelectedImagePath = "Light/Light-.png", SelectedImagePath = "Light/Light-On.png", }; @@ -1867,8 +1883,8 @@ windBodyView.AddChidren (btnWindSpeedText); Button btnWindSpeedAdd = new Button () { - Width = Application.GetRealWidth (64), - Height = Application.GetRealHeight (62), + Width = Application.GetMinRealAverage (64), + Height = Application.GetMinRealAverage (62), UnSelectedImagePath = "Light/Light+.png", SelectedImagePath = "Light/Light+On.png", X = btnWindSpeedText.Right, @@ -1928,43 +1944,46 @@ Width = Application.GetRealWidth (110), Height = Application.GetRealHeight (70), Radius = 2, - BorderColor = SkinStyle.Current.White20Transparent, + //BorderColor = SkinStyle.Current.White20Transparent, BorderWidth = 2, - Text = udDevice.ON_Text + Text = udDevice.ON_Text, + BorderColor = SkinStyle.Current.BorderColor, + TextColor = SkinStyle.Current.TextColor1, + //SelectedTextColor = SkinStyle.Current.TextColor1, }; windBodyView.AddChidren (tempSiwtch); if (udDevice.ActionType == 0) { + SetUDSendBytes (udDevice, 255); tempSiwtch.Text = udDevice.ON_Text; tempSiwtch.MouseUpEventHandler += (sender3, e3) => { if (udDevice.UniversalType == 0xE01C) { if (udDevice.ActionType == 0) { - if (udDevice.SendBytes.Count == 0) { - udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 }; - } else - udDevice.SendBytes [1] = 255; + SetUDSendBytes (udDevice, 255); Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero); } tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor; } }; } else if (udDevice.ActionType == 1) { + SetUDSendBytes (udDevice, 0); tempSiwtch.TextID = R.MyInternationalizationString.OFF; tempSiwtch.MouseUpEventHandler += (sender3, e3) => { if (udDevice.UniversalType == 0xE01C) { if (udDevice.ActionType == 1) { - - if (udDevice.SendBytes.Count == 0) { - udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 0 }; - } else - udDevice.SendBytes [1] = 0; + SetUDSendBytes (udDevice, 0); Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero); } tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor; } }; } else if (udDevice.ActionType == 2) { + if (udDevice.SendBytes.Count == 0) { + //璧嬮粯璁ゅ�� + udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 }; + } + tempSiwtch.TextID = R.MyInternationalizationString.OFF; tempSiwtch.X = Application.GetRealWidth (100); tempSiwtch.Y = Application.GetRealHeight (100); @@ -1977,15 +1996,13 @@ Radius = 2, BorderColor = SkinStyle.Current.White20Transparent, BorderWidth = 2, - TextID = R.MyInternationalizationString.ON + TextID = R.MyInternationalizationString.ON, + TextColor = SkinStyle.Current.TextColor1, }; windBodyView.AddChidren (tempON); tempON.MouseUpEventHandler += (sender3, e3) => { if (udDevice.UniversalType == 0xE01C) { - if (udDevice.SendBytes.Count == 0) { - udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 }; - } else - udDevice.SendBytes [1] = 255; + SetUDSendBytes (udDevice, 255); Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero); } tempON.BorderColor = SkinStyle.Current.SelectedColor; @@ -1993,15 +2010,21 @@ }; tempSiwtch.MouseUpEventHandler += (sender3, e3) => { if (udDevice.UniversalType == 0xE01C) { - if (udDevice.SendBytes.Count == 0) { - udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 0 }; - } else - udDevice.SendBytes [1] = 0; + SetUDSendBytes (udDevice, 0); Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero); } tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor; tempON.BorderColor = SkinStyle.Current.Transparent; }; + + + if (udDevice.SendBytes [1] > 0) { + tempON.BorderColor = SkinStyle.Current.SelectedColor; + tempSiwtch.BorderColor = SkinStyle.Current.Transparent; + } else { + tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor; + tempON.BorderColor = SkinStyle.Current.Transparent; + } } btnSave.MouseUpEventHandler += (sender2, e2) => { @@ -2012,6 +2035,43 @@ } dialog.Show (); } + + /// <summary> + /// UniversalDevice + /// </summary> + /// <param name="udDevice"></param> + /// <param name="mStatus"> 255/0</param> + public void SetUDSendBytes (UniversalDevice udDevice, byte mStatus) { + + if (udDevice.SendBytes.Count == 0) { + udDevice.SendBytes = new List<byte> () { udDevice.LoopID, mStatus }; + } else { + udDevice.SendBytes [1] = mStatus; + } + } + + /// <summary> + /// 鏍规嵁ActionType鐘舵�侊紝璧嬮粯璁ゅ�� + /// </summary> + /// <param name="udDevice"></param> + /// <param name="mStatus"></param> + public void SetUDDefaultsSendBytes (UniversalDevice udDevice) + { + if (udDevice == null) return; + + //鍙紑銆佸紑鍏� 閮介粯璁や负255 + if (udDevice.SendBytes.Count == 0) { + udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 }; + } else { + udDevice.SendBytes [1] = 255; + } + + //鍙叧銆侀噸缃负0 + if (udDevice.ActionType == 1) { + udDevice.SendBytes [1] = 0; + } + } + /// <summary> /// 鎴块棿鍜屽満鏅坊鍔犺澶囩殑鏂规硶 @@ -2360,11 +2420,11 @@ }; var commonBytes = IO.FileUtils.ReadFile (deviceFilePath); if (commonBytes.Length == 0) { - Console.WriteLine ("length loss"); + Utlis.WriteLine ("length loss"); continue; } if (commonBytes.Length == 1) { - Console.WriteLine ("length loss 1"); + Utlis.WriteLine ("length loss 1"); continue; } Common commonDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (System.Text.Encoding.UTF8.GetString (commonBytes)); @@ -2389,7 +2449,7 @@ if (sceneFilePath == Scene.GlobalSceneFilePath) { foreach (var filePath in scene.DeviceFilePathList) { - System.Console.WriteLine (filePath); + Utlis.WriteLine (filePath); if (filePath.EndsWith (deviceFilePath)) { btnEquipment.IsSelected = true; break; @@ -2420,6 +2480,7 @@ break; case DeviceType.UniversalDevice: var sssd = Newtonsoft.Json.JsonConvert.DeserializeObject<UniversalDevice> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath))); + SetUDDefaultsSendBytes (sssd); IO.FileUtils.WriteFileByBytes (filePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (sssd))); break; default: -- Gitblit v1.8.0