using System.Collections.Generic; using System.Linq; namespace DeviceRepair.Models.Preserve.JsonData { public class ContentData { /// /// 安装地点 /// public List InstallationSite { get; set; } /// /// 设备名称 /// public List EquipmentName { get; set; } /// /// 设备型号规格 /// public List DeviceSpecification { get; set; } /// /// 设备编号 /// public List EquipmentID { get; set; } /// /// 年 /// public List Year { get; set; } /// /// 内容 /// public List Content { get; set; } /// /// 其他异常处理 /// public List ExceptionDescription { get; set; } /// /// 操作员 /// public List Operation { get; set; } /// /// 操作日期 /// public List OperationDate { get; set; } /// /// 年/月 /// public List YearAndMonth { get; set; } public void MergeData(ContentData News) { MergeExceptionDescription(News.ExceptionDescription); MergeOperationDate(News.OperationDate); MergeOperation(News.Operation); MergeContent(News.Content); } private void MergeExceptionDescription(List News) { /* 传入的对象为空 */ if (News == null && News.Count == 0) return; /* 原数据对象为空 */ if (ExceptionDescription == null || ExceptionDescription.Count == 0) { ExceptionDescription = new List(); ExceptionDescription.AddRange(News); } else { // 当前存在数据 foreach (SheetDataItem item in News) { /* 旧数据 */ SheetDataItem oldValue = ExceptionDescription.FirstOrDefault(x => x.RowIndex == item.RowIndex && x.ColumnIndex == item.ColumnIndex); if (oldValue != null) { oldValue.Value += System.Environment.NewLine + item.Value; } else { OperationDate.Add(item); } } } } private void MergeOperationDate(List News) { /* 传入的对象为空 */ if (News == null && News.Count == 0) return; /* 原数据对象为空 */ if (OperationDate == null || OperationDate.Count == 0) { OperationDate = new List(); OperationDate.AddRange(News); } else { // 当前存在数据 foreach (SheetDataItem item in News) { /* 旧数据 */ SheetDataItem oldValue = OperationDate.FirstOrDefault(x => x.RowIndex == item.RowIndex && x.ColumnIndex == item.ColumnIndex); if (oldValue != null) { oldValue.Value = item.Value; } else { OperationDate.Add(item); } } } } private void MergeOperation(List News) { /* 传入的对象为空 */ if (News == null && News.Count == 0) return; /* 原数据对象为空 */ if (Operation == null || Operation.Count == 0) { Operation = new List(); Operation.AddRange(News); } else { // 当前存在数据 foreach (SheetDataItem item in News) { /* 旧数据 */ SheetDataItem oldValue = Operation.FirstOrDefault(x => x.RowIndex == item.RowIndex && x.ColumnIndex == item.ColumnIndex); if (oldValue != null) { oldValue.Value = item.Value; } else { Operation.Add(item); } } } } private void MergeContent(List News) { /* 传入的对象为空 */ if (News == null && News.Count == 0) return; /* 原数据对象为空 */ if (Content == null || Content.Count == 0) { Content = new List(); Content.AddRange(News); } else { // 当前存在数据 foreach (SheetDataItem item in News) { /* 旧数据 */ SheetDataItem oldValue = Content.FirstOrDefault(x => x.RowIndex == item.RowIndex && x.ColumnIndex == item.ColumnIndex); if (oldValue != null) { oldValue.Value = item.Value; } else { Content.Add(item); } } } } } }