Skip to content

Commit

Permalink
#35 Added toggle to display comments
Browse files Browse the repository at this point in the history
  • Loading branch information
LinkeD365 committed Nov 19, 2021
1 parent 461e087 commit b272cb2
Show file tree
Hide file tree
Showing 12 changed files with 182 additions and 63 deletions.
2 changes: 2 additions & 0 deletions FlowToVisio.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
<iconUrl>https://linked365.blog/wp-content/uploads/2020/03/smallIcon.png</iconUrl>
<description>A XrmToolBox tool to create Visio diagram of your Power Automate Flows that are within your CDS</description>
<releaseNotes>
#35 Added toggle to display comments

#33, #34 flows with [] in the name are corrupted (Thanks @RobCieloCosta, @banderson-eco)

#31 Added Options drop down to allow display of advanced settings
Expand Down
1 change: 1 addition & 0 deletions FlowToVisio/FlowToVisio.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@
<Compile Include="Visio\Action.cs" />
<Compile Include="Visio\BaseShape.cs" />
<Compile Include="Visio\CaseAction.cs" />
<Compile Include="Visio\Comment.cs" />
<Compile Include="Visio\ConditionAction.cs" />
<Compile Include="Visio\Connection.cs" />
<Compile Include="Visio\ShapeXML.Conditions.cs" />
Expand Down
3 changes: 3 additions & 0 deletions FlowToVisio/FlowToVisioControl.Methods.cs
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,8 @@ public class FlowDefinition
public bool Managed { get; set; }
public string OwnerType { get; set; }
public bool LogicApp { get; internal set; }

public List<Comment> Comments = new List<Comment>();
}

class FlowDefComparer : IComparer<FlowDefinition>
Expand Down Expand Up @@ -440,6 +442,7 @@ public class Display
public bool ShowTrackedProps { get; set; }
public bool ShowTriggers { get; set; }
public bool ShowTrackingID { get; set; }
public bool ShowComments { get; set; } = true;
}

public class LogicAppConn
Expand Down
51 changes: 46 additions & 5 deletions FlowToVisio/FlowToVisioControl.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using McTools.Xrm.Connection;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
Expand Down Expand Up @@ -86,6 +87,7 @@ private void FlowToVisioControl_Load(object sender, EventArgs e)
chkShowCustomTracking.Checked = aPIConnections.Display.ShowTrackingID;
chkShowTrackedProps.Checked = aPIConnections.Display.ShowTrackedProps;
chkShowTriggerConditions.Checked = aPIConnections.Display.ShowTriggers;
chkShowComments.Checked = aPIConnections.Display.ShowComments;
}

private void tsbClose_Click(object sender, EventArgs e)
Expand Down Expand Up @@ -136,7 +138,8 @@ private void btnCreateVisio_Click(object sender, EventArgs e)

if (selectFlow.Solution)
{
// flowObject = JObject.Parse(selectFlow.Definition);
PopulateComment(selectFlow);
// flowObject = JObject.Parse(selectFlow.Definition);
GenerateVisio(saveDialog.FileName, selectFlow, 1);
}
else
Expand All @@ -156,14 +159,22 @@ private void btnCreateVisio_Click(object sender, EventArgs e)
{
flowCount++;
var selFlow = (FlowDefinition)selectedRow.DataBoundItem;
if (selFlow.Solution) GenerateVisio(saveDialog.FileName, selFlow, flowCount, false);
else LoadFlow(selFlow, saveDialog.FileName, flowCount);
if (selFlow.Solution)
{
PopulateComment(selFlow);
GenerateVisio(saveDialog.FileName, selFlow, flowCount, false);
}
else
{
LoadFlow(selFlow, saveDialog.FileName, flowCount);

}
}


}
CompleteVisio(saveDialog.FileName);


}

public List<dynamic> Sort<T>(List<dynamic> input, string property)
Expand Down Expand Up @@ -225,7 +236,32 @@ private void toolStripButton1_Click(object sender, EventArgs e)
//GetClient();
LoadUnSolutionedFlows();
}

private void PopulateComment(FlowDefinition selectFlow)
{
if (!selectFlow.Solution) return;
if (!aPIConnections.Display.ShowComments) return;

var fetchXml = $@"
<fetch xmlns:generator='MarkMpn.SQL4CDS'>
<entity name='comment'>
<attribute name='createdby' />
<attribute name='artifactid' />
<attribute name='body' />
<attribute name='anchor' />
<attribute name='kind' />
<attribute name='createdon' />
<link-entity name='comment' from='commentid' to='container' link-type='inner'>
<filter>
<condition attribute='artifactid' operator='eq' value='{selectFlow.Id}'/>
</filter>
</link-entity>
</entity>
</fetch>";
var fe = new FetchExpression(fetchXml);
var comments = Service.RetrieveMultiple(fe);

Utils.Comments = comments.Entities.Select(com => new Comment(com)).OrderBy(cmt => cmt.Kind).ToList();
}

private HttpClient _client;

Expand Down Expand Up @@ -281,5 +317,10 @@ private void chkShowCustomTracking_CheckedChanged(object sender, EventArgs e)
aPIConnections.Display.ShowTrackingID = chkShowCustomTracking.Checked;

}

private void chkShowComments_CheckedChanged(object sender, EventArgs e)
{
aPIConnections.Display.ShowComments = chkShowComments.Checked;
}
}
}
13 changes: 12 additions & 1 deletion FlowToVisio/FlowToVisioControl.designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

90 changes: 45 additions & 45 deletions FlowToVisio/FlowToVisioControl.resx
Original file line number Diff line number Diff line change
Expand Up @@ -182,51 +182,51 @@
<data name="btnConnectLogicApps.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<metadata name="saveDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
Expand Down
Binary file modified FlowToVisio/Resources/VisioTemplate.vsdx
Binary file not shown.
24 changes: 17 additions & 7 deletions FlowToVisio/Visio/Action.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,33 +121,33 @@ protected void AddName()
AddProp("ActionName", PropertyName);
}

protected void AddText(string text)
public void AddText(string text)
{
var textElement = Shape.Descendants().Where(el => el.Name.LocalName == "Text").First();
var sb = new StringBuilder();

if (Utils.Display.ShowTrackingID && Property.Value["correlation"]?["clientTrackingId"] != null)
if (Utils.Display.ShowTrackingID && Property?.Value["correlation"]?["clientTrackingId"] != null)
sb.AppendLine("Client Tracking ID: " + Property.Value["correlation"]["clientTrackingId"]).ToString();

if (Utils.Display.ShowConCurrency && Property.Value["runtimeConfiguration"]?["concurrency"]?["runs"] != null)
if (Utils.Display.ShowConCurrency && Property?.Value["runtimeConfiguration"]?["concurrency"]?["runs"] != null)
sb.AppendLine("ConCurrency: " + Property.Value["runtimeConfiguration"]["concurrency"]["runs"]).ToString();
if (Utils.Display.ShowSecure && Property.Value["runtimeConfiguration"]?["secureData"]?["properties"] != null)
if (Utils.Display.ShowSecure && Property?.Value["runtimeConfiguration"]?["secureData"]?["properties"] != null)
{
if (((JArray)(Property.Value["runtimeConfiguration"]["secureData"]["properties"])).Select(jt => jt.ToString()).ToList().Any(st => st == "inputs")) sb.AppendLine("Secure Inputs: true");
if (((JArray)(Property.Value["runtimeConfiguration"]["secureData"]["properties"])).Select(jt => jt.ToString()).ToList().Any(st => st == "outputs")) sb.AppendLine("Secure Outputs: true");
}
if (Utils.Display.ShowTriggers && Property.Value["conditions"] != null)
if (Utils.Display.ShowTriggers && Property?.Value["conditions"] != null)
{
sb.AppendLine("Triggers:");
((JArray)Property.Value["conditions"]).Children<JToken>().ToList().ForEach(jt => sb.AppendLine(jt["expression"].ToString()));
}

if (Utils.Display.ShowTrackedProps && Property.Value["trackedProperties"] != null)
if (Utils.Display.ShowTrackedProps && Property?.Value["trackedProperties"] != null)
{
sb.AppendLine("Tracked Properties:");
(Property.Value["trackedProperties"]).Children<JProperty>().ToList().ForEach(jp => sb.AppendLine(jp.Name + " : " + jp.Value.ToString()));
}
if (Property.Value["description"] != null) sb.AppendLine("Comment: " + Property.Value["description"]);
if (Property?.Value["description"] != null) sb.AppendLine("Comment: " + Property.Value["description"]);
sb.AppendLine(text).ToString();
textElement.ReplaceWith(XElement.Parse("<Text><![CDATA[" + sb.ToString() + "]]></Text>"));
}
Expand Down Expand Up @@ -237,6 +237,16 @@ public Action() : base()
Utils.actionCount++;
}

public Action(string templateName, double pinX, double pinY)
{
Shape = new XElement(GetTemplateShape(templateName));
Utils.actionCount++;
Shape.SetAttributeValue("NameU", templateName + Utils.actionCount);
PinX = pinX;
PinY = pinY;
SetPosition();
}

private void AddBaseText()
{
Props.Add(XElement.Parse("<Row N='ActionName'> <Cell N='Value' V='" + PropertyName + "' U='STR'/></Row>"));
Expand Down
28 changes: 28 additions & 0 deletions FlowToVisio/Visio/Comment.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using Microsoft.Xrm.Sdk;
using Newtonsoft.Json.Linq;
using System;

namespace LinkeD365.FlowToVisio
{
public class Comment
{
public Comment(Entity entity)
{
AnchorId = entity["anchor"].ToString();
CommentString = JObject.Parse(entity["body"].ToString())["ops"][0]["insert"].ToString();
Commenter = ((EntityReference)entity["createdby"]).Name;
Kind = ((OptionSetValue)entity["kind"]).Value;
Created = (DateTime)entity["createdon"];
}

public string AnchorId { get; set; }

public int Kind { get; set; }

public string Commenter { get; set; }

public string CommentString { get; set; }

public DateTime Created { get; set; }
}
}
Loading

0 comments on commit b272cb2

Please sign in to comment.