Algunas correcciones al comenzar ejecución
parent
14321508ad
commit
1c1e4c95aa
|
|
@ -31,9 +31,9 @@ namespace OliviaAddInPro
|
|||
{
|
||||
///Comprueba que existe la red navegable configurada
|
||||
|
||||
if (HelperGdb.GetGdb(OliviaGlob.Paths.PathGdbNw).Result == null)
|
||||
if (!OliviaGlob.CompruebaNwYCampos())
|
||||
{
|
||||
HelperGlobal.ponMsg("No encuentra Gdb de red navegable, cambie Configuración: " + HelperGdb.OutStr,
|
||||
HelperGlobal.ponMsg("No se encuentra red navegable, cambie Configuración: " + HelperGdb.OutStr,
|
||||
System.Windows.MessageBoxImage.Warning);
|
||||
}
|
||||
else
|
||||
|
|
@ -45,6 +45,10 @@ namespace OliviaAddInPro
|
|||
DockpaneLimpiezaViewModel.Show();
|
||||
}
|
||||
}
|
||||
else if(OliviaGlob.IsProps())
|
||||
{
|
||||
HelperGlobal.ponMsg(Resource1.String_estaenprops, System.Windows.MessageBoxImage.Warning);
|
||||
}
|
||||
else
|
||||
{
|
||||
HelperGlobal.ponMsg(Resource1.String_existe_ejec, System.Windows.MessageBoxImage.Warning);
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ namespace OliviaAddInPro
|
|||
if (OliviaGlob.TipoEjec==TiposEjecucion.Ninguno)
|
||||
{
|
||||
///Comprueba que existe la red navegable configurada
|
||||
if (HelperGdb.GetGdb(OliviaGlob.Paths.PathGdbNw).Result == null)
|
||||
if (!OliviaGlob.CompruebaNwYCampos())
|
||||
{
|
||||
HelperGlobal.ponMsg("No encuentra Gdb de red navegable, cambie Configuración: " + HelperGdb.OutStr,
|
||||
HelperGlobal.ponMsg("No se encuentra red navegable, cambie Configuración: " + HelperGdb.OutStr,
|
||||
System.Windows.MessageBoxImage.Warning);
|
||||
}
|
||||
else
|
||||
|
|
@ -42,6 +42,10 @@ namespace OliviaAddInPro
|
|||
DockpaneRecogidaViewModel.Show();
|
||||
}
|
||||
}
|
||||
else if (OliviaGlob.IsProps())
|
||||
{
|
||||
HelperGlobal.ponMsg(Resource1.String_estaenprops, System.Windows.MessageBoxImage.Warning);
|
||||
}
|
||||
else
|
||||
{
|
||||
HelperGlobal.ponMsg(Resource1.String_existe_ejec, System.Windows.MessageBoxImage.Warning);
|
||||
|
|
|
|||
|
|
@ -186,6 +186,8 @@ namespace OliviaAddInPro.Helper
|
|||
//y si no tiene devuelve vacío
|
||||
public static string GetPathGdb(string path)
|
||||
{
|
||||
if (path == null)
|
||||
return string.Empty;
|
||||
string pathGdb = string.Empty;
|
||||
int i = 0;
|
||||
if(path.Contains(GDB_EXT))
|
||||
|
|
@ -202,6 +204,8 @@ namespace OliviaAddInPro.Helper
|
|||
public static Task<Geodatabase> GetGdb(string pathGdb)
|
||||
{
|
||||
Geodatabase fileGeodatabase = null;
|
||||
if (string.IsNullOrEmpty(pathGdb))
|
||||
return null;
|
||||
ReiniciaOutStr();
|
||||
return ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run((Func<Geodatabase>)(() =>
|
||||
{
|
||||
|
|
@ -228,6 +232,8 @@ namespace OliviaAddInPro.Helper
|
|||
public static FeatureClass GetFtClass(string pathFtClss)
|
||||
{
|
||||
FeatureClass ftclss = null;
|
||||
if (string.IsNullOrEmpty(pathFtClss))
|
||||
return null;
|
||||
Geodatabase gdb = GetGdb(pathFtClss).Result;
|
||||
ReiniciaOutStr();
|
||||
if (gdb != null)
|
||||
|
|
@ -247,6 +253,8 @@ namespace OliviaAddInPro.Helper
|
|||
public static Task<FeatureClass> GetFtClass(string nameFtclss, Geodatabase gdb)
|
||||
{
|
||||
FeatureClass ftclss = null;
|
||||
if (string.IsNullOrEmpty(nameFtclss))
|
||||
return null;
|
||||
ReiniciaOutStr();
|
||||
return ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run((Func<FeatureClass>)(() =>
|
||||
{
|
||||
|
|
@ -270,7 +278,7 @@ namespace OliviaAddInPro.Helper
|
|||
ReiniciaOutStr();
|
||||
return await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run((Func<FeatureClass>)(() =>
|
||||
{
|
||||
if (pathShp.Contains(SHP_EXT))
|
||||
if (!string.IsNullOrEmpty(pathShp) && pathShp.Contains(SHP_EXT))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
@ -419,6 +427,35 @@ namespace OliviaAddInPro.Helper
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lee la capa que se ha seleccionzdo de recogida y se comprueba que contiene los campos necesarios
|
||||
* Devuelve 0 si va todo bien, -1 si da error, y num>0 con los campos que no encuentra
|
||||
*/
|
||||
public static int CheckFileds(string pathCapa, string[] camps)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (string.IsNullOrEmpty(pathCapa))
|
||||
{
|
||||
OutStr = "No se encuentra la capa";
|
||||
return -1;
|
||||
}
|
||||
OutStr = "No se encuentran el/los campo/s: ";
|
||||
int mal = 0;
|
||||
for (i = 0; i < camps.Length; i++)
|
||||
{
|
||||
if (!CheckField(pathCapa, camps[i]))
|
||||
{
|
||||
OutStr = OutStr + camps[i] + " ";
|
||||
mal++;
|
||||
}
|
||||
}
|
||||
if (mal == 0)
|
||||
OutStr = "";
|
||||
return mal;
|
||||
}
|
||||
|
||||
|
||||
//Devuelve comilla simple si el campo es de texto, o nada si es númerico
|
||||
//var whereClause = $"{SelectedField} = {Quote(f)}{FieldValue}{Quote(f)}";
|
||||
public static string Quote(ArcGIS.Core.Data.Field f)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ using ArcGIS.Core.Geometry;
|
|||
using ArcGIS.Desktop.Framework.Threading.Tasks;
|
||||
using OliviaAddInPro.Helper;
|
||||
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.IO;
|
||||
|
||||
namespace OliviaAddInPro.Model
|
||||
{
|
||||
[Flags]
|
||||
|
|
@ -110,6 +114,17 @@ namespace OliviaAddInPro.Model
|
|||
limp = new Limpieza();
|
||||
reco = new Recogida();
|
||||
SpatRef = ArcGIS.Core.Geometry.SpatialReferenceBuilder.CreateSpatialReference(GeneralDef.SpatRefDef);
|
||||
|
||||
Respuesta<bool> resp = coge_ip();
|
||||
if (!resp.Value && resp.HasError)
|
||||
{
|
||||
HelperGlobal.ponMsg(resp.Error.First());
|
||||
}
|
||||
/*resp = comprueba_dlls();
|
||||
if (!resp.Value && resp.HasError)
|
||||
{
|
||||
HelperGlobal.ponMsg(resp.Error.First());
|
||||
}*/
|
||||
}
|
||||
|
||||
public static bool IsLimp()
|
||||
|
|
@ -189,12 +204,111 @@ namespace OliviaAddInPro.Model
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Comprueba que está configurada la red navegable e incluye los campos necesarios
|
||||
*/
|
||||
public static bool CompruebaNwYCampos()
|
||||
{
|
||||
ArcGIS.Core.Data.FeatureClass ft = HelperGdb.GetFtClass(OliviaGlob.Paths.PathGdbNw);
|
||||
if (ft == null)
|
||||
return false;
|
||||
|
||||
int NCAMPS = 4;
|
||||
string[] camps;
|
||||
camps = new string[NCAMPS];
|
||||
camps[0] = ComunDef.CamposNW.cons_onew;
|
||||
camps[1] = ComunDef.CamposNW.cons_kph;
|
||||
camps[2] = ComunDef.CamposNW.cons_name;
|
||||
camps[3] = ComunDef.CamposNW.cons_fow;
|
||||
return HelperGdb.CheckFileds(OliviaGlob.Paths.PathGdbNw, camps) == 0;
|
||||
}
|
||||
/**
|
||||
* Devuelve una lista de las ips locales
|
||||
*/
|
||||
public static string[] dame_local_ips()
|
||||
{
|
||||
IPHostEntry host;
|
||||
List<string> host_str = new List<string>();
|
||||
|
||||
if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
host = Dns.GetHostEntry(Dns.GetHostName());
|
||||
foreach (var ip in host.AddressList)
|
||||
{
|
||||
if (ip.AddressFamily == AddressFamily.InterNetwork)
|
||||
{
|
||||
host_str.Add(ip.ToString());
|
||||
}
|
||||
}
|
||||
return host_str.ToArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* Coge la ip local para la comunicación con OliviaTask
|
||||
*/
|
||||
static Respuesta<bool> coge_ip()
|
||||
{
|
||||
Respuesta<bool> resp = new Respuesta<bool>();
|
||||
try
|
||||
{
|
||||
string[] ips = OliviaGlob.dame_local_ips();
|
||||
if (ips != null && ips.Length > 0)
|
||||
Conexion.Ip = ips[0];
|
||||
else
|
||||
Conexion.Ip = "127.0.0.1";
|
||||
resp.Value = true;
|
||||
return resp;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
resp.Error.Add("Error al leer IP local");
|
||||
resp.Value = false;
|
||||
return resp;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* La primera vez copia las dlls necesarias en el directorio del arcmap
|
||||
*/
|
||||
static Respuesta<bool> comprueba_dlls()
|
||||
{
|
||||
Respuesta<bool> resp = new Respuesta<bool>();
|
||||
string path_dll_dest = null, dll = null;
|
||||
try
|
||||
{
|
||||
//comprueba utiles.dll
|
||||
dll = "utiles.dll";
|
||||
|
||||
//path_dll_dest = Path.Combine(System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName), dll);
|
||||
path_dll_dest = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dll);
|
||||
if (!File.Exists(path_dll_dest))
|
||||
{
|
||||
resp.Error.Add("No se encuentran las librerías necesarias, compruebe la instalación");
|
||||
resp.Value = false;
|
||||
return resp;
|
||||
}
|
||||
resp.Value = true;
|
||||
return resp;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
resp.Error.Add("Error al comprobar las dll");
|
||||
resp.Value = false;
|
||||
return resp;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Inicializa los nombres por defecto de las variables, para debug por si no hay instalador
|
||||
*/
|
||||
public static void IniDefault()
|
||||
{
|
||||
|
||||
var c = ConfigServ.Serv.Leer();
|
||||
Paths.PathCfg = "";
|
||||
Paths.PathWork = c.path_work;
|
||||
Paths.PathExeOlivia = c.path_exe;
|
||||
Paths.DirData = c.path_data;
|
||||
|
|
@ -209,7 +323,7 @@ namespace OliviaAddInPro.Model
|
|||
Paths.PathSimbVSM = c.PathSimbVSM;
|
||||
Paths.PathSimbESRI = c.PathSimbESRI;
|
||||
Conexion.Puerto = c.Puerto;
|
||||
Conexion.Ip = c.Ip;
|
||||
//Conexion.Ip = c.Ip; //la lee en el momento
|
||||
Conexion.TiempoOutSocket = c.TiempoOutSocket;
|
||||
|
||||
///////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -96,6 +96,15 @@ namespace OliviaAddInPro {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Busca una cadena traducida similar a Se debe cerrar la configuración antes de comenzar una ejecución..
|
||||
/// </summary>
|
||||
internal static string String_estaenprops {
|
||||
get {
|
||||
return ResourceManager.GetString("String_estaenprops", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Busca una cadena traducida similar a Ya existe una ejecución en marcha.
|
||||
/// </summary>
|
||||
|
|
@ -105,6 +114,15 @@ namespace OliviaAddInPro {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Busca una cadena traducida similar a La ejecución ha finalizado con éxito..
|
||||
/// </summary>
|
||||
internal static string String_exito {
|
||||
get {
|
||||
return ResourceManager.GetString("String_exito", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Busca una cadena traducida similar a OLIVIA | Configuración.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -129,9 +129,15 @@
|
|||
<data name="String_error_elems_tabla" xml:space="preserve">
|
||||
<value>No se ha encontrado ningún elemento en la tabla que cumpla con los criterios seleccionados.</value>
|
||||
</data>
|
||||
<data name="String_estaenprops" xml:space="preserve">
|
||||
<value>Se debe cerrar la configuración antes de comenzar una ejecución.</value>
|
||||
</data>
|
||||
<data name="String_existe_ejec" xml:space="preserve">
|
||||
<value>Ya existe una ejecución en marcha</value>
|
||||
</data>
|
||||
<data name="String_exito" xml:space="preserve">
|
||||
<value>La ejecución ha finalizado con éxito.</value>
|
||||
</data>
|
||||
<data name="String_header_Config" xml:space="preserve">
|
||||
<value>OLIVIA | Configuración</value>
|
||||
</data>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ namespace OliviaAddInPro.Services
|
|||
* Modo 0, sectorizar
|
||||
* Modo 1, planificar
|
||||
*/
|
||||
public bool LanzaEjec(ModosEjec modo, out string ErrStr)
|
||||
public bool ExportaEjec(ModosEjec modo, out string ErrStr)
|
||||
{
|
||||
ErrStr = string.Empty;
|
||||
try
|
||||
|
|
@ -204,8 +204,7 @@ namespace OliviaAddInPro.Services
|
|||
//Prepara nombre de exportación
|
||||
com.NombreShpExportNw = prefNameExportNw + fechaHora + extShp;
|
||||
//exporta los datos de entrada
|
||||
string capaNw =System.IO.Path.Combine(OliviaGlob.Paths.PathGdbNw, OliviaGlob.Capas.ftclass_ejes);
|
||||
if (!HelperGdb.ExportShp2(capaNw, filtroEspacial, com.NombreShpExportNw, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc,40))
|
||||
if (!HelperGdb.ExportShp2(OliviaGlob.Paths.PathGdbNw, filtroEspacial, com.NombreShpExportNw, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc,40))
|
||||
{
|
||||
ErrStr = "Error al exportar la red navegable: " + HelperGdb.OutStr;
|
||||
return false;
|
||||
|
|
@ -220,7 +219,7 @@ namespace OliviaAddInPro.Services
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ErrStr = "Errores al comenzar la ejecución: " + ex.Message;
|
||||
ErrStr = "Errores al exportar para comenzar la ejecución: " + ex.Message;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -259,7 +258,7 @@ namespace OliviaAddInPro.Services
|
|||
}
|
||||
}
|
||||
//comprueba que, en el caso de ejes de vía, hayan metido polígono de exportación
|
||||
if ((geomAux == null) && (com.CapaElems == OliviaGlob.Capas.ftclass_ejes))
|
||||
if ((geomAux == null) && (com.CapaElems == OliviaGlob.Paths.PathGdbNw))
|
||||
{
|
||||
ErrStr = "Al emplear ejes de calle como ámbitos es necesario indicar polígono de exportación";
|
||||
return null;
|
||||
|
|
@ -309,34 +308,6 @@ namespace OliviaAddInPro.Services
|
|||
return str;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lee la capa que se ha seleccionzdo de recogida y se comprueba que contiene los campos necesarios
|
||||
* Devuelve 0 si va todo bien, -1 si da error, y num>0 con los campos que no encuentra
|
||||
*/
|
||||
public int CompruebaCampos(string pathCapa, string[] camps)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (string.IsNullOrEmpty(pathCapa))
|
||||
{
|
||||
ErrStr = "No se encuentra la capa";
|
||||
return -1;
|
||||
}
|
||||
ErrStr = "No se encuentran el/los campo/s: ";
|
||||
int mal = 0;
|
||||
for (i = 0; i < camps.Length; i++)
|
||||
{
|
||||
if (!HelperGdb.CheckField(pathCapa, camps[i]))
|
||||
{
|
||||
ErrStr = ErrStr + camps[i] + " ";
|
||||
mal++;
|
||||
}
|
||||
}
|
||||
if(mal==0)
|
||||
ErrStr = "";
|
||||
return mal;
|
||||
}
|
||||
|
||||
public bool ComprCamposPlanif(string pathCapa)
|
||||
{
|
||||
int NCAMPS = 2;
|
||||
|
|
@ -344,7 +315,7 @@ namespace OliviaAddInPro.Services
|
|||
camps = new string[NCAMPS];
|
||||
camps[0] = LimpiezaDef.Campos.consulta_sector;
|
||||
camps[1] = LimpiezaDef.Campos.consulta_secuen;
|
||||
return CompruebaCampos(pathCapa, camps) == 0;
|
||||
return HelperGdb.CheckFileds(pathCapa, camps) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -29,14 +29,7 @@ namespace OliviaAddInPro.Services.LanzaSrv
|
|||
}
|
||||
|
||||
OliviaGlob.TipoEjec = TiposEjecucion.Limp;//OliviaDef.GeneralDef.TiposOliv.OlivLimp;
|
||||
/*
|
||||
if (!OliviaGlob.gdb_limp.exporta(limp, modo == (int)Ejecuta.ModosEjec.Planif))
|
||||
{
|
||||
res.Error.Add(OliviaGlob.gdb_limp.err_st;
|
||||
res.Value = false;
|
||||
return res;
|
||||
}
|
||||
*/
|
||||
|
||||
//configura el string de opciones
|
||||
if (!configura_ops_geo(limp, modo))
|
||||
{
|
||||
|
|
@ -45,8 +38,6 @@ namespace OliviaAddInPro.Services.LanzaSrv
|
|||
return res;
|
||||
}
|
||||
|
||||
//this.limp = limp;
|
||||
|
||||
//Llama al ejecuta del padre
|
||||
return base.ejec(NombreTratamiento);
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ namespace OliviaAddInPro.Services
|
|||
|
||||
string msg = "";
|
||||
//comienza ejecucion
|
||||
if(!LanzaEjec(modo, out msg))
|
||||
if(!ExportaEjec(modo, out msg))
|
||||
{
|
||||
res.Errores = true;
|
||||
res.msg = msg;
|
||||
|
|
@ -154,7 +154,7 @@ namespace OliviaAddInPro.Services
|
|||
camps[2] = LimpiezaDef.Campos.consulta_observ;
|
||||
camps[3] = LimpiezaDef.Campos.consulta_anch_tip;
|
||||
camps[4] = LimpiezaDef.Campos.consulta_tipolo;
|
||||
return CompruebaCampos(pathCapa, camps)==0;
|
||||
return HelperGdb.CheckFileds(pathCapa, camps)==0;
|
||||
}
|
||||
/**
|
||||
* Lee la gdb y devuelve el array de ámbitos en función de si hay en la gdb o no
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ namespace OliviaAddInPro.Services
|
|||
camps[3] = RecogidaDef.campos_def.cons_lateral;
|
||||
camps[4] = RecogidaDef.campos_def.cons_uds;
|
||||
camps[5] = RecogidaDef.campos_def.cons_kgrec;
|
||||
int compCamp = CompruebaCampos(pathCapa, camps);
|
||||
int compCamp = HelperGdb.CheckFileds(pathCapa, camps);
|
||||
if (compCamp == 0)
|
||||
return 0;
|
||||
else if (compCamp == 1 && ErrStr.Contains(RecogidaDef.campos_def.cons_kgrec))
|
||||
|
|
@ -89,7 +89,7 @@ namespace OliviaAddInPro.Services
|
|||
|
||||
string msg = "";
|
||||
//comienza ejecucion
|
||||
if (!LanzaEjec(modo, out msg))
|
||||
if (!ExportaEjec(modo, out msg))
|
||||
{
|
||||
res.Errores = true;
|
||||
res.msg = msg;
|
||||
|
|
|
|||
|
|
@ -79,6 +79,11 @@ namespace OliviaAddInPro
|
|||
return false;
|
||||
}
|
||||
limp.CapaElems = _subPanel1ViewModel.CapaElems;
|
||||
//pone que la capa de elementos es la red navegable, que es la que va a exportar
|
||||
if (_subPanel1ViewModel.SelOpAmb == 1)
|
||||
{
|
||||
limp.CapaElems = OliviaGlob.Paths.PathGdbNw;
|
||||
}
|
||||
|
||||
//lee el tipo tto
|
||||
if (_subPanel1ViewModel.TipoTto == (int)LimpiezaDef.TiposTto.TtoNoDef)
|
||||
|
|
@ -184,13 +189,5 @@ namespace OliviaAddInPro
|
|||
Action<TareaRes> ac = finEjecuta;
|
||||
OliviaGlob.Limp.EjecutaAsync(modo, ac);
|
||||
}
|
||||
public void finEjecuta(TareaRes res)
|
||||
{
|
||||
OliviaGlob.progrDialog.Hide();
|
||||
if (res.Errores)
|
||||
{
|
||||
HelperGlobal.ponMsg(res.msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,6 +125,19 @@ namespace OliviaAddInPro
|
|||
return true;
|
||||
|
||||
}
|
||||
|
||||
public void finEjecuta(OliviaAddInPro.Model.ComunDef.TareaRes res)
|
||||
{
|
||||
OliviaGlob.progrDialog.Hide();
|
||||
if (res.Errores)
|
||||
{
|
||||
HelperGlobal.ponMsg(res.msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
HelperGlobal.ponMsg(Resource1.String_exito);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//******************************************************
|
||||
|
|
|
|||
|
|
@ -233,15 +233,6 @@ namespace OliviaAddInPro
|
|||
|
||||
Action<TareaRes> ac = finEjecuta;
|
||||
OliviaGlob.Reco.EjecutaAsync(modo, ac);
|
||||
|
||||
}
|
||||
public void finEjecuta(TareaRes res)
|
||||
{
|
||||
OliviaGlob.progrDialog.Hide();
|
||||
if (res.Errores)
|
||||
{
|
||||
HelperGlobal.ponMsg(res.msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue