EquipmentMaintainRuleDetailAddOrEditVM.cs 4.33 KB
using HHECS.Application.Enums;
using HHECS.Model.Entities;
using HHECS.WinCommon.ViewModel;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using MessageBox = HandyControl.Controls.MessageBox;

namespace HHECS.WinClient.View.EquipmentInfo
{
    public class EquipmentMaintainRuleDetailAddOrEditVM : VMBase
    {
        public EquipmentMaintainRuleDetail EquipmentMaintainRuleDetail { get; set; }

        public EquipmentMaintainRule EquipmentMaintainRule { 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> EquipmentMaintainOperations { get; set; }

        public EquipmentMaintainRuleDetailAddOrEditVM(int id,int ruleId)
        {
            var result = App.EquipmentService.GetEquipmentMaintainOperations(t => true);
            if (result.Success)
            {
                var operations = result.Data;
                EquipmentMaintainOperations = operations.ToDictionary(t => t.Name, x => (object)x.Id);
            }

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

        public void Save()
        {
            if (EquipmentMaintainRuleDetail.Created == null)
            {
                EquipmentMaintainRuleDetail.Created = DateTime.Now;
                EquipmentMaintainRuleDetail.CreatedBy = App.User.UserCode;
            }
            EquipmentMaintainRuleDetail.Updated = DateTime.Now;
            EquipmentMaintainRuleDetail.UpdatedBy = App.User.UserCode;
            var title = EquipmentMaintainRuleDetail.Id == 0 ? Application.Enums.Title.MaintainRuleDetailAdd : Application.Enums.Title.MaintainRuleDetailEdit;
            var a = new
            {
                Corn = EquipmentMaintainRuleDetail.Cron,
            };
            var result = App.EquipmentService.SaveEquipmentMaintainRuleDetail(EquipmentMaintainRuleDetail);
            if (result.Success)
            {
                App.LogService.LogOperation(title, ModuleConst.MaintainRule, $"维护规则明细保存成功.数据:{JsonConvert.SerializeObject(a)}", result.Code.ToString(), App.User.UserCode);
                MessageBox.Show("保存成功");
            }
            else
            {
                App.LogService.LogOperation(title, ModuleConst.MaintainRule, $"维护规则明细保存失败.数据:{JsonConvert.SerializeObject(a)},详情:{result.Msg}", result.Code.ToString(), App.User.UserCode);
                MessageBox.Error($"保存失败:{result.Msg}");
            }
        }

        public void Clear()
        {
            EquipmentMaintainRuleDetail = new EquipmentMaintainRuleDetail();
            EquipmentMaintainRuleDetail.EquipmentMaintainRule = EquipmentMaintainRule;
            EquipmentMaintainRuleDetail.EquipmentMaintainRuleId = EquipmentMaintainRule.Id;
        }
    }
}