EquipmentTypePropTemplateAddOrEditVM.cs 4.34 KB
using HHECS.Application.Enums;
using HHECS.Infrastructure.CommonHelper;
using HHECS.Model.Entities;
using HHECS.WinCommon.ViewModel;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Windows;
using MessageBox = HandyControl.Controls.MessageBox;

namespace HHECS.WinClient.View.EquipmentInfo
{
    public class EquipmentTypePropTemplateAddOrEditVM : VMBase
    {
        public EquipmentTypePropTemplate EquipmentTypePropTemplate { get; set; }

        public EquipmentType EquipmentType { get; set; }

        public string Title { get; set; } = "test";

        public bool Enable { get; set; } = true;

        public Visibility Visibility { get; set; } = Visibility.Hidden;

        public Dictionary<string, object> PropTypes { get; set; }

        public Dictionary<string, object> DataTypes { get; set; }

        public EquipmentTypePropTemplateAddOrEditVM(int id, int typeId)
        {
            PropTypes = EnumHelper.EnumListDicString<EquipmentPropType>();

            DataTypes = new Dictionary<string, object>()
            {
                { "BYTE", "BYTE" },
                { "INT", "INT" },
                { "DINT", "DINT" },
                { "WORD", "WORD" },
                { "DWORD", "DWORD" },
                { "CHAR", "CHAR" },
                { "BOOL", "BOOL" }
            };

            var bllResult = App.EquipmentService.GetEquipmentTypesWithPropTemplates(t => t.Id == typeId);
            if (bllResult.Success)
            {
                EquipmentType = bllResult.Data[0];
                if (id == 0)
                {
                    this.Title = "新增";
                    EquipmentTypePropTemplate = new EquipmentTypePropTemplate();
                    EquipmentTypePropTemplate.EquipmentTypeId = EquipmentType.Id;
                    EquipmentTypePropTemplate.EquipmentType = EquipmentType;
                    Visibility = Visibility.Visible;
                }
                else
                {
                    this.Title = "更新";
                    EquipmentTypePropTemplate = EquipmentType.EquipmentTypePropTemplates.Find(t => t.Id == id);
                    if (EquipmentTypePropTemplate != null)
                    {
                        EquipmentTypePropTemplate.EquipmentType = EquipmentType;
                    }
                    else
                    {
                        MessageBox.Show($"查询指定字典明细数据");
                        Enable = false;
                    }
                }
            }
            else
            {
                MessageBox.Show($"查询字典及明细数据失败:{bllResult.Msg}");
                Enable = false;
            }
        }

        public void Save()
        {
            if (EquipmentTypePropTemplate.CreateTime == null)
            {
                EquipmentTypePropTemplate.CreateTime = DateTime.Now;
                EquipmentTypePropTemplate.CreateBy = App.User.UserCode;
            }
            EquipmentTypePropTemplate.UpdateTime = DateTime.Now;
            EquipmentTypePropTemplate.UpdateBy = App.User.UserCode;
            var title = EquipmentTypePropTemplate.Id == 0 ? Application.Enums.Title.PropTemplateAdd : Application.Enums.Title.PropTemplateEdit;
            var a = new
            {
                Code = EquipmentTypePropTemplate.Code,
                Name = EquipmentTypePropTemplate.Name,
            };
            var result = App.EquipmentService.SaveEquipmentTypePropTemplate(EquipmentTypePropTemplate);
            if (result.Success)
            {
                App.LogService.LogOperation(title, ModuleConst.EquipmentType, $"属性模板保存成功.数据:{JsonConvert.SerializeObject(a)}", result.Code.ToString(), App.User.UserCode);
                MessageBox.Show("保存成功");
            }
            else
            {
                App.LogService.LogOperation(title, ModuleConst.EquipmentType, $"属性模板保存失败.数据:{JsonConvert.SerializeObject(a)},详情:{result.Msg}", result.Code.ToString(), App.User.UserCode);
                MessageBox.Error($"保存失败:{result.Msg}");
            }
        }

        public void Clear()
        {
            EquipmentTypePropTemplate = new EquipmentTypePropTemplate();
            EquipmentTypePropTemplate.EquipmentType = EquipmentType;
            EquipmentTypePropTemplate.EquipmentTypeId = EquipmentType.Id;
        }
    }
}