You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
4.7 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using SlnMesnac.Config;
using SlnMesnac.Model.domain;
using SlnMesnac.Repository.service;
using SlnMesnac.WPF;
using SlnMesnac.WPF.Page;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* LAPTOP-E0N2L34V
* SlnMesnac.Model.dto
* 96940a51-66a8-4593-b68d-e4d7fdb16c9b
*
* WenJY
* wenjy@mesnac.com
* 2024-04-12 11:07:33
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.WPF.Model
{
/// <summary>
/// 配方管理封装对象
/// </summary>
public class RecipeManageCache
{
#region 单例实现
private static readonly RecipeManageCache lazy = new RecipeManageCache();
public static RecipeManageCache Instance
{
get
{
return lazy;
}
}
#endregion
#region 变量定义
private readonly ILogger<RecipeManageCache> _logger;
private DebugConfig config = DebugConfig.Instance;
private readonly IBaseRecipeManageService? baseRecipeManageService;
/// <summary>
/// 所有配方列表
/// </summary>
public List<RecipeManage> recipeManageList = null;
/// <summary>
/// 当前正在使用配方
/// </summary>
public RecipeManage useRecipeManage
{
get
{
if (recipeManageList != null)
{
return recipeManageList.FirstOrDefault(x => x.RecipeName == config.RecipeName);
}
else
{
return null;
}
}
}
/// <summary>
/// 当前缓存区监测重量
/// </summary>
public double BufferWeight {
get { return double.Parse(config.BufferWeight); }
set { config.BufferWeight = value.ToString(); }
}
/// <summary>
/// 2楼缓存区最大停机重量
/// </summary>
public double MaxBufferWeight
{
get { return double.Parse(config.MaxBufferWeight); }
set { config.MaxBufferWeight = value.ToString(); }
}
/// <summary>
/// 当前使用模版名称
/// </summary>
public string RecipeName
{
get { return config.RecipeName; }
set { config.RecipeName = value; }
}
/// <summary>
/// 当前使用模式
/// </summary>
public string RecipeMode
{
get { return config.RecipeMode; }
set { config.RecipeMode = value; }
}
/// <summary>
/// 拆包机螺旋--烘干机螺旋切换间隔(单位:ms)
/// </summary>
public string UnpackToHotTime
{
get { return config.UnpackToHotTime; }
set { config.UnpackToHotTime = value; }
}
/// <summary>
/// 烘干机螺旋--螺旋1切换间隔(单位:ms)
/// </summary>
public string HotToSpiralTime
{
get { return config.HotToSpiralTime; }
set { config.HotToSpiralTime = value; }
}
/// <summary>
/// 螺旋1--螺旋2切换间隔(单位:ms)
/// </summary>
public string SpiralTwoTime
{
get { return config.SpiralTwoTime; }
set { config.SpiralTwoTime = value; }
}
#endregion
public RecipeManageCache()
{
baseRecipeManageService = App.ServiceProvider.GetService<IBaseRecipeManageService>();
recipeManageList = baseRecipeManageService.GetRecipeManageList();
}
/// <summary>
/// 更新配方
/// </summary>
/// <param name="recipeManage"></param>
public void UpdateRecipeManage(RecipeManage recipeManage)
{
try
{
baseRecipeManageService.UpdateRecipeManage(recipeManage);
//刷新缓存
recipeManageList = baseRecipeManageService.GetRecipeManageList();
}
catch (Exception ex)
{
_logger.LogError($"UpdateRecipeManage异常:{ex.Message}");
}
}
}
}