public CalculatedOperation GetCalculated() { var computedNodeOperation = new CalculatedOperation(); computedNodeOperation.NodeOperation = this; computedNodeOperation.DeletedNodes = GetDeletedNodes(); computedNodeOperation.AddedNodes = GetAddeddNodes(); computedNodeOperation.EdgeOperations = GetEdgeOperations(); computedNodeOperation.Cost = computedNodeOperation.NodeOperation.Cost + computedNodeOperation.EdgeOperations.Sum(x => x.Cost); return(computedNodeOperation); }
public EditPath CloneWithEditOperation(CalculatedOperation calculatedOperation) { EditPath pathClone = Clone(); pathClone.Path.Add(calculatedOperation); pathClone.cumelativeCost += calculatedOperation.Cost; pathClone.LatestOperation = calculatedOperation; foreach (var sourceNodeToRemove in calculatedOperation.DeletedNodes) { pathClone.SourceNodesLeftToResolve.Remove(sourceNodeToRemove); } foreach (var targetNodeToRemove in calculatedOperation.AddedNodes) { pathClone.TargetNodesLeftToResolve.Remove(targetNodeToRemove); } pathClone.HeuristicCost = pathClone.TargetNodesLeftToResolve.Count + pathClone.SourceNodesLeftToResolve.Count; pathClone.CumelativeCostPlusHeuristic = pathClone.cumelativeCost + pathClone.HeuristicCost; return(pathClone); }