Skip to content

Commit

Permalink
Fixed #897 as a BETA, hopefully works!
Browse files Browse the repository at this point in the history
  • Loading branch information
rappen committed Aug 1, 2023
1 parent baf78b9 commit 41c39de
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 56 deletions.
28 changes: 19 additions & 9 deletions FetchXmlBuilder/FXBInterfaces.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,19 +169,29 @@ public void ShowSettings()
LogUse("SaveOptions");
var oldtrycachemetadata = settings.TryMetadataCache;
settings = settingDlg.GetSettings();
if (Service != null && oldtrycachemetadata != settings.TryMetadataCache)
if (Service != null)
{
var msg = settings.TryMetadataCache ?
"It is now trying to retrieve chached metadata in the background, and may take a few or many seconds." :
"Metadata is now reloaded in the old fashioned way.";
if (MessageBox.Show("The 'Use cache metadata' flag has been changed.\n\n" + msg + "\n\nClick Cancel to NOT change this.",
"Metadata changed", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.Cancel)
if (oldtrycachemetadata != settings.TryMetadataCache)
{
settings.TryMetadataCache = !settings.TryMetadataCache;
var msg = settings.TryMetadataCache ?
"It is now trying to retrieve chached metadata in the background, and may take a few or many seconds." :
"Metadata is now reloaded in the old fashioned way.";
if (MessageBox.Show("The 'Use cache metadata' flag has been changed.\n\n" + msg + "\n\nClick Cancel to NOT change this.",
"Metadata changed", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.Cancel)
{
settings.TryMetadataCache = !settings.TryMetadataCache;
}
else
{
LoadEntities(true);
}
}
else
else if (settingDlg.forcereloadingmetadata)
{
LoadEntities();
if (MessageBox.Show("Reloading all metadata.\nIt may take a while... (10-300 secs)", "Reload metadata", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
{
LoadEntities(true);
}
}
}
SaveSetting();
Expand Down
12 changes: 8 additions & 4 deletions FetchXmlBuilder/FXBMetadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -284,15 +284,19 @@ private static bool CheckMetadata(OwnershipTypes[] options, OwnershipTypes? meta
return true;
}

private void LoadEntities()
private void LoadEntities(bool forcereload = false)
{
if (SendMessageToStatusBar != null)
{
SendMessageToStatusBar(this, new XrmToolBox.Extensibility.Args.StatusBarMessageEventArgs($"{(forcereload ? "Reloading" : "Loading")} all entities..."));
}
working = true;
entities = null;
entityShitList = new List<string>();
this.GetAllEntityMetadatas(SetAfterEntitiesLoaded, settings.TryMetadataCache, settings.WaitUntilMetadataLoaded);
this.GetAllEntityMetadatas(SetAfterEntitiesLoaded, settings.TryMetadataCache, settings.WaitUntilMetadataLoaded || forcereload, forcereload);
}

private void SetAfterEntitiesLoaded(IEnumerable<EntityMetadata> newEntityMetadata)
private void SetAfterEntitiesLoaded(IEnumerable<EntityMetadata> newEntityMetadata, bool manually)
{
MethodInvoker mi = delegate
{
Expand All @@ -301,7 +305,7 @@ private void SetAfterEntitiesLoaded(IEnumerable<EntityMetadata> newEntityMetadat
entities = newEntityMetadata.ToList();
if (SendMessageToStatusBar != null)
{
SendMessageToStatusBar(this, new XrmToolBox.Extensibility.Args.StatusBarMessageEventArgs($"All entities are now loaded."));
SendMessageToStatusBar(this, new XrmToolBox.Extensibility.Args.StatusBarMessageEventArgs($"{(manually ? "Reloaded" : "Loaded")} {entities.Count} entities."));
}
}
working = false;
Expand Down
95 changes: 54 additions & 41 deletions FetchXmlBuilder/Forms/Settings.Designer.cs

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

12 changes: 11 additions & 1 deletion FetchXmlBuilder/Forms/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public partial class Settings : Form
{
private FetchXmlBuilder fxb;
private bool validateinfo;
internal bool forcereloadingmetadata = false;

public Settings(FetchXmlBuilder fxb)
{
Expand Down Expand Up @@ -99,7 +100,7 @@ internal FXBSettings GetSettings()
settings.ShowValidation = chkShowValidation.Checked;
settings.ShowValidationInfo = settings.ShowValidation && chkShowValidationInfo.Checked;
settings.ShowRepository = chkShowRepository.Checked;
settings.ShowBDU=chkShowBulkDataUpdater.Checked;
settings.ShowBDU = chkShowBulkDataUpdater.Checked;
settings.QueryOptions.ShowAllAttributes = chkShowAllAttributes.Checked;
settings.ShowOData2 = chkShowOData2.Checked;
settings.XmlColors = propXmlColors.SelectedObject as XmlColors;
Expand Down Expand Up @@ -234,5 +235,14 @@ private void btnResetAll_Click(object sender, EventArgs e)
PopulateSettings(new FXBSettings());
}
}

private void btnForceReloadMetadata_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Shall we reload all metadata?\n\nYes or No...", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
{
forcereloadingmetadata = true;
DialogResult = DialogResult.OK;
}
}
}
}
2 changes: 1 addition & 1 deletion Rappen.XTB.Helper

0 comments on commit 41c39de

Please sign in to comment.