Skip to content

Commit

Permalink
Merge pull request #16 from delegateas/dependencies
Browse files Browse the repository at this point in the history
Simple dependency count for entities
  • Loading branch information
Ahmad Sattar authored Jan 19, 2020
2 parents 254ca91 + ba6995e commit ab6afb5
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 17 deletions.
7 changes: 4 additions & 3 deletions DeprecationTool/CustomControls/CheckBoxListView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,10 @@ protected override void OnDoubleClick(EventArgs e)
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
SelectedItems[0].ImageKey = SelectedItems[0].ImageKey == Deprecate.CHECKED
? Deprecate.UNCHECKED
: Deprecate.CHECKED;
//if (e.Button == MouseButtons.Left)
/* SelectedItems[0].ImageKey = SelectedItems[0].ImageKey == Deprecate.CHECKED
? Deprecate.UNCHECKED
: Deprecate.CHECKED;*/
}
}

Expand Down
36 changes: 34 additions & 2 deletions DeprecationTool/DeprecateControl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -371,9 +371,27 @@ private void tsInfo_Click(object sender, EventArgs e)

private void fieldListColumnClick(object sender, ColumnClickEventArgs e)
{
ListView myListView = (ListView)sender;
ListView theListView = (ListView)sender;
entityListViewComparer.toggleOrder(e.Column);
myListView.Sort();
theListView.Sort();
}

private void fieldListMouseClick(object sender, MouseEventArgs e)
{
ListView theListView = (ListView)sender;
if (e.Button == MouseButtons.Right)
{
if (theListView.FocusedItem != null && theListView.FocusedItem.Bounds.Contains(e.Location))
{
fieldListContextMenu.Show(Cursor.Position);
}
}else if (e.Button == MouseButtons.Left)
{
var element = theListView.FocusedItem;
element.ImageKey = element.ImageKey == Deprecate.CHECKED
? Deprecate.UNCHECKED
: Deprecate.CHECKED;
}
}

private void fieldListOnkeyboardPress(object sender, KeyEventArgs e)
Expand All @@ -396,6 +414,20 @@ private void fieldListOnkeyboardPress(object sender, KeyEventArgs e)
}
}

private void showDependencyMenuItem_Click(object sender, EventArgs e)
{
var item = entityFieldList.FocusedItem;
if (item != null)
{
var meta = (Deprecate.MetaData)item.Tag;
var res = Deprecate.getDependencyCountForEntity(Service, meta);
string message = $"Entity {meta.entityLName} has {res} {(res == 1 ? "dependency." : "dependencies." )}";
string caption = $"Dependency for {meta.entityLName}";
var result = MessageBox.Show(message, caption,
MessageBoxButtons.OK);

}
}
}

class ListViewItemComparer : IComparer
Expand Down
46 changes: 37 additions & 9 deletions DeprecationTool/DeprecateControl.designer.cs

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

6 changes: 3 additions & 3 deletions DeprecationTool/DeprecateControl.resx
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStripMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
<value>184, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tsInfo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
Expand All @@ -144,7 +144,7 @@
ByCQFSIiapkQAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>147, 17</value>
<metadata name="fieldListContextMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
9 changes: 9 additions & 0 deletions Lib/Deprecate.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ open Microsoft.Xrm.Sdk.Client
open Microsoft.Xrm.Sdk.Messages
open Microsoft.Xrm.Sdk.Query
open Microsoft.Xrm.Sdk.Metadata
open Microsoft.Crm.Sdk.Messages

module Deprecate =
open System.Globalization
Expand Down Expand Up @@ -319,6 +320,14 @@ module Deprecate =

attributeUpdateRequest attrMetadata

let getDependencyCountForEntity proxy (attr: MetaData) =
let request = RetrieveDependenciesForDeleteRequest()
request.ComponentType <- 2 //componenttype 2 = entity
request.ObjectId <- attr.attribute.MetadataId.Value

let response = getResponse<RetrieveDependenciesForDeleteResponse> proxy request
response.EntityCollection.Entities.Count

let pendingChanges (attrs: MetaDataWithCheck[]) =
attrs
|> Array.filter(fun x -> x.deprecationState <> x.metaData.deprecationState)
Expand Down
9 changes: 9 additions & 0 deletions Lib/deprecate.fs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ open Microsoft.Xrm.Sdk.Client
open Microsoft.Xrm.Sdk.Messages
open Microsoft.Xrm.Sdk.Query
open Microsoft.Xrm.Sdk.Metadata
open Microsoft.Crm.Sdk.Messages

module Deprecate =
open System.Globalization
Expand Down Expand Up @@ -319,6 +320,14 @@ module Deprecate =

attributeUpdateRequest attrMetadata

let getDependencyCountForEntity proxy (attr: MetaData) =
let request = RetrieveDependenciesForDeleteRequest()
request.ComponentType <- 2 //componenttype 2 = entity
request.ObjectId <- attr.attribute.MetadataId.Value

let response = getResponse<RetrieveDependenciesForDeleteResponse> proxy request
response.EntityCollection.Entities.Count

let pendingChanges (attrs: MetaDataWithCheck[]) =
attrs
|> Array.filter(fun x -> x.deprecationState <> x.metaData.deprecationState)
Expand Down

0 comments on commit ab6afb5

Please sign in to comment.