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.
DSWMS/Vue.Net/VOL.Entity/DomainModels/Core/SaveDataModel.cs

188 lines
5.1 KiB
C#

2 years ago

using ConvertHelper;
using Microsoft.AspNetCore.SignalR;
using System;
using System.Collections;
using System.Collections.Generic;
namespace VOL.Entity.DomainModels
{
public class SaveModel
{
public Dictionary<string, object> MainData { get; set; }
public List<Dictionary<string, object>> DetailData { get; set; }
public List<object> DelKeys { get; set; }
public List<object> WorkKeys { get; set; }
/// <summary>
/// 从前台传入的其他参数(自定义扩展可以使用)
/// </summary>
public object Extra { get; set; }
/// <summary>
///
/// </summary>
/// <param name="fieldname"></param>
/// <returns></returns>
public string getMainDataValueStr(string fieldname) {
try
{
if (MainData.ContainsKey(fieldname))
{
return MainData[fieldname].ToString();
}
}
catch (Exception e) {
return "";
}
return "";
}
public string getValue(string fieldname)
{
return getMainDataValueStr(fieldname);
}
public string GetjoinWorkKeys()
{
if (WorkKeys == null || WorkKeys.Count == 0) return "";
return $"'{string.Join("','", WorkKeys)}'";
}
/// <summary>
/// 获得带单引号用逗号连接的一个字符串可以用于sql的in子句
/// </summary>
/// <returns></returns>
public string GetjoinDelKeys()
{
if (DelKeys == null || DelKeys.Count == 0) return "";
return $"'{string.Join("','", DelKeys)}'";
}
public List<Guid> GetWorkKeysList()
{
var result = new List<Guid>();
foreach (var item in WorkKeys) {
result.Add(new Guid(item.ToString()));
}
return result;
}
public List<String> GetWorkKeysList_Str()
{
var result = new List<String>();
foreach (var item in WorkKeys)
{
if(!string.IsNullOrWhiteSpace( item.ToString()))
result.Add( item.ToString());
}
return result;
}
public void MakeSureHaveField(string fieldname) {
if (MainData == null)
MainData = new Dictionary<string, object>();
if (!MainData.ContainsKey(fieldname))
{
MainData.Add(fieldname, "");
}
else {
if (MainData[fieldname] == null) {
MainData[fieldname] = "";
}
}
}
/// <summary>
///
/// </summary>
/// <param name="fieldname"></param>
/// <param name="value"></param>
public void AddField(string fieldname, string value = "") {
if(MainData==null)
MainData = new Dictionary<string, object>();
if (!MainData.ContainsKey(fieldname))
{
MainData.Add(fieldname, value);
}
else {
MainData[fieldname] = value;
}
}
public void SetValue(string fieldname, string value = "") {
AddField(fieldname, value);
}
public bool HaveField(string fieldname)
{
try
{
if (MainData.ContainsKey(fieldname))
{
var _s = MainData[fieldname].ToString();
var result = !string.IsNullOrWhiteSpace(_s);
return result;
}return false;
}
catch (Exception e) {
return false;
}
}
public void FieldAddValue(string fieldname, string value = "")
{
if (MainData == null)
MainData = new Dictionary<string, object>();
if (!MainData.ContainsKey(fieldname))
{
MainData.Add(fieldname, value);
}
else
{
if (string.IsNullOrEmpty(MainData[fieldname].ToString()))
MainData[fieldname] = value;
else {
MainData[fieldname] += "," + value;
}
}
}
public void removefield(string fieldname) {
BasicDALRef.DicRemovekeys(MainData, fieldname);
}
/// <summary>
/// 在SaveAndPushstatus时
/// execution值位于workkeys中第一条 必须有
/// reason值位于workkeys第二条 可以没有
/// </summary>
/// <returns></returns>
public string GetExection()
{
if (WorkKeys.Count > 0)
{
return WorkKeys[0].ToString();
}
return "";
}
public string GetReason()
{
if (WorkKeys.Count > 1)
{
return WorkKeys[1].ToString();
}
return "";
}
}
}