parent
7fd093c49e
commit
b4bdeed856
|
|
@ -25,9 +25,11 @@ namespace OliviaAddInPro
|
|||
{
|
||||
protected override void OnClick()
|
||||
{
|
||||
if (OliviaGlob.TipoEjec == TiposEjecucion.Ninguno)
|
||||
if (OliviaGlob.TipoView == TiposEjecucion.Ninguno)
|
||||
{
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Props);
|
||||
OliviaGlob.ViewSetFlagTipEjec(TiposEjecucion.Props);
|
||||
|
||||
DockpaneConfigViewModel.Reset();
|
||||
DockpaneConfigViewModel.Show();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace OliviaAddInPro
|
|||
{
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
if (OliviaGlob.TipoEjec == TiposEjecucion.Ninguno)
|
||||
if (OliviaGlob.TipoView == TiposEjecucion.Ninguno)
|
||||
{
|
||||
///Comprueba que existe la red navegable configurada
|
||||
|
||||
|
|
@ -39,13 +39,15 @@ namespace OliviaAddInPro
|
|||
else
|
||||
{
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Limp);
|
||||
if(OliviaGlob.Limp==null)
|
||||
OliviaGlob.ViewSetFlagTipEjec(TiposEjecucion.Limp);
|
||||
|
||||
if (OliviaGlob.Limp==null)
|
||||
OliviaGlob.Limp = new Limpieza();
|
||||
DockpaneLimpiezaViewModel.Reset();
|
||||
DockpaneLimpiezaViewModel.Show();
|
||||
}
|
||||
}
|
||||
else if(OliviaGlob.IsProps())
|
||||
else if(OliviaGlob.ViewIsProps())
|
||||
{
|
||||
HelperGlobal.ponMsg(Resource1.String_estaenprops, System.Windows.MessageBoxImage.Warning);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ namespace OliviaAddInPro
|
|||
{
|
||||
protected override void OnClick()
|
||||
{
|
||||
if (OliviaGlob.TipoEjec==TiposEjecucion.Ninguno)
|
||||
if (OliviaGlob.TipoView == TiposEjecucion.Ninguno)
|
||||
{
|
||||
///Comprueba que existe la red navegable configurada
|
||||
if (!OliviaGlob.CompruebaNwYCampos())
|
||||
|
|
@ -36,13 +36,15 @@ namespace OliviaAddInPro
|
|||
else
|
||||
{
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco);
|
||||
if(OliviaGlob.Reco==null)
|
||||
OliviaGlob.ViewSetFlagTipEjec(TiposEjecucion.Reco);
|
||||
|
||||
if (OliviaGlob.Reco==null)
|
||||
OliviaGlob.Reco = new Recogida();
|
||||
DockpaneRecogidaViewModel.Reset();
|
||||
DockpaneRecogidaViewModel.Show();
|
||||
}
|
||||
}
|
||||
else if (OliviaGlob.IsProps())
|
||||
else if (OliviaGlob.ViewIsProps())
|
||||
{
|
||||
HelperGlobal.ponMsg(Resource1.String_estaenprops, System.Windows.MessageBoxImage.Warning);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2108,9 +2108,10 @@ namespace OliviaAddInPro.Helper
|
|||
{
|
||||
ArcGIS.Core.Geometry.SpatialReference spatref = GetSpatRef(nom_shp);
|
||||
var environments = Geoprocessing.MakeEnvironmentArray(outputCoordinateSystem: spatref);
|
||||
CancelableProgressorSource cps = new CancelableProgressorSource();
|
||||
//CancelableProgressorSource cps = new CancelableProgressorSource();
|
||||
var _cts = new System.Threading.CancellationTokenSource();
|
||||
var completa = false;
|
||||
var gpres = Geoprocessing.ExecuteToolAsync("FeatureClassToFeatureClass_conversion", args, environments,cps.CancellationTokenSource.Token,
|
||||
var gpres = Geoprocessing.ExecuteToolAsync("FeatureClassToFeatureClass_conversion", args, environments, _cts.Token,
|
||||
(event_name, o) => // implement delegate and handle events
|
||||
{
|
||||
switch (event_name)
|
||||
|
|
@ -2134,9 +2135,9 @@ namespace OliviaAddInPro.Helper
|
|||
var av = (int)o;
|
||||
if ((int)o < 0)
|
||||
{
|
||||
completa = true;
|
||||
//completa = true;
|
||||
//System.Windows.MessageBox.Show(msg2);
|
||||
//cps.CancellationTokenSource.Cancel();
|
||||
// _cts.Cancel();
|
||||
|
||||
}
|
||||
break;
|
||||
|
|
@ -2144,7 +2145,7 @@ namespace OliviaAddInPro.Helper
|
|||
}
|
||||
});
|
||||
|
||||
while (!gpres.IsCompleted && gpres.IsCanceled && gpres.IsFaulted && !completa)
|
||||
while (!gpres.IsCompleted && !gpres.IsCanceled && !gpres.IsFaulted)
|
||||
Thread.Sleep(10);
|
||||
|
||||
if (gpres.IsCanceled)
|
||||
|
|
@ -2162,15 +2163,24 @@ namespace OliviaAddInPro.Helper
|
|||
res.Error.Add("Error: " + msg);
|
||||
return res;
|
||||
}
|
||||
/*
|
||||
_cts.Cancel();
|
||||
for (int ii = 0; ii < 1000; ii++)
|
||||
{
|
||||
if (gpres.IsCompleted && gpres.IsCanceled && gpres.IsFaulted)
|
||||
break;
|
||||
Thread.Sleep(10);
|
||||
}
|
||||
try
|
||||
{
|
||||
gpres.Dispose();
|
||||
if (!gpres.IsCompleted && !gpres.IsCanceled && !gpres.IsFaulted)
|
||||
gpres.Dispose();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
string msg = "";
|
||||
msg = e.Message;
|
||||
}
|
||||
}*/
|
||||
res.Value = true;
|
||||
//actualiza la gdb
|
||||
Refresh(System.IO.Path.GetDirectoryName(Gdb_dataset));
|
||||
|
|
|
|||
|
|
@ -90,6 +90,10 @@ namespace OliviaAddInPro.Model
|
|||
get { return tipoEjec; }
|
||||
set { tipoEjec = value; }
|
||||
}
|
||||
|
||||
public static TiposEjecucion TipoView
|
||||
{ get; set; }
|
||||
|
||||
public static Limpieza Limp
|
||||
{
|
||||
get { return limp; }
|
||||
|
|
@ -107,6 +111,7 @@ namespace OliviaAddInPro.Model
|
|||
public static void Inicia()
|
||||
{
|
||||
tipoEjec = TiposEjecucion.Ninguno;
|
||||
TipoView= TiposEjecucion.Ninguno;
|
||||
IniDefault();
|
||||
LimpiezaDef.iniciaLimpDef();
|
||||
RecogidaDef.iniciaRecoDef();
|
||||
|
|
@ -162,6 +167,39 @@ namespace OliviaAddInPro.Model
|
|||
//quita el flag al tipo de ejecución
|
||||
OliviaGlob.TipoEjec = OliviaGlob.TipoEjec & ~flag;
|
||||
}
|
||||
|
||||
|
||||
public static bool ViewIsLimp()
|
||||
{
|
||||
return ViewIsHasFlagTipEjec(TiposEjecucion.Limp);
|
||||
}
|
||||
public static bool ViewIsReco()
|
||||
{
|
||||
return ViewIsHasFlagTipEjec(TiposEjecucion.Reco);
|
||||
}
|
||||
public static bool ViewIsProps()
|
||||
{
|
||||
return ViewIsHasFlagTipEjec(TiposEjecucion.Props);
|
||||
}
|
||||
public static bool ViewIsHasFlagTipEjec(TiposEjecucion flag)
|
||||
{
|
||||
return (OliviaGlob.TipoView & flag) == flag;
|
||||
}
|
||||
public static void ViewSetFlagTipEjec(TiposEjecucion flag)
|
||||
{
|
||||
//pone el tipo de ejecución igual al flag
|
||||
OliviaGlob.TipoView = flag;
|
||||
}
|
||||
public static void ViewAddFlagTipEjec(TiposEjecucion flag)
|
||||
{
|
||||
//añade el flag al tipo de ejecución
|
||||
OliviaGlob.TipoView = OliviaGlob.TipoEjec | flag;
|
||||
}
|
||||
public static void ViewRemoveFlagTipEjec(TiposEjecucion flag)
|
||||
{
|
||||
//quita el flag al tipo de ejecución
|
||||
OliviaGlob.TipoView = OliviaGlob.TipoEjec & ~flag;
|
||||
}
|
||||
/**
|
||||
* Habilita Sh=true
|
||||
* o Deshabilita sh=false
|
||||
|
|
@ -175,6 +213,7 @@ namespace OliviaAddInPro.Model
|
|||
{
|
||||
DockpaneLimpiezaViewModel.Show();
|
||||
SetFlagTipEjec(TiposEjecucion.Limp);
|
||||
ViewSetFlagTipEjec(TiposEjecucion.Limp);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -188,6 +227,8 @@ namespace OliviaAddInPro.Model
|
|||
{
|
||||
DockpaneRecogidaViewModel.Show();
|
||||
SetFlagTipEjec(TiposEjecucion.Reco);
|
||||
ViewSetFlagTipEjec(TiposEjecucion.Reco);
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
|
|
@ -201,6 +242,8 @@ namespace OliviaAddInPro.Model
|
|||
{
|
||||
DockpaneConfigViewModel.Show();
|
||||
SetFlagTipEjec(TiposEjecucion.Props);
|
||||
ViewSetFlagTipEjec(TiposEjecucion.Props);
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
|
|
@ -210,10 +253,11 @@ namespace OliviaAddInPro.Model
|
|||
}
|
||||
else
|
||||
{
|
||||
SetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
//SetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
ViewSetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
}
|
||||
if (!sh)
|
||||
SetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
ViewSetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -66,8 +66,7 @@ namespace OliviaAddInPro.Services
|
|||
//borra los archivos que le toca borrar
|
||||
//BorraFiles();
|
||||
}
|
||||
|
||||
public void finEjecuta2(Respuesta<TiposEjecucion> res, TratamientoComun inst)
|
||||
public void finEjecuta2_old(Respuesta<TiposEjecucion> res, TratamientoComun inst)
|
||||
{
|
||||
String msg = string.Empty;
|
||||
String msg_err = "Errores en el proceso de importación de resultados";
|
||||
|
|
@ -119,7 +118,7 @@ namespace OliviaAddInPro.Services
|
|||
{
|
||||
if (resp2.HasError)
|
||||
{
|
||||
msg = resp2.Error.First();
|
||||
msg = resp2.Error.First();
|
||||
}
|
||||
else
|
||||
msg = msg_err;
|
||||
|
|
@ -131,22 +130,22 @@ namespace OliviaAddInPro.Services
|
|||
//pone modo config2
|
||||
OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config2);
|
||||
//actualiza la capa de la que tiene que leer ahora para planificar
|
||||
inst.CapaElems = resp.Value;
|
||||
inst.CapaElems = resp.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
catch (Exception ex)
|
||||
{
|
||||
msg = msg_err + ": "+msg+": "+ex.Message;
|
||||
msg = msg_err + ": " + msg + ": " + ex.Message;
|
||||
mal = true;
|
||||
}
|
||||
if (mal)
|
||||
{
|
||||
//reinicia flags
|
||||
if(OliviaGlob.IsLimp())
|
||||
if (OliviaGlob.IsLimp())
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Limp);
|
||||
else if(OliviaGlob.IsReco())
|
||||
else if (OliviaGlob.IsReco())
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco);
|
||||
|
||||
}
|
||||
|
|
@ -163,7 +162,145 @@ namespace OliviaAddInPro.Services
|
|||
//borra los archivos que le toca borrar
|
||||
//BorraFiles();
|
||||
}
|
||||
public void finEjecuta2(Respuesta<TiposEjecucion> res, TratamientoComun inst)
|
||||
{
|
||||
String msg = string.Empty;
|
||||
String msg_err = "Errores en el proceso de importación de resultados";
|
||||
var resp2 = new Respuesta<string> { Value = string.Empty };
|
||||
|
||||
var resp = new Respuesta<string> { Value = string.Empty };
|
||||
bool mal = false;
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
//gestiona los flags, el estado de finok o finnok va en res.Vale
|
||||
if (res.HasError)
|
||||
{
|
||||
msg = res.Error.First();
|
||||
//actualiza los flags
|
||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.FinEjecNOk);
|
||||
}
|
||||
else
|
||||
{
|
||||
//actualiza los flags
|
||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.FinEjecOk);
|
||||
//importa resultados
|
||||
resp = IniImport();
|
||||
if (resp.HasError)
|
||||
{
|
||||
msg = resp.Error.First();
|
||||
mal = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run((Func<bool>)(() =>
|
||||
{
|
||||
string GdbFileName = resp.Value;
|
||||
|
||||
if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecSecto)) //Ha terminado bien la sectorización
|
||||
{
|
||||
//actualiza los flags
|
||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecSecto);
|
||||
//acciones de importación
|
||||
resp2 = inst.ServCom.ImportSecto(GdbFileName);
|
||||
}
|
||||
else if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecPlanif)) //Ha terminado bien la planificación
|
||||
{
|
||||
//actualiza los flags
|
||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecPlanif);
|
||||
//guarda csv
|
||||
GuardaCsv(inst);
|
||||
//acciones de importación
|
||||
resp2 = inst.ServCom.ImportPlanif(GdbFileName);
|
||||
|
||||
}
|
||||
Application.Current.Dispatcher.BeginInvoke(new Action<Respuesta<string>, Respuesta<string>, bool, string, TratamientoComun>((p, v, x, u, w) => finEjecuta3(p, v, x, u, w)), resp, resp2, mal, msg, inst);
|
||||
return true;
|
||||
}));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
msg = msg_err + ": "+msg+": "+ex.Message;
|
||||
mal = true;
|
||||
}
|
||||
if (mal)
|
||||
{
|
||||
//reinicia flags
|
||||
if (OliviaGlob.IsLimp())
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Limp);
|
||||
else if (OliviaGlob.IsReco())
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco);
|
||||
|
||||
HelperGlobal.ponMsg(msg);
|
||||
OliviaGlob.progrDialog.Hide();
|
||||
//muestra la ventana
|
||||
OliviaGlob.ShowHidePane(true);
|
||||
var task = ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
||||
{
|
||||
//borra los archivos que le toca borrar
|
||||
BorraFiles();
|
||||
});
|
||||
}
|
||||
}
|
||||
public void finEjecuta3(Respuesta<string> resp, Respuesta<string> resp2,bool mal, string msg, TratamientoComun inst)
|
||||
{
|
||||
|
||||
String msg_err = "Errores en el proceso de importación de resultados";
|
||||
if (!mal)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(resp2.Value))
|
||||
{
|
||||
if (resp2.HasError)
|
||||
{
|
||||
msg = resp2.Error.First();
|
||||
}
|
||||
else
|
||||
msg = msg_err;
|
||||
mal = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = Resource1.String_exito;
|
||||
//pone modo config2
|
||||
OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config2);
|
||||
//actualiza la capa de la que tiene que leer ahora para planificar
|
||||
inst.CapaElems = resp.Value;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
msg = msg_err + ": " + msg + ": " + ex.Message;
|
||||
mal = true;
|
||||
}
|
||||
}
|
||||
if (mal)
|
||||
{
|
||||
//reinicia flags
|
||||
if (OliviaGlob.IsLimp())
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Limp);
|
||||
else if (OliviaGlob.IsReco())
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco);
|
||||
|
||||
}
|
||||
HelperGlobal.ponMsg(msg);
|
||||
OliviaGlob.progrDialog.Hide();
|
||||
//muestra la ventana
|
||||
OliviaGlob.ShowHidePane(true);
|
||||
var task = ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
||||
{
|
||||
//borra los archivos que le toca borrar
|
||||
BorraFiles();
|
||||
});
|
||||
//task.Wait();
|
||||
//borra los archivos que le toca borrar
|
||||
//BorraFiles();
|
||||
}
|
||||
/**
|
||||
* Borra los archivos exportados para el proceso
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace OliviaAddInPro
|
|||
}
|
||||
protected override void OnHidden()
|
||||
{
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
OliviaGlob.ViewSetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
}
|
||||
internal static void Hide_()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ namespace OliviaAddInPro
|
|||
}
|
||||
protected override void OnHidden()
|
||||
{
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
OliviaGlob.ViewSetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
}
|
||||
/// <summary>
|
||||
/// Text shown near the top of the DockPane.
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace OliviaAddInPro
|
|||
}
|
||||
protected override void OnHidden()
|
||||
{
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
OliviaGlob.ViewSetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
}
|
||||
internal static void Hide_()
|
||||
{
|
||||
|
|
@ -67,7 +67,7 @@ namespace OliviaAddInPro
|
|||
if (isVisible == false && !firstTimeShow && !hideTemp)
|
||||
{
|
||||
//avisa de cerrar la ventana
|
||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
OliviaGlob.ViewSetFlagTipEjec(TiposEjecucion.Ninguno);
|
||||
}
|
||||
if (firstTimeShow)
|
||||
firstTimeShow = false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue