using Newtonsoft.Json; using OliviaAddInPro.View.Configuracion; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using Xceed.Wpf.Toolkit.PropertyGrid; using Xceed.Wpf.Toolkit.PropertyGrid.Editors; using Xceed.Wpf.Toolkit.PropertyGrid.Attributes; namespace OliviaAddInPro.Model { [CategoryOrder("General", 1)] [CategoryOrder("Campos Limpieza", 2)] [CategoryOrder("Atributos Limpieza", 3)] [CategoryOrder("Campos Recogida", 4)] [CategoryOrder("Atributos recogida", 5)] [CategoryOrder("Campos Red Navegable", 6)] [CategoryOrder("Atributos Red Navegable", 7)] [CategoryOrder("Tiempos de la jornada - Avanzadas", 8)] [CategoryOrder("Anchos por defecto Limpieza (m) - Avanzadas", 9)] [CategoryOrder("Tiempos de Tratamiento Limpieza - Avanzadas", 10)] [CategoryOrder("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas", 11)] [CategoryOrder("Tiempos de Tratamiento Recogida (min) - Avanzadas", 12)] [CategoryOrder("Densidades Recogida (kg/m3) - Avanzadas", 13)] [CategoryOrder("Características Vehículo Recogida - Avanzadas", 14)] [CategoryOrder("General - Avanzadas", 15)] [CategoryOrder("Simbología Cartela - Avanzadas", 16)] [Serializable] class OliviaConf { [TypeConverter(typeof(EnumToStringUsingDescription))] public enum OpsRecoCont { [Description("Contenedor lleno (usa capac. y densidad cont.)")] LlenoUsaDensidad, [Description("Lee campo 'Kg del Contenedor'")] LeeCampoTabla, [Description("Usa 'Kg por Defecto'")] UsaKgDef } private string m2s(int min) { var val = min; int horas = val / 60; return string.Format("{0}:{1:D2}", horas, val - (horas * 60)); } private int s2m(string str, int defec) { var match = Regex.Match(str, @"^([0-9]*):([0-9]*)"); if (match.Success) { int res = 0; var horas = match.Groups[1].Value; var min = match.Groups[2].Value; if (!string.IsNullOrEmpty(horas)) res += Int32.Parse(horas) * 60; if (!string.IsNullOrEmpty(min)) res += Int32.Parse(min) * 60; return res; } return defec; } public OliviaConf() { Ip = "0.0.0.0"; Puerto = 19995; TiempoOutSocket = 20; } #region PropiedadesOcultas #region parametrosConexion /** * IP donde va a realizar la conexión a OliviaTask, se inicializa al arrancar con la local */ [Browsable(false)] public string Ip { get; set; } /** * Puerto local donde va a realizar la conexión a OliviaTask, se inicializa al arrancar */ [Browsable(false)] public int Puerto { get; set; } /** * Time out de la conexión con OliviaTask, en seg */ [Browsable(false)] public int TiempoOutSocket { get; set; } #endregion #region Paths [Browsable(false)] public string path_work { get; set; } [Browsable(false)] public string path_exe { get; set; } [Browsable(false)] public string path_manual { get; set; } [Browsable(false)] public string path_temp { get; set; } [Browsable(false)] public string path_data { get; set; } #endregion #region FILTROS_LIMP [Browsable(false)] public string ejes { get; set; } [Browsable(false)] public string bord_libre_mec { get; set; } [Browsable(false)] public string bord_libre_no_mec { get; set; } [Browsable(false)] public string bord_aparc { get; set; } [Browsable(false)] public string bord_acera_mec { get; set; } [Browsable(false)] public string bord_acera_no_mec { get; set; } [Browsable(false)] public string calle_peat_mec { get; set; } [Browsable(false)] public string calle_peat_no_mec { get; set; } [Browsable(false)] public string caida_hoja_mec { get; set; } [Browsable(false)] public string caida_hoja_no_mec { get; set; } [Browsable(false)] public string contenedores { get; set; } [Browsable(false)] public string pape { get; set; } [Browsable(false)] public string zon_inf { get; set; } [Browsable(false)] public string pipican { get; set; } [Browsable(false)] public string sanecan { get; set; } #endregion #region PARAM_LIMP_Ocult [Browsable(false)] public int t_tratamiento_max { get; set; } [Browsable(false)] public int t_tratamiento_min { get; set; } [Browsable(false)] public int v_desplaz_max { get; set; } [Browsable(false)] public int v_desplaz_min { get; set; } [Browsable(false)] public int t_carga_desc_max { get; set; } [Browsable(false)] public int t_carga_desc_min { get; set; } [Browsable(false)] public int t_desplaz_max { get; set; } [Browsable(false)] public int t_desplaz_min { get; set; } [Browsable(false)] public int t_convenio_max { get; set; } [Browsable(false)] public int t_convenio_min { get; set; } [Browsable(false)] public int t_descanso_max { get; set; } [Browsable(false)] public int t_descanso_min { get; set; } [Browsable(false)] public int ancho_via_max { get; set; } [Browsable(false)] public int ancho_via_min { get; set; } #endregion #region ParametrosReco_Ocultos [Browsable(false)] public int t_vaciado_max { get; set; } [Browsable(false)] public int t_vaciado_min { get; set; } [Browsable(false)] public int t_llega_sale_max { get; set; } [Browsable(false)] public int t_llega_sale_min { get; set; } [Browsable(false)] public int t_descarga_max { get; set; } [Browsable(false)] public int t_descarga_min { get; set; } [Browsable(false)] public int R_t_convenio_max { get; set; } [Browsable(false)] public int R_t_convenio_min { get; set; } [Browsable(false)] public int R_t_descanso_max { get; set; } [Browsable(false)] public int R_t_descanso_min { get; set; } #endregion #region OtrasConfiguraciones [Browsable(false)] public string PathGdbGen { get; set; } [Browsable(false)] public string PathCartela { get; set; } [Browsable(false)] public string PathSimbVSM { get; set; } [Browsable(false)] public string PathSimbESRI { get; set; } #endregion #endregion #region 01General [Category("General")] [DisplayName("Red de carreteras")] [PropertyOrder(1)] [Description("Red de carreteras que se usa para la navegación")] [Editor(typeof(PropertyGridFilePickerLine), typeof(PropertyGridFilePickerLine))] public string Path_Eje_via { get; set; } [Category("General")] [PropertyOrder(2)] [DisplayName("Buffer de exportación (m)")] [Description("Buuffer extra, en metros, que se va a exportar de la red de carreteras")] public int buffer_export { get; set; } [Category("General")] [PropertyOrder(3)] [DisplayName("Campo Sector")] [Description("Nombre del campo Sector donde se indica el sector al que pertenece el ámbito")] public string consulta_sector { get; set; } [Category("General")] [PropertyOrder(4)] [DisplayName("Campo Secuencia")] [Description("Nombre del campo Secuencia donde se indica el orden en que se trata el ámbito dentro de su sector")] public string consulta_secuen { get; set; } [Category("General")] [PropertyOrder(5)] [DisplayName("GDB para Importación")] [Description("Gdb en la que se importarán los resultados de la ejecución")] [Editor(typeof(PropertyGridFilePickerGDB), typeof(PropertyGridFilePickerGDB))] public string Path_Gdb_Import { get; set; } [Category("General")] [PropertyOrder(5)] [DisplayName("Carpeta para listados (CSV)")] [Description("Carpeta en la que se guardarán los listados en CSV de la planificación")] [Editor(typeof(PropertyGridFilePickerFolder), typeof(PropertyGridFilePickerFolder))] public string Path_Guarda_Csv { get; set; } #endregion #region 02CamposLimp [Category("Campos Limpieza")] [PropertyOrder(1)] [DisplayName("Tipo de entidad")] [Description("Nombre del campo que indica el tipo de entidad")] public string cons_tip_ent { get; set; } [Category("Campos Limpieza")] [PropertyOrder(2)] [DisplayName("Mecanizable")] [Description("Nombre del campo que indica si es Mecanizable")] public string cons_mecaniz { get; set; } [Category("Campos Limpieza")] [PropertyOrder(3)] [DisplayName("Observaciones")] [Description("Nombre del campo de Observaciones")] public string cons_obser { get; set; } [Category("Campos Limpieza")] [PropertyOrder(4)] [DisplayName("Ancho aceras")] [Description("Nombre del campo que indica el Ancho de las aceras")] public string cons_anch_tip { get; set; } [Category("Campos Limpieza")] [PropertyOrder(5)] [DisplayName("Tipo de aparcamiento")] [Description("Nombre del campo que indica el Tipo de aparcamiento")] public string cons_tipolo { get; set; } #endregion #region 03AtrLimp [Category("Atributos Limpieza")] [PropertyOrder(1)] [DisplayName("Acera")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Acera'")] public string atr_acera { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(2)] [DisplayName("Banda Aparcamiento")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Banda de aparcamiento'")] public string atr_aparc { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(3)] [DisplayName("Bordillo libre")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Bordillo libre'")] public string atr_bord { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(4)] [DisplayName("Caída de hoja")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Caída de hoja'")] public string atr_hoja { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(5)] [DisplayName("Peatonales")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Calle peatonal'")] public string atr_peat { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(12)] [DisplayName("Mecanizable (MECANIZABLE=Sí)")] [Description("Valor del campo 'Mecanizable' para el atributo 'Sí Mecanizable'")] public string atr_mec_s { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(13)] [DisplayName("No mecanizable (MECANIZABLE=No)")] [Description("Valor del campo 'Mecanizable' para el atributo 'No mecanizable'")] public string atr_mec_n { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(6)] [DisplayName("Juegos infantiles")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Juegos infantiles'")] public string atr_infan { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(7)] [DisplayName("Papelera")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Papelera'")] public string atr_pape { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(8)] [DisplayName("Pipican")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Pipican'")] public string atr_pipi { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(9)] [DisplayName("Sanecan")] [Description("Valor del campo 'Tipo de entidad' para el atributo 'Saneacan'")] public string atr_sane { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(10)] [DisplayName("Aparcamiento en linea")] [Description("Valor del campo 'Tipo de aparcamiento' para el atributo 'Aparcamiento en linea'")] public string atr_ap_lin { get; set; } [Category("Atributos Limpieza")] [PropertyOrder(11)] [DisplayName("Aparacamiento en bateria")] [Description("Valor del campo 'Tipo de aparcamiento' para el atributo 'Aparcamiento en bateria'")] public string atr_ap_bat { get; set; } #endregion #region 04CamposRecogida [Category("Campos Recogida")] [DisplayName("ID")] [Description("Nombre del campo que indica el ID del contenedor")] public string id { get; set; } [Category("Campos Recogida")] [DisplayName("Tipo de carga")] [Description("Nombre del campo que indica el tipo de carga")] public string nomrec { get; set; } [Category("Campos Recogida")] [DisplayName("Lateralidad")] [Description("Nombre del campo que indica la lateralidad")] public string lateralidad { get; set; } [Category("Campos Recogida")] [DisplayName("Fracción")] [Description("Nombre del campo que indica la fracción")] public string frac { get; set; } [Category("Campos Recogida")] [DisplayName("Capacidad")] [Description("Nombre del campo que indica la capacidad del contenedor, en m3")] public string capac { get; set; } [Category("Campos Recogida")] [DisplayName("Unidades")] [Description("Nombre del campo que indica el número de contenedores en una ubicación")] public string uds { get; set; } [Category("Campos Recogida")] [PropertyOrder(8)] [ReadOnly(false)] [DisplayName("Campo 'Kg del contenedor'")] [Description("Nombre del campo que indica los kg del contenedor")] public string kgrec { get; set; } [Category("Campos Recogida")] [PropertyOrder(9)] [ReadOnly(false)] [DisplayName("Kg por defecto")] [Description("Esta propiedad indica los kg a utilizar para todos los contenedores por defecto en caso de no leer el campo")] public int kgrec_val { get; set; } [Category("Campos Recogida")] [PropertyOrder(7)] [DisplayName("Kg a recoger")] [JsonIgnore] [Description("Esta propiedad indica si se usa contenedor lleno, en cuyo caso se emplea la densidad de la " + "fracción en contenedor y su capacidad, o bien si se debe usar el valor por defecto 'Kg defecto' o bien se deben leer los kg de cada contenedor del campo 'Kg del contenedor'")] [RefreshProperties(System.ComponentModel.RefreshProperties.All)] public OpsRecoCont opsRecoCont { get { OpsRecoCont val; if (is_lleno) { val=OpsRecoCont.LlenoUsaDensidad; } else if (is_campo) { val= OpsRecoCont.LeeCampoTabla; } else { val= OpsRecoCont.UsaKgDef; } return val; } set { switch (value) { case OpsRecoCont.LlenoUsaDensidad: is_lleno = true; is_campo = false; break; case OpsRecoCont.LeeCampoTabla: is_lleno = false; is_campo = true; break; case OpsRecoCont.UsaKgDef: is_lleno = false; is_campo = false; break; } check(value); } } //falta hacer que al iniciar ya se pinten bien, al seleccionar lo hace bien void check(OpsRecoCont val) { PropertyDescriptor propDescrKgDef = TypeDescriptor.GetProperties(this.GetType())["kgrec_val"]; PropertyDescriptor propDescrKgTabla = TypeDescriptor.GetProperties(this.GetType())["kgrec"]; ReadOnlyAttribute attrKgDef = propDescrKgDef.Attributes[typeof(ReadOnlyAttribute)] as ReadOnlyAttribute; ReadOnlyAttribute attrKgTabla = propDescrKgTabla.Attributes[typeof(ReadOnlyAttribute)] as ReadOnlyAttribute; if (attrKgDef != null && attrKgTabla != null) { System.Reflection.FieldInfo aFieldKgDef = attrKgDef.GetType().GetField("isReadOnly", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); System.Reflection.FieldInfo aFieldKgTabla = attrKgTabla.GetType().GetField("isReadOnly", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); aFieldKgDef.SetValue(attrKgDef, val!= OpsRecoCont.UsaKgDef); aFieldKgDef.SetValue(attrKgTabla, val != OpsRecoCont.LeeCampoTabla); } } [Category("Campos Recogida")] [Browsable(false)] [DisplayName("¿Lleno?")] [Description("Indica si se debe considerar que todos los contenedores están llenos")] public bool is_lleno { get; set; } [Category("Campos Recogida")] [Browsable(false)] [DisplayName("¿Lee el campo de kg?")] [Description("Indica si se deben leer los kg de cada contenedor del campo 'Kg a recoger'")] public bool is_campo { get; set; } #endregion #region 05AtributosRecogida [Category("Atributos recogida")] [PropertyOrder(1)] [DisplayName("Fracción Organica")] [Description("Valor del campo 'Fracción' para el atributo 'Orgánica'")] public string organica { get; set; } [Category("Atributos recogida")] [PropertyOrder(2)] [DisplayName("Fracción Resto")] [Description("Valor del campo 'Fracción' para el atributo 'Resto'")] public string resto { get; set; } [Category("Atributos recogida")] [PropertyOrder(3)] [DisplayName("Fracción Envases")] [Description("Valor del campo 'Fracción' para el atributo 'Envases'")] public string envase { get; set; } [Category("Atributos recogida")] [PropertyOrder(4)] [DisplayName("Fracción Papel")] [Description("Valor del campo 'Fracción' para el atributo 'Papel'")] public string papel { get; set; } [Category("Atributos recogida")] [PropertyOrder(5)] [DisplayName("Fracción Vidrio")] [Description("Valor del campo 'Fracción' para el atributo 'Vidrio'")] public string vidrio { get; set; } [Category("Atributos recogida")] [PropertyOrder(6)] [DisplayName("Carga trasera")] [Description("Valor del campo 'Tipo de carga' para el atributo 'Trasera'")] public string trasera { get; set; } [Category("Atributos recogida")] [PropertyOrder(7)] [DisplayName("Carga lateral")] [Description("Valor del campo 'Tipo de carga' para el atributo 'Lateral'")] public string lateral { get; set; } [Category("Atributos recogida")] [PropertyOrder(8)] [DisplayName("Carga superior")] [Description("Valor del campo 'Tipo de carga' para el atributo 'Superior'")] public string superior { get; set; } [Category("Atributos recogida")] [PropertyOrder(9)] [DisplayName("Carga Bilateral")] [Description("Valor del campo 'Tipo de carga' para el atributo 'Bilateral'")] public string bilat { get; set; } [Category("Atributos recogida")] [PropertyOrder(10)] [DisplayName("Bolseo")] [Description("Valor del campo 'Tipo de carga' para el atributo 'Bolseo'")] public string bolseo { get; set; } [Category("Atributos recogida")] [PropertyOrder(11)] [DisplayName("Lavado")] [Description("Valor del campo 'Tipo de carga' para el atributo 'Lavado'")] public string lavado { get; set; } [Category("Atributos recogida")] [PropertyOrder(14)] [DisplayName("Carga lat. - Ambos")] [Description("Valor del campo 'Lateralidad' para el atributo 'Ambos'")] public string ambos { get; set; } [Category("Atributos recogida")] [PropertyOrder(12)] [DisplayName("Carga lat. - Derecha")] [Description("Valor del campo 'Lateralidad' para el atributo 'Derecha'")] public string derecha { get; set; } [Category("Atributos recogida")] [PropertyOrder(13)] [DisplayName("Carga lat. - Izquierda")] [Description("Valor del campo 'Lateralidad' para el atributo 'Izquierda'")] public string izquierda { get; set; } #endregion #region 06CambosNW [Category("Campos Red Navegable")] [DisplayName("Sentido de la vía")] [Description("Nombre del campo que indica si la vía es de doble sentido o no")] public string cons_onew { get; set; } [Category("Campos Red Navegable")] [DisplayName("Velocidad de la vía")] [Description("Nombre del campo que indica la velociad máxima permitida de la vía")] public string cons_kph { get; set; } [Category("Campos Red Navegable")] [DisplayName("Tipo de vía")] [Description("Nombre del campo que indica el tipo de la vía (usado para ver si es vía peatonal).")] public string cons_fow { get; set; } [Category("Campos Red Navegable")] [DisplayName("Nombre de la vía")] [Description("Nombre del campo que indica el nombre de la vía")] public string cons_name { get; set; } #endregion #region 07AtrNw [Category("Atributos Red Navegable")] [PropertyOrder(1)] [DisplayName("To-From")] [Description("Valor del campo 'Sentido de la vía' que indica sentido de la vía To-From")] public string atr_TF { get; set; } [Category("Atributos Red Navegable")] [PropertyOrder(2)] [DisplayName("From-To")] [Description("Valor del campo 'Sentido de la vía' que indica sentido de la vía From-To")] public string atr_FT { get; set; } [Category("Atributos Red Navegable")] [PropertyOrder(3)] [DisplayName("Sin circulación")] [Description("Valor del campo 'Sentido de la vía' que indica no circulación")] public string atr_N { get; set; } [Category("Atributos Red Navegable")] [PropertyOrder(4)] [DisplayName("Peatonal")] [Description("Valor del campo 'Tipo de vía' que indica que es calle peatonal")] public string atr_pedes { get; set; } #endregion #region 08TiemposJornAvanz [Category("Tiempos de la jornada - Avanzadas")] //OCULTAR [DisplayName("Desplazamientos (min)")] [Description("Tiempo de desplazamiento desde la instalación al punto de partida de la ruta en horas:minutos, " + "cuando no hay definida instalación")] /*[JsonIgnore] public string timeDesplazamiento { get { return m2s(t_desplaz); } set { t_desplaz = s2m(value, t_desplaz); } } [Browsable(false)]*/ public int t_desplaz { get; set; } [Category("Tiempos de la jornada - Avanzadas")] //OCULTAR [DisplayName("Carga/descarga (min)")] [Description("Tiempo de descarga en planta o bien carga/descarga en instalación, en horas:minutos")] /*[JsonIgnore] public string timeDescarga { get { return m2s(t_carga_desc); } set { t_carga_desc = s2m(value, t_carga_desc); } } [Browsable(false)]*/ public int t_carga_desc { get; set; } [Category("Tiempos de la jornada - Avanzadas")] //OCULTAR [DisplayName("Descanso (min)")] [Description("Tiempo de descanso del personal según convenion, en minutos")] /*[JsonIgnore] public string timeDescanso { get { return m2s(t_descanso); } set { t_descanso = s2m(value, t_descanso); } } [Browsable(false)]*/ public int t_descanso { get; set; } [Category("Tiempos de la jornada - Avanzadas")] //OCULTAR [PropertyOrder(1)] [DisplayName("Jornada (convenio)")] [Description("Tiempo de la jornada según convenio en formato horas:minutos")] [JsonIgnore] /*public string timeConvenio { get { return m2s(t_convenio); } set { t_convenio = s2m(value, t_convenio); } }*/ [Editor(typeof(DateTimePickerEditor), typeof(DateTimePickerEditor))] public DateTime timeConvenio { get { return PanelGlobal.Hm_int2DateTime(t_convenio); } set { t_convenio = PanelGlobal.Hm_DateTime2int(value); } } [Browsable(false)] public int t_convenio { get; set; } [Category("Tiempos de la jornada - Avanzadas")] //OCULTAR [PropertyOrder(2)] [DisplayName("Hora de inicio")] [Description("Hora de inicio de la jornada, en horas:minutos")] [JsonIgnore] /*public string horaInicio { get { return m2s(hora_inicio); } set { hora_inicio = s2m(value, hora_inicio); } }*/ [Editor(typeof(DateTimePickerEditor), typeof(DateTimePickerEditor))] public DateTime horaInicio { get { return PanelGlobal.Hm_int2DateTime(hora_inicio); } set { hora_inicio = PanelGlobal.Hm_DateTime2int(value); } } [Browsable(false)] public int hora_inicio { get; set; } //ES UNA HORA, SON LOS MINUTOS DESDE LAS 00, PERO TIENE QUE APARECER CON FORMATO DE TIME 07:30, POR EJEMPLO [Category("Tiempos de la jornada - Avanzadas")] //OCULTAR [DisplayName("Salida/llegada, en recogida (min)")] [Description("")] public int t_llega_sale { get; set; } [Category("Tiempos de la jornada - Avanzadas")] //OCULTAR [DisplayName("Descarga en planta, en recogida (min)")] [Description("")] public int t_descarga { get; set; } #endregion #region 09AnchosLimpAvanz [Category("Anchos por defecto Limpieza (m) - Avanzadas")] //OCULTAR [DisplayName("Ancho de la vía")] [Description("Ancho vía cuando se usa eje de vía como ámbitos. En metros")] public int ancho_via { get; set; } [Category("Anchos por defecto Limpieza (m) - Avanzadas")] //OCULTAR [DisplayName("Calle peatonal")] [Description("Ancho por defecto calle peatonal. En metros")] public double Ancho_peat_def { get; set; } [Category("Anchos por defecto Limpieza (m) - Avanzadas")] //OCULTAR [DisplayName("Acera")] [Description("Ancho de acera por defecto. En metros")] public double Ancho_acera_def { get; set; } [Category("Anchos por defecto Limpieza (m) - Avanzadas")] //OCULTAR [DisplayName("Aparcamiento linea")] [Description("Ancho por defecto del aparcamiento en linea. En metros")] public double Ancho_ap_lin_def { get; set; } [Category("Anchos por defecto Limpieza (m) - Avanzadas")] //OCULTAR [DisplayName("Aparcamiento bateria")] [Description("Ancho por defecto del aparcamiento en bateria. En metros")] public double Ancho_ap_bat_def { get; set; } [Category("Anchos por defecto Limpieza (m) - Avanzadas")] //OCULTAR [DisplayName("Bordillo libre")] [Description("Ancho por defecto del bordillo libre. En metros")] public double Ancho_bord_lib_def { get; set; } #endregion #region 10TiemposLimpAvanz [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Barrido manual (m2/h)")] [Description("")] public int t_tratamiento_BarMan { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Barrido manual de mantenimiento (m2/h)")] [Description("")] public int t_tratamiento_BarManMant { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Barrido manual motorizado (m2/h)")] [Description("")] public int t_tratamiento_BarMMot { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Barrido mecánico de calzadas (m/h)")] [Description("")] public int t_tratamiento_BarMC { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Barrido mecánico de aceras y peatonales (m2/h)")] [Description("")] public int t_tratamiento_BarMAP { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Barrido mixto (m2/h)")] [Description("")] public int t_tratamiento_BarMix { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Baldeo manual (m2/h)")] [Description("")] public int t_tratamiento_BalMan { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Baldeo mecánico de calzadas (m/h)")] [Description("")] public int t_tratamiento_BalMC { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Baldeo mecánico de aceras y calles peatonales (m2/h)")] [Description("")] public int t_tratamiento_BalMAP { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Baldeo mixto (m2/h)")] [Description("")] public int t_tratamiento_BalMix { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Brigada de Limpieza (m2/h)")] [Description("")] public int t_tratamiento_BL { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Caída hoja (m2/h)")] [Description("")] public int t_tratamiento_CH { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Vaciado de Papeleras (min)")] [Description("")] /*[JsonIgnore] public string str_t_tratamiento_VPap { get { return m2s(t_tratamiento_VPap); } set { t_tratamiento_VPap = s2m(value, t_tratamiento_VPap); } } [Browsable(false)]*/ public int t_tratamiento_VPap { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Limpieza de Papeleras (min)")] [Description("")] /*[JsonIgnore] public string Tiempo_tratamiento_LPap { get { return m2s(t_tratamiento_LPap); } set { t_tratamiento_LPap = s2m(value, t_tratamiento_LPap); } } [Browsable(false)]*/ public int t_tratamiento_LPap { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Limpieza de contenedores (min)")] [Description("")] /*[JsonIgnore] public string str_t_tratamiento_LC { get { return m2s(t_tratamiento_LC); } set { t_tratamiento_LC = s2m(value, t_tratamiento_LC); } } [Browsable(false)]*/ public int t_tratamiento_LC { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Limpieza de zonas infantiles (min)")] [Description("")] /*[JsonIgnore] public string str_t_tratamiento_LZI { get { return m2s(t_tratamiento_LZI); } set { t_tratamiento_LZI = s2m(value, t_tratamiento_LZI); } } [Browsable(false)]*/ public int t_tratamiento_LZI { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Limpieza de pipicanes (min)")] [Description("")] /*[JsonIgnore] public string str_t_tratamiento_LPip { get { return m2s(t_tratamiento_LPip); } set { t_tratamiento_LPip = s2m(value, t_tratamiento_LPip); } } [Browsable(false)]*/ public int t_tratamiento_LPip { get; set; } [Category("Tiempos de Tratamiento Limpieza - Avanzadas")] //OCULTAR [DisplayName("Limpieza de saneacanes (min)")] [Description("")] /*[JsonIgnore] public string str_t_tratamiento_LS { get { return m2s(t_tratamiento_LS); } set { t_tratamiento_LS = s2m(value, t_tratamiento_LS); } } [Browsable(false)]*/ public int t_tratamiento_LS { get; set; } #endregion #region 11VeloDesplLimpAvanz [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Barrido manual")] [Description("Velocidad de desplazamiento de barrido Manual")] public int v_desp_BarMan { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Barrido mantenimiento manual")] [Description("Velocidad de desplazamiento de barrido mantenimiento manual")] public int v_desp_BarManMant { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Barrido manual motorizado")] [Description("Velocidad de desplazamiento de Barrido manual motorizado")] public int v_desp_BarMMot { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Barrido mecánico calzadas")] [Description("Velocidad de desplazamiento de barrido mecánico de calzadas")] public int v_desp_BarMC { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Barrido aceras peatonales")] [Description("Velocidad de desplazamiento de barrido mecánico aceras peatonales")] public int v_desp_BarMAP { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Barrido mixto")] [Description("Velocidad de desplazamiento de barrido mixto")] public int v_desp_BarMix { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Baldeo manual")] [Description("Velocidad de desplazamiento de baldeo manual")] public int v_desp_BalMan { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Baldeo aceras peatonales")] [Description("Velocidad de desplazamiento de Baldeo_mecanico_aceras_peatonales")] public int v_desp_BalMAP { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Baldeo mixto")] [Description("Velocidad de desplazamiento de baldeo mixto")] public int v_desp_BalMix { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Brigada limpieza")] [Description("Velocidad de desplazamiento de brigada de limpieza")] public int v_desp_BL { get; set; } [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Caída hoja")] [Description("Velocidad de desplazamiento de Caída de hoja")] public int v_desp_CH { get; set; } [Browsable(false)]//Es 0 porque va según la vía [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Baldeo mecánico calzadas")] [Description("Velocidad de desplazamiento de baldeo mecánico de calzadas")] public int v_desp_BalMC { get; set; } [Browsable(false)] //Es 0 porque va según la vía [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Vaciado papeleras")] [Description("Velocidad de desplazamiento de vaciado de papeleras")] public int v_desp_VPap { get; set; } [Browsable(false)] //Es 0 porque va según la vía [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Limpieza papeleras")] [Description("Velocidad de desplazamiento de limpieza de papeleras")] public int v_desp_LPap { get; set; } [Browsable(false)] //Es 0 porque va según la vía [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Limpieza contenedores")] [Description("Velocidad de desplazamiento de Limpieza de contenedores")] public int v_desp_LC { get; set; } [Browsable(false)] //Es 0 porque va según la vía [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Limpieza zonas infantiles")] [Description("Velocidad de desplazamiento de Limpieza de zonas infantiles")] public int v_desp_LZI { get; set; } [Browsable(false)] //Es 0 porque va según la vía [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Limpieza pipicanes")] [Description("Velocidad de desplazamiento de Limpieza de pipicanes")] public int v_desp_LPip { get; set; } [Browsable(false)] //Es 0 porque va según la vía [Category("Velocidades de Desplazamiento Limpieza (km/h) - Avanzadas")] //OCULTAR [DisplayName("Limpieza saneacanes")] [Description("Velocidad de desplazamiento de Limpieza de sanecanes")] public int v_desp_LS { get; set; } #endregion #region 12TiemposRecoAvanz [Category("Tiempos de Tratamiento Recogida (min) - Avanzadas")]//OCULTAR [DisplayName("Carga Trasera")] [Description("")] public int t_vaci_trasera { get; set; } [Category("Tiempos de Tratamiento Recogida (min) - Avanzadas")]//OCULTAR [DisplayName("Carga Lateral")] [Description("")] public int t_vaci_lateral { get; set; } [Category("Tiempos de Tratamiento Recogida (min) - Avanzadas")]//OCULTAR [DisplayName("Carga superior")] [Description("")] public int t_vaci_superior { get; set; } [Category("Tiempos de Tratamiento Recogida (min) - Avanzadas")]//OCULTAR [DisplayName("Carga Bilateral")] [Description("")] public int t_vaci_bilateral { get; set; } [Category("Tiempos de Tratamiento Recogida (min) - Avanzadas")]//OCULTAR [DisplayName("Bolseo")] [Description("")] public int t_vaci_bolseo { get; set; } [Category("Tiempos de Tratamiento Recogida (min) - Avanzadas")]//OCULTAR [DisplayName("Lavado")] [Description("")] public int t_vaci_lavado { get; set; } [Category("Tiempos de Tratamiento Recogida (min) - Avanzadas")]//OCULTAR [DisplayName("Otro tipo de carga")] [Description("")] public int t_vaci_otra { get; set; } #endregion #region 13DensRecoAvanz [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Orgánica en Vehículo")] [Description("")] public int dens_vehi_org { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Resto en Vehículo")] [Description("")] public int dens_vehi_res { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Envases en Vehículo")] [Description("")] public int dens_vehi_env { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Papel en Vehículo")] [Description("")] public int dens_vehi_pap { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Vidrio en Vehículo")] [Description("")] public int dens_vehi_vid { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Otra fracción en Vehículo")] [Description("")] public int dens_vehi_otr { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Orgánica en Contenedor")] [Description("")] public int dens_cont_org { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Resto en Contenedor")] [Description("")] public int dens_cont_res { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Envases en Contenedor")] [Description("")] public int dens_cont_env { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Papel en Contenedor")] [Description("")] public int dens_cont_pap { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Vidrio en Contenedor")] [Description("")] public int dens_cont_vid { get; set; } [Category("Densidades Recogida (kg/m3) - Avanzadas")] //OCULTAR [DisplayName("Otra fracción en Contenedor")] [Description("")] public int dens_cont_otr { get; set; } #endregion #region 14CaractRecoAvanz [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("Radio de giro máximo vehículo (º)")] [Description("")] public double Giro_max_vehiculo { get; set; } [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("Ancho vehículo 3 ejes (m)")] [Description("")] public double anch_vehi_3 { get; set; } [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("Ancho vehículo 2 ejes (m)")] [Description("")] public double anch_vehi_2 { get; set; } [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("Ancho vehículo satélite (m)")] [Description("")] public double anch_vehi_s { get; set; } [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("Radio de giro vehículo 3 ejes (º)")] [Description("")] public double radio_giro_3 { get; set; } [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("Radio de giro vehículo 2 ejes (º)")] [Description("")] public double radio_giro_2 { get; set; } [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("Radio de giro vehículo satélite (º)")] [Description("")] public double radio_giro_s { get; set; } [Browsable(false)] [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("")] [Description("")] public int kgmax_max { get; set; } [Browsable(false)] [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("")] [Description("")] public int kgmax_min { get; set; } [Browsable(false)] [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("")] [Description("")] public int carga_max_max { get; set; } [Browsable(false)] [Category("Características Vehículo Recogida - Avanzadas")]//OCULTAR [DisplayName("")] [Description("")] public int carga_max_min { get; set; } #endregion #region 15GenAvanz [Category("General - Avanzadas")] //OCULTAR [DisplayName("Puerto de conexión")] [Description("Puerto de conexión con el proceso olivia")] public int puerto { get; set; } [Category("General - Avanzadas")] //OCULTAR [DisplayName("Desviación máxima relativa")] [Description("Desviacion maxima relativa permitida entre los tiempos de los sectores, en tanto por 1")] public double Desv_max { get; set; } [Category("General - Avanzadas")] //OCULTAR [DisplayName("Desviación maxima absoluta")] [Description("Desviacion maxima absoluta permitida entre los tiempos de los sectores. en segundos")] public double Desv_max_abs { get; set; } #endregion #region 16SimbVSMAvanz [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Escaleras")] [Description("Valor para el atributo escaleras")] public string atr_esca { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Fuentes")] [Description("Valor para el atributo fuentes")] public string atr_fuent { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Paso a nivel")] [Description("Valor para el atributo papelera para el atributo paso a nivel")] public string atr_paso_niv { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Areas Terrizas")] [Description("Valor para el atributo areas terrizas")] public string atr_terri { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Ocio")] [Description("Valor para el atributo Ocio")] public string atr_ocio { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Organismos oficiales")] [Description("Valor para el atributo organismos oficiales")] public string atr_org_ofi { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Organismos oficiales")] [Description("Valor para el atributo parques")] public string atr_parq { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Parking")] [Description("Valor para el atributo parking")] public string atr_park { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Playa")] [Description("Valor para el atributo playa")] public string atr_play { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Polideportivo")] [Description("Valor para el atributo polideportivo")] public string atr_polid { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("P. interes turistico")] [Description("Valor para el atributo los puntos de interes turistico")] public string atr_turis { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Solares")] [Description("Valor para el atributo solares")] public string atr_solar { get; set; } [Browsable(false)]//Estas creo que hay que quitarlas [Category("Simbología Cartela - Avanzadas")] //OCULTAR [DisplayName("Suelo")] [Description("Valor para el atributo uso del suelo")] public string atr_suelo { get; set; } #endregion } public class EnumToStringUsingDescription : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return (sourceType.Equals(typeof(Enum))); } public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { return (destinationType.Equals(typeof(String))); } public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { return base.ConvertFrom(context, culture, value); } public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (!destinationType.Equals(typeof(String))) { throw new ArgumentException("Can only convert to string.", "destinationType"); } if (!value.GetType().BaseType.Equals(typeof(Enum))) { throw new ArgumentException("Can only convert an instance of enum.", "value"); } string name = value.ToString(); object[] attrs = value.GetType().GetField(name).GetCustomAttributes(typeof(DescriptionAttribute), false); return (attrs.Length > 0) ? ((DescriptionAttribute)attrs[0]).Description : name; } } }