using System.Collections.Generic;
using ESRI.ArcGIS.Geodatabase;
namespace Kingo.PluginServiceInterface
{
    public delegate void InspectionCompleted();
    public interface IDataCheckInterface
    {
        /// 
        /// 地类图斑变更数据检查(属性/图形)
        /// 
        /// 
        /// 
        List DLTBBGCheck(IFeature ifeature);
        /// 
        /// 地类图斑变更数据检查(属性/图形)
        /// 
        /// 
        /// 
        List DLTBBGCheck(IFeatureClass featureClass);
        /// 
        /// 单个Feature属性检查
        /// 
        /// 
        /// 
        List AttributeCheck(IFeature ifeature);
        /// 
        /// 单独图层属性检查
        /// 
        /// 
        /// 
        List AttributeCheck(IFeatureClass featureClass);
        /// 
        /// 单个Feature图形检查
        /// 
        /// 
        /// 
        List GraphicCheck(IFeature ifeature);
        /// 
        /// 单图层图形检查
        /// 
        /// 
        /// 
        List GraphicCheck(IFeatureClass featureClass);
        /// 
        /// 图层间图形检查
        /// 
        /// 
        /// 
        /// 
        List GraphicCheck(IFeatureClass FirstfeatureClass, IFeatureClass SecondfeatureClass);
        /// 
        /// 数据检查完成状态
        /// 
        bool inspectionCompleted { get; set; }
        /// 
        /// 设置是否为多线程执行操作
        /// 
        bool isMultithreading { get; set; }
        /// 
        /// 数据检查完成事件
        /// 
        event InspectionCompleted InspectionCompleted;
    }
    /// 
    /// 数据检查结果
    /// 
    public class DataCheckResult : BaseNotifyProperty
    {
        public int ID { get; set; }
        public int PID { get; set; }
        private string _Icon;
        public string Icon
        {
            get
            {
                return _Icon;
            }
            set
            {
                _Icon = value;
                base.NotifyProperty(this, "Icon");
            }
        }
        private EnumErrorType _ErrorType;
        public EnumErrorType ErrorType
        {
            get
            {
                return _ErrorType;
            }
            set
            {
                _ErrorType = value;
                base.NotifyProperty(this, "ErrorType");
                Icon = string.Format("pack://siteoforigin:,,,/Images/{0}.{1}", value.ToString(), "png");
            }
        }
        public string ErrorLayer { get; set; }
        public string PrimaryKey { get; set; }
        public string PrimaryKeyValue { get; set; }
        public string BSM { get; set; }
        public string PrimaryKeyValue2 { get; set; }
        public string ErrorCode { get; set; }
        public string ErrorDesc { get; set; }
        public object ErrorData { get; set; }
        public string ErrorArea { get; set; }
        public double ErrorMJ { get; set; }
        public string RepairfilePath { get; set; }
    }
}