using DevExpress.Xpf.Editors;
using DevExpress.Xpf.LayoutControl;
using KGIS.Framework.DBOperator;
using KGIS.Framework.Maps;
using KGIS.Framework.Platform;
using KGIS.Framework.Utils;
using KGIS.Framework.Utils.ExtensionMethod;
using KGIS.Framework.Views;
using Kingo.PluginServiceInterface;
using Kingo.PluginServiceInterface.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Xml;
using System.Xml.Linq;
using UIShell.OSGi;
namespace Kingo.Plugin.General.View
{
///
/// UCSJSHYJ.xaml 的交互逻辑
///
public partial class UCSJFKYJ : UserControl, IElementInfo
{
private NYYSInfo ReturnComments { get; set; }
public bool IsShow { get; set; }
public int ShowIndex { get; set; }
public bool ResetSize { get; set; }
public bool AllowEdit { get; set; }
public Guid ID { get; set; }
public DockStyle DockAreas { get; set; }
public System.Drawing.Size FloatSize { get; set; }
public int DockWidth { get; set; }
public int DockHeight { get; set; }
public DockStyle DefaultArea { get; set; }
public bool ShowCloseButton { get; set; }
public bool ShowAutoHideButton { get; set; }
public string Title { get; set; }
string TypeSystem = string.Empty;
List attributeViewIsShows;
private List _Elements = null;
///
/// 省级审核意见信息
///
private IElementInfo _SHBZSketch = null;
public UCSJFKYJ()
{
InitializeComponent();
Title = "省级反馈意见";
TypeSystem = Platform.Instance.SystemType.ToString();
}
private void GetViewIsShow()
{
attributeViewIsShows = new List();
try
{
string attributeViewIsShowFilePath = System.IO.Path.Combine(SysAppPath.GetConfigPath(), "AttributeShowConfigs.xml");
XDocument pXDoc = XDocument.Load(attributeViewIsShowFilePath);
var sdm = KGIS.Framework.Utils.SysConfigsOprator.GetAppsetingValueByKey("ArearName");
IEnumerable elements = pXDoc.Element("Attributes").Elements().Where(x => x.Attribute("Name").Value.ToTrim().Contains(sdm));
var elements1 = elements.FirstOrDefault().Elements();
foreach (XElement item in elements1)
{
PluginServiceInterface.Model.Attribute attributeViewIsShow = new PluginServiceInterface.Model.Attribute();
attributeViewIsShow.Name = item.Attribute("Name").Value;
attributeViewIsShow.ViewName = item.Attribute("ViewName").Value;
attributeViewIsShow.Type = item.Attribute("Type") == null ? "" : item.Attribute("Type").Value;
attributeViewIsShow.IsShow = bool.Parse(item.Attribute("IsShow").Value);
attributeViewIsShows.Add(attributeViewIsShow);
}
}
catch (Exception ex)
{
LogAPI.Debug("获取属性配置异常:" + ex);
}
}
public void InitDTBInfoView()
{
try
{
if (_Elements == null)
{
_Elements = BundleRuntime.Instance.GetService();
}
if (_Elements == null)
return;
if (attributeViewIsShows == null) return;
#region 审核标注草图
if (attributeViewIsShows.Find(a => a.Name == "审核标注草图" && a.Type.Contains(TypeSystem)) != null && attributeViewIsShows.Find(a => a.Name == "审核标注草图" && a.Type.Contains(TypeSystem)).IsShow == true)
{
if (_SHBZSketch == null)
{
_SHBZSketch = _Elements.FirstOrDefault(f => f.Title == "审核标注草图");
}
if (_SHBZSketch != null && (_SHBZSketch as UserControl).Parent != null)
{
((_SHBZSketch as UserControl).Parent as Grid).Children.Clear();
}
if (_SHBZSketch != null)
{
SHBZSketch.Children.Add(_SHBZSketch as UIElement);
//审核标注
if (NYYSInfo != null)
_SHBZSketch.BindData(NYYSInfo);
}
else
LogAPI.Debug("加载-审核标注草图组件-失败!");
}
#endregion
}
catch (Exception ex)
{
LogAPI.Debug("初始化图斑详情页面失败!");
LogAPI.Debug(ex);
}
}
private NYYSInfo NYYSInfo { get; set; }
private TaskPackage taskPackage { get; set; }
System.Drawing.Size IDockPanel.FloatSize { get ; set ; }
public void BindData(object obj)
{
IRDBHelper rdbHelper = null;
try
{
NYYSInfo nYYSInfo = obj as NYYSInfo;
this.NYYSInfo = nYYSInfo;
//新疆需求
if (KGIS.Framework.Utils.SysConfigsOprator.GetAppsetingValueByKey("ArearName").Equals("65"))
{
GetViewIsShow();
InitDTBInfoView();
}
else
SHBZSketch.Visibility = Visibility.Collapsed;
if (nYYSInfo != null)
{
this.taskPackage = nYYSInfo.TaskPackages;
if (NYYSInfo.WYRWTB == null || string.IsNullOrWhiteSpace(NYYSInfo.WYRWTB.TBBSM) || taskPackage == null || string.IsNullOrWhiteSpace(taskPackage.PackageTempPath) || !System.IO.File.Exists(taskPackage.PackageTempPath))
{
this.DataContext = null;
return;
}
this.ReturnComments = new NYYSInfo();
rdbHelper = RDBFactory.CreateDbHelper($"{taskPackage.PackageTempPath}{(MapsManager.Instance.CurrProjectInfo as ProjectInfo).Pathpassword}", DatabaseType.SQLite);
if (!rdbHelper.TableIsExist("ReturnComments"))
{
this.DataContext = null;
this.DataContext = this.ReturnComments;
}
DataTable dataTable = rdbHelper.ExecuteDatatable("gjshyj", $"select * from ReturnComments where tbbsm='{NYYSInfo.WYRWTB.TBBSM}'", true);
this.LayoutControl.Children.Clear();
if (dataTable == null || dataTable.Rows.Count == 0) return;
this.ReturnComments.SHJG = KGIS.Framework.Utils.Utility.TBToList.ConvertEntity(dataTable.Rows[0]);
this.DataContext = null;
this.DataContext = this.ReturnComments;
XmlDocument doc = new XmlDocument();
string strPath = System.IO.Path.Combine(SysAppPath.GetConfigPath(), "GeneralConfig.xml");
doc.Load(strPath);
XmlElement entityElem = (XmlElement)doc.SelectSingleNode("/GeneralConfig/SJSHJG");
foreach (XmlElement propElem in entityElem.SelectNodes("property"))
{
if (propElem.GetAttribute("Visibility") != "true") continue;
if (!dataTable.Columns.Contains(propElem.GetAttribute("Name"))) continue;
string value = dataTable.Rows[0][$"{propElem.GetAttribute("Name")}"].ToString();
LayoutItem layoutItem = new LayoutItem();
layoutItem.Label = $"{propElem.GetAttribute("LabelName")}:";
layoutItem.Height = 30;
layoutItem.LabelHorizontalAlignment = System.Windows.HorizontalAlignment.Right;
TextEdit textEdit = new TextEdit();
textEdit.Height = 27;
textEdit.IsReadOnly = true;
textEdit.Text = value.Replace("null", "").Trim();
layoutItem.Content = textEdit;
LayoutControl.Children.Add(layoutItem);
}
}
}
catch (Exception ex)
{
LogAPI.Debug($"{ex.Message}");
LogAPI.Debug($"{ex.Source}");
}
}
public void SaveEdit()
{
}
}
}