public void MultipleComparisonsOnSameField()
        {
            var qe = new QueryExpression("contact");

            qe.ColumnSet = new ColumnSet("fullname", "lastname");
            qe.Criteria.AddCondition("modifiedon", ConditionOperator.GreaterThan, "2020-01-01");
            qe.Criteria.AddCondition(new ConditionExpression("modifiedon", ConditionOperator.GreaterThan, true, "createdon"));

            var converted = QueryExpressionCodeGenerator.GetCSharpQueryExpression(qe);

            var expected = @"// Define Condition Values
var query_modifiedon = ""2020-01-01"";
var query_modifiedon1 = ""createdon"";

// Instantiate QueryExpression query
var query = new QueryExpression(""contact"");

// Add columns to query.ColumnSet
query.ColumnSet.AddColumns(""fullname"", ""lastname"");

// Define filter query.Criteria
query.Criteria.AddCondition(""modifiedon"", ConditionOperator.GreaterThan, query_modifiedon);
query.Criteria.AddCondition(""modifiedon"", ConditionOperator.GreaterThan, true, query_modifiedon1);
";

            Assert.AreEqual(expected, converted);
        }
 internal void QueryExpressionToFetchXml(string query)
 {
     working = true;
     WorkAsync(new WorkAsyncInfo("Translating QueryExpression to FetchXML...",
                                 (eventargs) =>
     {
         var start       = DateTime.Now;
         string fetchXml = QueryExpressionCodeGenerator.GetFetchXmlFromCSharpQueryExpression(query, Service);
         var stop        = DateTime.Now;
         var duration    = stop - start;
         LogUse("QueryExpressionToFetchXml", false, null, duration.TotalMilliseconds);
         SendMessageToStatusBar(this, new StatusBarMessageEventArgs($"Execution time: {duration}"));
         eventargs.Result = fetchXml;
     })
     {
         PostWorkCallBack = (completedargs) =>
         {
             if (completedargs.Error != null)
             {
                 ShowErrorDialog(completedargs.Error, "Parse QueryExpression");
             }
             else if (completedargs.Result is string)
             {
                 XmlDocument doc = new XmlDocument();
                 doc.LoadXml(completedargs.Result.ToString());
                 dockControlBuilder.Init(doc.OuterXml, null, "parse QueryExpression", true);
             }
             working = false;
         }
     });
 }
Exemple #3
0
        private string GetQueryExpressionCode()
        {
            var code = string.Empty;

            try
            {
                var QEx = dockControlBuilder.GetQueryExpression(null, false);
                code = QueryExpressionCodeGenerator.GetCSharpQueryExpression(QEx);
            }
            catch (FetchIsAggregateException ex)
            {
                code = "This FetchXML is not possible to convert to QueryExpression in the current version of the SDK.\n\n" + ex.Message;
            }
            catch (Exception ex)
            {
                code = "Failed to generate C# QueryExpression code.\n\n" + ex.Message;
            }
            return(code);
        }