/// <summary> /// Añade un registro a la pila de la traza /// </summary> /// <param name="text"></param> /// <param name="entityCode"></param> /// <param name="action"></param> public static void AddLog(Type typeClass, TraceParameters trace) { ILog logger = GetLogger(typeClass); try { TraceLevel level = (TraceLevel)Enum.Parse(typeof(TraceLevel), trace.Tracelevel); string text = trace.Msg; if (string.IsNullOrEmpty(trace.Stack)) { text = trace.Msg; } else { text = trace.Msg + System.Environment.NewLine + trace.Stack; } switch (level) { case TraceLevel.Error: logger.Error(text); break; case TraceLevel.Fatal: logger.Fatal(text); break; case TraceLevel.Info: logger.Info(text); break; case TraceLevel.Debug: logger.Debug(text); break; case TraceLevel.Warn: logger.Warn(text); break; default: logger.Trace(text); break; } } catch (Exception ex) { logger.Fatal("Exception try to add log Message: {0}" + ex.Message.ToString()); logger.Fatal("Exception try to add log StackTrace: {0}" + ex.StackTrace.ToString()); } }
public void SetTrace(HttpRequestMessage request) { try { TraceParameters model = JsonConvert.DeserializeObject <TraceParameters>(request.Content.ReadAsStringAsync().Result); TraceLogHelper.AddLog(typeof(TraceManagerController), model); } catch (Exception ex) { TraceParameters trace = new TraceParameters(); trace.Msg = ex.Message; trace.Tracelevel = System.Web.Http.Tracing.TraceLevel.Fatal.ToString(); TraceLogHelper.AddLog(typeof(TraceManagerController), trace); } }
/// <summary> /// Finds the Best path between 2 points /// </summary> /// <param name="topologyName">[in] Name of existing topology.</param> /// <returns> /// Returns true if successful. /// </returns> private bool FindBestPath(string topologyName) { // Get the Topology object for the specified Topology TopologyModel mapTopology = null; MapApplication mapApp = HostMapApplicationServices.Application; Topologies topos = mapApp.ActiveProject.Topologies; if (topos.Exists(topologyName)) { mapTopology = topos[topologyName]; } else { Utility.AcadEditor.WriteMessage(string.Format("\nERROR: The Topology {0} doesn't exit!", topologyName)); return false; } // Required for the TraceBestPath Function ElementCollection objectsOnPath = null; TraceParameters objTraceParams = new TraceParameters( 0, // MinResistance, 100000, // MaxResistance, null, // NodeResistanceExpression, null, // LinkDirectionExpression, null, // LinkResistanceExpression, null, // LinkReverseResistanceExpression, false, // UseReverseDirection, "Result",// Name "Test"); // Description // Open the topology for read try { mapTopology.Open(Autodesk.Gis.Map.Topology.OpenMode.ForRead); } catch (MapException e) { Utility.AcadEditor.WriteMessage(string.Format("\nERROR: Unable to open Topology {0} for read with error code: {1}.", topologyName, e.ErrorCode)); return false; } try { // Select the starting node string promptString = "\nSelect the Start Node:"; Node startNode = null; if (!SelectNode(ref startNode, promptString, mapTopology)) { Utility.AcadEditor.WriteMessage("\nERROR: A valid Start Node was not selected."); return false; } // Select the end node Node endNode = null; promptString = "\nSelect the End Node:"; if (!SelectNode(ref endNode, promptString, mapTopology)) { Utility.AcadEditor.WriteMessage("\nERROR: A valid End Node was not selected."); return false; } // Select the intermediate nodes NodeCollection intermediates = new NodeCollection(); Node intermediateNode = null; promptString = "\nSelect an Intermediate Node:"; while (SelectNode(ref intermediateNode, promptString, mapTopology)) { intermediates.Add(intermediateNode); intermediateNode = null; } // Find the best path and output it as a new topology called result objectsOnPath = mapTopology.TraceBestPath(startNode, endNode, intermediates, objTraceParams); Utility.AcadEditor.WriteMessage("\nThe best path function has created a Topology named Result."); Utility.SendCommand("_regen\n"); return true; } catch (MapException e) { if (2001 == e.ErrorCode) { Utility.AcadEditor.WriteMessage("\nERROR: Topology Result already exists."); } else { Utility.AcadEditor.WriteMessage(string.Format("\nERROR: Unable to find the best path with error code: {0}.", e.ErrorCode)); } return false; } finally { mapTopology.Close(); } }