120 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			120 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								@page "/manage/setting/Fridge"
							 | 
						||
| 
								 | 
							
								@using MasaBlazorApp3.Util
							 | 
						||
| 
								 | 
							
								@using Newtonsoft.Json.Linq
							 | 
						||
| 
								 | 
							
								@using log4net
							 | 
						||
| 
								 | 
							
								@layout SettingLayout
							 | 
						||
| 
								 | 
							
								<div class="main">
							 | 
						||
| 
								 | 
							
								    <div class="top-row px-4">
							 | 
						||
| 
								 | 
							
								        <RadzenButton Icon="account_circle" Style="margin-left: auto;" Click="@SaveMethod">
							 | 
						||
| 
								 | 
							
								            <ChildContent>
							 | 
						||
| 
								 | 
							
								                保存设置
							 | 
						||
| 
								 | 
							
								            </ChildContent>
							 | 
						||
| 
								 | 
							
								        </RadzenButton>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <div class="content px-4">
							 | 
						||
| 
								 | 
							
								        <RadzenCard class="rz-my-6">
							 | 
						||
| 
								 | 
							
								            <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Start" Wrap="FlexWrap.Wrap">
							 | 
						||
| 
								 | 
							
								                <RadzenStack Orientation="Orientation.Vertical" Gap="4px">
							 | 
						||
| 
								 | 
							
								                    冰箱温度区间
							 | 
						||
| 
								 | 
							
								                    <RadzenTextBox Placeholder="2-8" Value="@temperatureRange" Change="@(args=>temperatureRange=args)"></RadzenTextBox>
							 | 
						||
| 
								 | 
							
								                </RadzenStack>
							 | 
						||
| 
								 | 
							
								                <RadzenStack Orientation="Orientation.Vertical" Gap="4px">
							 | 
						||
| 
								 | 
							
								                    冰箱状态
							 | 
						||
| 
								 | 
							
								                    <RadzenRadioButtonList Value=@fridgeStateValue TValue="int" Change=@(args => fridgeStateValue = args)>
							 | 
						||
| 
								 | 
							
								                        <Items>
							 | 
						||
| 
								 | 
							
								                            <RadzenRadioButtonListItem Text="开" Value="0" />
							 | 
						||
| 
								 | 
							
								                            <RadzenRadioButtonListItem Text="关" Value="1" />
							 | 
						||
| 
								 | 
							
								                        </Items>
							 | 
						||
| 
								 | 
							
								                    </RadzenRadioButtonList>
							 | 
						||
| 
								 | 
							
								                </RadzenStack>
							 | 
						||
| 
								 | 
							
								                <RadzenStack Orientation="Orientation.Vertical" Gap="4px">
							 | 
						||
| 
								 | 
							
								                    报警状态
							 | 
						||
| 
								 | 
							
								                    <RadzenRadioButtonList Value="@alertStateValue" TValue="int" Change="@(args=>alertStateValue=args)">
							 | 
						||
| 
								 | 
							
								                        <Items>
							 | 
						||
| 
								 | 
							
								                            <RadzenRadioButtonListItem Text="开" Value="0"/>
							 | 
						||
| 
								 | 
							
								                            <RadzenRadioButtonListItem Text="关" Value="1"/>
							 | 
						||
| 
								 | 
							
								                        </Items>
							 | 
						||
| 
								 | 
							
								                    </RadzenRadioButtonList>
							 | 
						||
| 
								 | 
							
								                </RadzenStack>
							 | 
						||
| 
								 | 
							
								            </RadzenStack>
							 | 
						||
| 
								 | 
							
								        </RadzenCard>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								</div>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@inject Microsoft.Extensions.Options.IOptions<Pojo.Config.fridgeConfig> setting;
							 | 
						||
| 
								 | 
							
								@inject PortUtil port;
							 | 
						||
| 
								 | 
							
								@inject NotificationService _message
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@code {
							 | 
						||
| 
								 | 
							
								    private readonly ILog logger = LogManager.GetLogger(typeof(LoginDialog));
							 | 
						||
| 
								 | 
							
								    int fridgeStateValue = 1;
							 | 
						||
| 
								 | 
							
								    int alertStateValue = 1;
							 | 
						||
| 
								 | 
							
								    string temperatureRange = "2-8";
							 | 
						||
| 
								 | 
							
								    protected override void OnInitialized()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        fridgeStateValue = setting.Value.fridgeState;
							 | 
						||
| 
								 | 
							
								        alertStateValue = setting.Value.alertState;
							 | 
						||
| 
								 | 
							
								        temperatureRange = setting.Value.temperatureRange;
							 | 
						||
| 
								 | 
							
								        base.OnInitialized();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    //保存
							 | 
						||
| 
								 | 
							
								    async Task SaveMethod()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        // 获取当前工作目录
							 | 
						||
| 
								 | 
							
								        string currentDirectory = Directory.GetCurrentDirectory();
							 | 
						||
| 
								 | 
							
								        // setting.Value.fridgeState = fridgeStateValue;
							 | 
						||
| 
								 | 
							
								        // setting.Value.alertState = alertStateValue;
							 | 
						||
| 
								 | 
							
								        // setting.Value.temperatureRange = temperatureRange;
							 | 
						||
| 
								 | 
							
								        string filePath =Path.Combine(currentDirectory, "appsettings.json");
							 | 
						||
| 
								 | 
							
								        string jsonString= File.ReadAllText(filePath);
							 | 
						||
| 
								 | 
							
								        var jsonNode = JObject.Parse(jsonString);
							 | 
						||
| 
								 | 
							
								        jsonNode["fridge"]["temperatureRange"] = temperatureRange;
							 | 
						||
| 
								 | 
							
								        jsonNode["fridge"]["fridgeState"]= fridgeStateValue;
							 | 
						||
| 
								 | 
							
								        jsonNode["fridge"]["alertState"] = alertStateValue;
							 | 
						||
| 
								 | 
							
								        var options = new JsonSerializerOptions { WriteIndented = true };
							 | 
						||
| 
								 | 
							
								        File.WriteAllText(filePath, jsonNode.ToString(Newtonsoft.Json.Formatting.Indented));
							 | 
						||
| 
								 | 
							
								        if (fridgeStateValue==0)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            await port.FridegOpen(1);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            await port.FridgeOff(1);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if (alertStateValue==0)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            await port.FridgeAlarmOn(1);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        else
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            await port.FridgeAlarmOff(1);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        string[] newRange = temperatureRange.Split('-');
							 | 
						||
| 
								 | 
							
								        if(newRange.Length>=2)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            string[] range= setting.Value.temperatureRange.Split('-');
							 | 
						||
| 
								 | 
							
								            bool bMix = float.TryParse(newRange[0], out float Min);
							 | 
						||
| 
								 | 
							
								            bool bMax = float.TryParse(newRange[1], out float Max);
							 | 
						||
| 
								 | 
							
								            if (bMix && bMax)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                if (range == null || range[0] == null||(range != null && range[0] != null && range[0] != newRange[0]))
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    //设定冰箱温度最小值
							 | 
						||
| 
								 | 
							
								                    await port.FridgeMinSetting(Min, 1);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                if (range == null || range[0] == null || (range != null && range[1] != null && range[1] != newRange[1]))
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    //设定冰箱温度最大值
							 | 
						||
| 
								 | 
							
								                    await port.FridgeMaxSetting(Max, 1);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        _message.Notify(
							 | 
						||
| 
								 | 
							
								             new NotificationMessage { Severity = NotificationSeverity.Success, Summary = "提示", Detail = $"保存成功", Duration = 4000 }
							 | 
						||
| 
								 | 
							
								         );
							 | 
						||
| 
								 | 
							
								        logger.Info($"修改冰箱设置");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |