using ArcGIS.Core.Geometry; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OliviaAddInPro.Helper; using System.Collections.ObjectModel; using ArcGIS.Core.CIM; using ArcGIS.Core.Data; using OliviaAddInPro.Services; using static OliviaAddInPro.Model.ComunDef; using ArcGIS.Desktop.Framework.Contracts; using ArcGIS.Desktop.Framework.Threading.Tasks; namespace OliviaAddInPro.Model { public class Limpieza : TratamientoComun { //********************************************** //Se recogen en PaneLimpiezaSub1 /** * Tipo de tratamiento elegidos */ //public int TipoTto { get; set; } = -1; //En la clase TratamientoComun /** * Ámbitos de trabajo elegidos */ public bool[] AmbitosSel { get; set; } = new bool[(int)LimpiezaDef.AmbitsTra.AmbN]; /** * Indica si respeta el sentido de circulación o no */ public bool RespCirc { get; set; } = false; /** * Tipo de unidades del tiempo de tto */ public int UdsTTto { get; set; } = (int)GeneralDef.OlvTiposTto.OlvTipTtoNoDef; /** * Instancia para las funciones de exportación y demás */ public LimpiezaServ Serv { get; set; } = null; public Limpieza() { Serv = new LimpiezaServ(this); } public TareaRes Ejecuta(ModosEjec modo, CancelableProgressorSource cps) { TareaRes res = null; if (modo == ModosEjec.Sectoriza) res = Serv.Sectoriza(cps); else if (modo == ModosEjec.Planifica) res = Serv.Planifica(cps); return res; } public async void EjecutaAsync(ModosEjec modo, CancelableProgressorSource cps, Action ffin) { await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() => { cps.Status = "Procesando"; cps.Value = 0; var res = Ejecuta(modo, cps); ffin(res); return res; }); } } }