Skip to content

Commit

Permalink
Minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
rappen committed Jan 14, 2023
1 parent 51b890f commit 6b52aae
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 49 deletions.
24 changes: 5 additions & 19 deletions FetchXmlBuilder/DockControls/XmlContentControl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -901,7 +901,7 @@ private void cmbQExStyle_SelectedIndexChanged(object sender, EventArgs e)
numQExIndent.Enabled = false;
break;
}
fxb.UpdateLiveXML();
UpdateXML(fxb.GetQueryExpressionCode());
}
else
{
Expand All @@ -915,7 +915,7 @@ private void cmbQExFlavor_SelectedIndexChanged(object sender, EventArgs e)
{
fxb.settings.CodeGenerators.QExFlavor = flavor.Tag;
linkFlavorHelp.Text = flavor.Creator;
fxb.UpdateLiveXML();
UpdateXML(fxb.GetQueryExpressionCode());
}
else
{
Expand All @@ -926,33 +926,19 @@ private void cmbQExFlavor_SelectedIndexChanged(object sender, EventArgs e)
private void chkQExFilterVariables_CheckedChanged(object sender, EventArgs e)
{
fxb.settings.CodeGenerators.FilterVariables = chkQExFilterVariables.Checked;
fxb.UpdateLiveXML();
UpdateXML(fxb.GetQueryExpressionCode());
}

private void rbQExObjectInitializer_CheckedChanged(object sender, EventArgs e)
{
fxb.settings.CodeGenerators.ObjectInitializer = rbQExObjectinitializer.Checked;
fxb.UpdateLiveXML();
return;
if (rbQExObjectinitializer.Checked)
{
MessageBox.Show(@"Oooh I know you wich that option... but it is not yet implemented... #sorry
Do you like that idea?
Click the ""Help"" button to vote on this Issue #830 and it will be implemented, one day...!
More votes == released sooner.", "QueryExpressionFactory",
MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, 0,
"https://github.com/rappen/FetchXMLBuilder/issues/830");

rbQExLineByLine.Checked = true;
}
UpdateXML(fxb.GetQueryExpressionCode());
}

private void numQExIndent_ValueChanged(object sender, EventArgs e)
{
fxb.settings.CodeGenerators.Indents = (int)numQExIndent.Value;
fxb.UpdateLiveXML();
UpdateXML(fxb.GetQueryExpressionCode());
}

private void linkFlavorHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
Expand Down
60 changes: 30 additions & 30 deletions FetchXmlBuilder/FetchXmlBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,36 @@ internal static void OpenURL(string url)
Process.Start(url);
}

internal string GetQueryExpressionCode()
{
switch (settings.CodeGenerators.QExStyle)
{
case QExStyleEnum.FetchXML:
var fetch = dockControlBuilder.GetFetchString(true, false);
return CSharpCodeGeneratorFetchXML.GetCSharpFetchXMLCode(fetch, settings.CodeGenerators);

case QExStyleEnum.QueryExpression:
case QExStyleEnum.OrganizationServiceContext:
case QExStyleEnum.QueryExpressionFactory:
case QExStyleEnum.FluentQueryExpression:
try
{
var QEx = dockControlBuilder.GetQueryExpression(false);
return CSharpCodeGenerator.GetCSharpQueryExpression(QEx, entities, settings);
}
catch (FetchIsAggregateException ex)
{
return $"/*\nThis FetchXML is not possible to convert to QueryExpression in the current version of the SDK.\n\n{ex.Message}\n*/";
}
catch (Exception ex)
{
return $"/*\nFailed to generate C# {settings.CodeGenerators.QExStyle} with {settings.CodeGenerators.QExFlavor} code.\n\n{ex.Message}\n*/";
}
default:
return "/*\nSelect Style of code to generate.\n*/";
}
}

#endregion Internal Methods

#region Private Methods
Expand Down Expand Up @@ -386,36 +416,6 @@ private List<string> GetEntitiesFromFetch(XmlNode definitionXmlNode, List<string
return result;
}

private string GetQueryExpressionCode()
{
switch (settings.CodeGenerators.QExStyle)
{
case QExStyleEnum.FetchXML:
var fetch = dockControlBuilder.GetFetchString(true, false);
return CSharpCodeGeneratorFetchXML.GetCSharpFetchXMLCode(fetch, settings.CodeGenerators);

case QExStyleEnum.QueryExpression:
case QExStyleEnum.OrganizationServiceContext:
case QExStyleEnum.QueryExpressionFactory:
case QExStyleEnum.FluentQueryExpression:
try
{
var QEx = dockControlBuilder.GetQueryExpression(false);
return CSharpCodeGenerator.GetCSharpQueryExpression(QEx, entities, settings);
}
catch (FetchIsAggregateException ex)
{
return $"/*\nThis FetchXML is not possible to convert to QueryExpression in the current version of the SDK.\n\n{ex.Message}\n*/";
}
catch (Exception ex)
{
return $"/*\nFailed to generate C# {settings.CodeGenerators.QExStyle} with {settings.CodeGenerators.QExFlavor} code.\n\n{ex.Message}\n*/";
}
default:
return "/*\nSelect Style of code to generate.\n*/";
}
}

private string GetSQLQuery(out bool sql4cds)
{
sql4cds = false;
Expand Down

0 comments on commit 6b52aae

Please sign in to comment.