OliviaAddInPro/Model/Recogida.cs

119 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OliviaAddInPro.Helper;
using OliviaAddInPro.Services;
using ArcGIS.Core.Geometry;
using static OliviaAddInPro.Model.ComunDef;
using ArcGIS.Desktop.Framework.Threading.Tasks;
using OliviaAddInPro.Services.LanzaSrv;
namespace OliviaAddInPro.Model
{
class Recogida : TratamientoComun
{
//**********************************************
//Se recogen en PaneRecogidaSub1
/**
* Tipo de fracción
*/
public int TipoFrac { get; set; } = -1;
/**
* Tipo de fracción
*/
public string TipoFracStr { get; set; } = string.Empty;
/**
* Tipo de carga
*/
public int TipoCarg { get; set; } = -1;
/**
* Tipo de carga
*/
public string TipoCargStr { get; set; } = string.Empty;
/**
* Tipo de Vehículo
*/
public int TipoVehic { get; set; } = -1;
/**
* Tipo de Lateralidad
*/
public int TipoLate { get; set; } = -1;
/**
* kg capac camión
*/
public int KgMaxVehic { get; set; } = 0;
/**
* dens contenedor
*/
public int DensCont { get; set; } = 0;
/**
* Tiempo de vaciado del contenedor, en seg
*/
public int TVaciCont { get; set; } = 0;
/**
* kg de carga en cada contenedor
*/
public int KgCont { get; set; } = 0;
/**
* grados en º de giro del vehículo
*/
public int GiroVehic { get; set; } = 0;
/*
*
* */
public double AnchoVehiculo
{
get;
set;
}
public RecogidaServ Serv { get; set; } = null;
public LanzaRecoSrv LanzaSrv { get; set; } = null;
public Recogida()
{
Serv = new RecogidaServ(this);
LanzaSrv = new LanzaRecoSrv();
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog);
ProceSrv = new ProcesoEjecServ();
}
public TareaRes Ejecuta(ModosEjec modo)
{
TareaRes res = null;
res = Serv.Ejecuta(modo);
if (!res.Errores)
{
var res1 = LanzaSrv.ejec(this, modo, TipoTtoStr);
if (!res1.HasError)
{
ProceSrv.ConfigConex();
res1 = ProceSrv.start(LanzaSrv.str_cfg, ProgrSrc._ProgrSrc);
}
if (res1.HasError)
{
res.Errores = true;
res.msg = "";
res1.Error.ForEach(e => res.msg += e + ".\n ");
}
}
return res;
}
public async void EjecutaAsync(ModosEjec modo, Action<TareaRes> ffin)
{
await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
{
var res = Ejecuta(modo);
ffin(res);
return res;
});
}
}
}