public static void SavedQueries(XrmServiceContext svcContext) { QueryExpression mySavedQuery = new QueryExpression { ColumnSet = new ColumnSet("savedqueryid", "name", "querytype", "isdefault", "returnedtypecode", "isquickfindquery"), EntityName = SavedQuery.EntityLogicalName, Criteria = new FilterExpression { Conditions = { new ConditionExpression { AttributeName = "querytype", Operator = ConditionOperator.Equal, Values = {0} }, new ConditionExpression { AttributeName = "returnedtypecode", Operator = ConditionOperator.Equal, Values = {SalesOrder.EntityTypeCode} } } } }; RetrieveMultipleRequest retrieveSavedQueriesRequest = new RetrieveMultipleRequest { Query = mySavedQuery }; RetrieveMultipleResponse retrieveSavedQueriesResponse = (RetrieveMultipleResponse)svcContext.Execute(retrieveSavedQueriesRequest); DataCollection<Entity> savedQueries = retrieveSavedQueriesResponse.EntityCollection.Entities; using (StreamWriter sw = new StreamWriter(crmPath + "SavedQueries.txt")) { //Display the Retrieved views String oo = "Open Orders (Support)"; SavedQuery sq = new SavedQuery(); sw.WriteLine("rsq.SavedQueryId;rsq.Name;rsq.QueryType;rsq.IsDefault;rsq.ReturnedTypeCode;rsq.IsQuickFindQuery"); foreach (Entity ent in savedQueries) { SavedQuery rsq = (SavedQuery)ent; sw.WriteLine("{0};{1};{2};{3};{4};{5}", rsq.SavedQueryId, rsq.Name, rsq.QueryType, rsq.IsDefault, rsq.ReturnedTypeCode, rsq.IsQuickFindQuery); if (rsq.Name.Equals(oo)) sq = rsq; } sw.WriteLine("*****************"); sw.WriteLine("FetchXml: " + sq.FetchXml); sw.WriteLine("ColumnSetXml: " + sq.ColumnSetXml); //sw.WriteLine("CreatedBy: " + sq.CreatedBy.Name); sw.WriteLine("Description: " + sq.Description); sw.WriteLine("QueryAPI: " + sq.QueryAPI); sw.WriteLine("ReturnedTypeCode: " + sq.ReturnedTypeCode); ExecuteByIdSavedQueryRequest executeSavedQueryRequest = new ExecuteByIdSavedQueryRequest() { EntityId = sq.Id }; // Execute the request sw.WriteLine(" Executing Saved Query"); ExecuteByIdSavedQueryResponse executeSavedQueryResponse = (ExecuteByIdSavedQueryResponse)svcContext.Execute(executeSavedQueryRequest); // Check results if (String.IsNullOrEmpty(executeSavedQueryResponse.String)) throw new Exception("Saved Query did not return any results"); sw.WriteLine(executeSavedQueryResponse.String); } }
public async Task <IActionResult> SaveQuery([FromBody] JQQueryBuilderSavedQuery query) { try { var savedQueryEntityType = SavedQueryEntityType.Person; var savedQuery = await savedQueryRepository.Value.FindOneAsync(x => x.Type == savedQueryEntityType && x.Name == query.Name); var isNew = false; if (savedQuery == null) { isNew = true; savedQuery = new SavedQuery { Type = savedQueryEntityType, Name = query.Name, Query = query.Query, }; await savedQueryRepository.Value.InsertAsync(savedQuery); } else { savedQuery.Query = query.Query; await savedQueryRepository.Value.UpdateAsync(savedQuery); } return(Json(new { Success = true, QueryId = savedQuery.Id, Name = savedQuery.Name, IsNew = isNew })); } catch (Exception x) { return(Json(new { Success = false, Message = x.GetBaseException().Message })); } }
public IEnumerable <SelectListItem> SavedQueries() { if (!SavedQueryVisible) { return(null); } string uname = Util.UserName; var g = new Guid(); if (SavedQuery.HasValue() && SavedQuery.Contains(":")) { var lines = SavedQuery.Split(":".ToCharArray(), 2); Guid.TryParse(lines[0], out g); } var q1 = from qb in Db.Queries where qb.Owner == uname orderby qb.Name select new SelectListItem { Value = qb.QueryId + ":" + qb.Name, Selected = qb.QueryId == g, Text = qb.Name }; var q2 = from qb in Db.Queries where qb.Owner != uname && qb.Ispublic orderby qb.Owner, qb.Name select new SelectListItem { Value = qb.QueryId + ":" + qb.Name, Selected = qb.QueryId == g, Text = qb.Owner + ":" + qb.Name, }; return(q1.Union(q2)); }
void btnSave_Click(object sender, EventArgs e) { if (txtQuery.Text.Trim().Length == 0) { lblError.Text = DevTools.NoQueryWarning; return; } if (txtQueryName.Text.Trim().Length == 0) { lblError.Text = DevTools.QueryNameRequired; return; } SavedQuery q = repository.Fetch(txtQueryName.Text); if (q == null) { q = new SavedQuery(); } q.Statement = txtQuery.Text; q.Name = txtQueryName.Text; if (currentUser != null) { q.LastModBy = currentUser.UserGuid; } q.LastModUtc = DateTime.UtcNow; repository.Save(q); RedirectToQuery(q.Id.ToString()); }
public ActionResult Save([Bind(Include = "Queries,SavedQueries,Query,Description,Csv")] QueryViewModel qvm) { SavedQuery savQuery = new SavedQuery(); // Check for valid Query. Must be SELECT Command, and only has a one semicolon at the end of the query string Query = qvm.Query; if (Query.Length >= 6 && Query.Substring(0, 6) == "SELECT" && Query.Substring(0, Query.Length - 1) != ";" && Query.Substring(Query.Length - 1, 1) == ";") { savQuery.Query = Query; savQuery.Description = qvm.Description; savQuery.CreationDate = DateTime.Today; db.SavedQueries.Add(savQuery); try { db.SaveChanges(); TempData["SuccessOHMsg"] = "Saved Query " + savQuery.SavedQueryID + " added"; } catch { TempData["DangerOHMsg"] = "Problem saving query in the database. Please remember to enter a description before saving."; return(RedirectToAction("Index", qvm)); } } else { TempData["DangerOHMsg"] = "There was a problem with the format of the query"; return(RedirectToAction("Index", qvm)); } return(Run(qvm)); }
// Displays the sample product entity records in the browser. public void ViewEntityListInBrowser() { try { //Get the view ID QueryByAttribute query = new QueryByAttribute("savedquery"); query.AddAttributeValue("returnedtypecode", "sample_book"); query.AddAttributeValue("name", "Active Sample Books"); query.ColumnSet = new ColumnSet("savedqueryid", "name"); query.AddOrder("name", OrderType.Ascending); RetrieveMultipleRequest req = new RetrieveMultipleRequest() { Query = query }; RetrieveMultipleResponse resp = (RetrieveMultipleResponse)_serviceProxy.Execute(req); SavedQuery activeSampleBooksView = (SavedQuery)resp.EntityCollection[0]; String webServiceURL = _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Address.Uri.AbsoluteUri; String entityInDefaultSolutionUrl = webServiceURL.Replace("XRMServices/2011/Organization.svc", String.Format("main.aspx?etn={0}&pagetype=entitylist&viewid=%7b{1}%7d&viewtype=1039", "sample_book", activeSampleBooksView.SavedQueryId)); // View in IE ProcessStartInfo browserProcess = new ProcessStartInfo("iexplore.exe"); browserProcess.Arguments = entityInDefaultSolutionUrl; Process.Start(browserProcess); } catch (SystemException) { Console.WriteLine("\nThere was a problem opening Internet Explorer."); } }
/// <summary> /// Run the code example. /// </summary> /// <param name="user">The DFP user object running the code example.</param> public void Run(DfpUser user, long savedQueryId) { ReportService reportService = (ReportService)user.GetService( DfpService.v201608.ReportService); // Set the file path where the report will be saved. String filePath = _T("INSERT_FILE_PATH_HERE"); // Create statement to retrieve the saved query. // [START report_guide_include_1] MOE:strip_line StatementBuilder statementBuilder = new StatementBuilder() .Where("id = :id") .OrderBy("id ASC") .Limit(1) .AddValue("id", savedQueryId); SavedQueryPage page = reportService.getSavedQueriesByStatement(statementBuilder.ToStatement()); SavedQuery savedQuery = page.results[0]; if (!savedQuery.isCompatibleWithApiVersion) { throw new InvalidOperationException("Saved query is not compatible with this API version"); } // Optionally modify the query. ReportQuery reportQuery = savedQuery.reportQuery; // [END report_guide_include_1] MOE:strip_line reportQuery.adUnitView = ReportQueryAdUnitView.HIERARCHICAL; // Create a report job using the saved query. ReportJob reportJob = new ReportJob(); reportJob.reportQuery = reportQuery; try { // Run report. reportJob = reportService.runReportJob(reportJob); ReportUtilities reportUtilities = new ReportUtilities(reportService, reportJob.id); // Set download options. ReportDownloadOptions options = new ReportDownloadOptions(); options.exportFormat = ExportFormat.CSV_DUMP; options.useGzipCompression = true; reportUtilities.reportDownloadOptions = options; // Download the report. using (ReportResponse reportResponse = reportUtilities.GetResponse()) { reportResponse.Save(filePath); } Console.WriteLine("Report saved to \"{0}\".", filePath); } catch (Exception e) { Console.WriteLine("Failed to run saved query. Exception says \"{0}\"", e.Message); } }
private void addViewButton_Click(object sender, EventArgs e) { Entity entity = EntityBindingSource.Current as Entity; Guid atrributeId = entity.EntityId; SavedQuery query = new SavedQuery(); query.ReturnedTypeId = atrributeId; _presenter.ShowSavedQueryDetail(query); }
public async Task <IActionResult> Update(SavedQuery model) { var product = await repository.Value.FindOneAsync(model.Id); product.Name = model.Name; //product.Query = model.Query; await repository.Value.UpdateAsync(product); return(Json(new { status = true, redirectUrl = Url.Action("Index") })); }
public static void InitializeMockup(TestContext context) { var tmp = new SavedQuery(); //TODO: Temp fix to ensure BusinessDomain-assembly is loaded before running mockup. Awaits a new mockup-release https://github.com/delegateas/XrmMockup/issues/66 crm = XrmMockup365.GetInstance(new XrmMockupSettings { BasePluginTypes = new Type[] { typeof(DG.XrmOrg.XrmSolution.Plugins.Plugin) }, CodeActivityInstanceTypes = new Type[] { typeof(AccountCustomActivity) }, EnableProxyTypes = true, IncludeAllWorkflows = true }); }
public void ShowSavedQueryDetail(SavedQuery savedQuery) { var savedQueryDetailView = WorkItem.Items.AddNew <SavedQueryDetailView>(); savedQueryDetailView.Bind(savedQuery); var info = new XtraWindowSmartPartInfo { StartPosition = FormStartPosition.CenterParent, Icon = Properties.Resources.ri_Katrin, Modal = true, Title = "View Design" }; WorkItem.Workspaces[WorkspaceNames.ModalWindows].Show(savedQueryDetailView, info); BindList(); savedQueryDetailView.Dispose(); }
private void PopulateControls() { BindTableList(); BindQueryList(); if (queryId != Guid.Empty) { SavedQuery q = repository.Fetch(queryId); if (q != null) { txtQuery.Text = q.Statement; } } }
public static void InsertOrUpdateQuery(SavedQuery query) { var db = new SQLiteConnection(path); var saved = db.Query <SavedQuery>("select * from SavedQuery where Query = ?", query.Query); if (saved.Any()) { db.Update(query); } else { db.Insert(query); } }
public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SavedQuery savedQuery = db.SavedQueries.Find(id); if (savedQuery == null) { return(HttpNotFound()); } return(View(savedQuery)); }
private void deleteViewButton_Click(object sender, EventArgs e) { if (savedQueryBindingSource.Current != null) { SavedQuery savedQuery = savedQueryBindingSource.Current as SavedQuery; if (savedQuery != null) { string message = "Do you confirm to delete this Entity View?"; if (XtraMessageBox.Show(message, Properties.Resources.Katrin, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { _presenter.DeleteView(savedQuery.SavedQueryId); } } } }
public ActionResult DeleteConfirmed(int id) { SavedQuery savedQuery = db.SavedQueries.Find(id); db.SavedQueries.Remove(savedQuery); try { db.SaveChanges(); TempData["SuccessOHMsg"] = "Saved Query " + savedQuery.Description + " deleted"; return(RedirectToAction("Index", "Query", null)); } catch { TempData["DangerOHMsg"] = "Problem deleting the Saved Query " + savedQuery.Description; return(RedirectToAction("Index")); } }
// GET: SavedQueryRan/5 // This function is used to translate an ID into a QVM that can be passed to the Run action public ActionResult SavedQueryRan(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } SavedQuery savedQuery = db.SavedQueries.Find(id); if (savedQuery == null) { return(HttpNotFound()); } QueryViewModel qvm = new QueryViewModel(); qvm.SavedQueries = db.SavedQueries.ToList(); qvm.Query = savedQuery.Query; return(Run(qvm)); }
private void SerializeResult(SavedQuery sq, PXModel model, HttpContext context) { var info = PCAxis.Web.Controls.CommandBar.Plugin.CommandBarPluginManager.GetFileType(sq.Output.Type); PCAxis.Web.Core.ISerializerCreator creator = Activator.CreateInstance(Type.GetType(info.Creator)) as PCAxis.Web.Core.ISerializerCreator; context.Response.ContentType = info.MimeType; context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + model.Meta.Matrix + "." + info.FileExtension); var serializer = creator.Create(sq.Output.Type); using (MemoryStream ms = new MemoryStream()) { serializer.Serialize(model, ms); ms.Position = 0; ms.WriteTo(context.Response.OutputStream); } }
//Unittest to this one public string SavedQueryString(SavedQuery sq) { var resultString = string.Empty; foreach (var param in sq.Output.Params) { resultString = resultString + param.Key + param.Value; } foreach (var source in sq.Sources) { resultString += source.DatabaseId; resultString += source.Default; resultString += source.Id; resultString += source.Language; resultString += source.Source; resultString += source.SourceIdType; resultString += source.Type; foreach (var query in source.Quieries) { resultString += query.Code; resultString += query.VariableType; resultString += query.Selection.Filter; foreach (var value in query.Selection.Values) { resultString += value; } } } foreach (var step in sq.Workflow) { resultString += step.Type; foreach (var(key, value) in step.Params) { resultString = resultString + key + value; } } resultString += sq.Output.Type; return(resultString); }
public void Bind(SavedQuery savedQuery) { Guard.ArgumentNotNull(savedQuery, "savedQuery"); _savedQuery = savedQuery; nameTextEdit.Text = savedQuery.Name; descriptionMemoEdit.Text = savedQuery.Description; defaultCheck.Checked = savedQuery.IsDefault; if (!string.IsNullOrEmpty(savedQuery.LayoutXml)) { viewGridView.RestoreLayoutFromString(savedQuery.LayoutXml); } viewGridView.OptionsSelection.EnableAppearanceFocusedCell = false; viewGridView.OptionsSelection.EnableAppearanceFocusedRow = true; viewGridView.FocusRectStyle = DrawFocusRectStyle.RowFocus; viewGridView.OptionsView.ShowIndicator = false; viewGridView.OptionsView.WaitAnimationOptions = WaitAnimationOptions.Panel; viewGridView.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never; BindProperityData(); }
public ActionResult Edit([Bind(Include = "SavedQueryID,Description,Query")] SavedQuery savedQuery) { if (ModelState.IsValid) { db.Entry(savedQuery).State = EntityState.Modified; try { db.SaveChanges(); TempData["SuccessOHMsg"] = "Saved Query " + savedQuery.Description + " edited"; return(RedirectToAction("Index")); } catch { TempData["DangerOHMsg"] = "Problem editing the Saved Query " + savedQuery.Description; return(RedirectToAction("Index")); } } return(RedirectToAction("Index", "Query", null)); }
private string CreateUrlForScreenRendering(SavedQuery sq, PXModel model) { if (sq.Sources.Count < 1) { throw new Exception("No source specified"); //TODO fix message } var src = sq.Sources[0]; if (string.Compare(src.SourceIdType, "path") != 0) { throw new Exception("Incompatible source type"); //TODO fix } string path = src.Source; var tableName = QueryHelper.GetTableName(src); path = path.Substring(0, path.Length - (tableName.Length + 1)); if (string.Compare(sq.Sources[0].Type, "CNMM") == 0) { if (!path.StartsWith("START")) { path = "START__" + path; } } path = path.Replace(@"/", PxPathHandler.NODE_DIVIDER); List <LinkManager.LinkItem> linkItems = new List <LinkManager.LinkItem>(); linkItems.Add(new LinkManager.LinkItem(PxUrl.TABLE_KEY, tableName)); linkItems.Add(new LinkManager.LinkItem(PxUrl.PATH_KEY, path.ToString())); linkItems.Add(new LinkManager.LinkItem(PxUrl.DB_KEY, src.DatabaseId)); linkItems.Add(new LinkManager.LinkItem(PxUrl.LANGUAGE_KEY, src.Language)); linkItems.Add(new LinkManager.LinkItem(PxUrl.LAYOUT_KEY, "tableViewLayout1")); var url = LinkManager.CreateLink("Table.aspx", false, linkItems.ToArray()); PCAxis.Web.Core.Management.LocalizationManager.ChangeLanguage(src.Language); PCAxis.Web.Core.Management.PaxiomManager.PaxiomModel = model; return(url); }
internal Expression SavedQuery2() { var tf = CodeIds == "1"; var a = SavedQuery.Split(":".ToCharArray(), 2); Guid QueryId; Guid.TryParse(a[0], out QueryId); var q2 = db.PeopleQuery(QueryId); if (q2 == null) { return(AlwaysFalse()); } var tag = db.PopulateTemporaryTag(q2.Select(pp => pp.PeopleId)); Expression <Func <Person, bool> > pred = p => p.Tags.Any(t => t.Id == tag.Id); Expression expr = Expression.Invoke(pred, parm); return(expr); }
public ICollection GenerateFields(Control control) { var layoutXml = XElement.Parse(SavedQuery.GetAttributeValue <string>("layoutxml")); var cellNames = layoutXml.Element("row").Elements("cell").Select(cell => cell.Attribute("name")).Where(name => name != null); var disabledSortCellNames = layoutXml.Element("row").Elements("cell") .Where(cell => cell.Attribute("disableSorting") != null && cell.Attribute("disableSorting").Value == "1") .Where(cell => cell.Attribute("name") != null) .Select(cell => cell.Attribute("name").Value); var fetchXml = XElement.Parse(SavedQuery.GetAttributeValue <string>("fetchxml")); var entityName = fetchXml.Element("entity").Attribute("name").Value; var response = (RetrieveEntityResponse)ServiceContext.Execute(new RetrieveEntityRequest { LogicalName = entityName, EntityFilters = EntityFilters.Attributes }); if (response == null || response.EntityMetadata == null) { return(new DataControlFieldCollection()); } if (LanguageCode == 0) { LanguageCode = HttpContext.Current?.GetCrmLcid() ?? CultureInfo.CurrentCulture.LCID; } var fields = from name in cellNames let label = GetLabel(ServiceContext, response.EntityMetadata, name.Value, fetchXml, LanguageCode) where label != null select new BoundField { DataField = name.Value, SortExpression = disabledSortCellNames.Contains(name.Value) ? string.Empty : name.Value, HeaderText = label }; return(fields.ToArray()); }
[STAThread] // Required to support the interactive login experience static void Main(string[] args) { CrmServiceClient service = null; try { service = SampleHelpers.Connect("Connect"); if (service.IsReady) { // Create any entity records that the demonstration code requires SetUpSample(service); #region Demonstrate //Grab the default public view for opportunities. QueryExpression mySavedQuery = new QueryExpression { ColumnSet = new ColumnSet("savedqueryid"), EntityName = SavedQuery.EntityLogicalName, Criteria = new FilterExpression { Conditions = { new ConditionExpression { AttributeName = "isdefault", Operator = ConditionOperator.Equal, Values = { true } }, new ConditionExpression { AttributeName = "querytype", Operator = ConditionOperator.Equal, Values = { 0 } }, new ConditionExpression { AttributeName = "returnedtypecode", Operator = ConditionOperator.Equal, Values = { Opportunity.EntityTypeCode } } } } }; //This query should return one and only one result. SavedQuery defaultOpportunityQuery = service.RetrieveMultiple(mySavedQuery) .Entities.Select(x => (SavedQuery)x).FirstOrDefault(); // Retrieve visualizations out of the system. // This sample assumes that you have the "Top Opportunities" // visualization that is installed with Microsoft Dynamics CRM. QueryByAttribute visualizationQuery = new QueryByAttribute { EntityName = SavedQueryVisualization.EntityLogicalName, ColumnSet = new ColumnSet("savedqueryvisualizationid"), Attributes = { "name" }, //If you do not have this visualization, you will need to change //this line. Values = { "Top Opportunities" } }; SavedQueryVisualization visualization = service.RetrieveMultiple(visualizationQuery). Entities.Select(x => (SavedQueryVisualization)x).FirstOrDefault(); //This is the language code for U.S. English. If you are running this code //in a different locale, you will need to modify this value. int languageCode = 1033; //We set up our dashboard and specify the FormXml. Refer to the //FormXml schema in the Microsoft Dynamics CRM SDK for more information. SystemForm dashboard = new SystemForm { Name = "Sample Dashboard", Description = "Sample organization-owned dashboard.", FormXml = String.Format(@"<form> <tabs> <tab name='Test Dashboard' verticallayout='true'> <labels> <label description='Sample Dashboard' languagecode='{0}' /> </labels> <columns> <column width='100%'> <sections> <section name='Information Section' showlabel='false' showbar='false' columns='111'> <labels> <label description='Information Section' languagecode='{0}' /> </labels> <rows> <row> <cell colspan='1' rowspan='10' showlabel='false'> <labels> <label description='Top Opportunitiess - 1' languagecode='{0}' /> </labels> <control id='TopOpportunities' classid='{{E7A81278-8635-4d9e-8D4D-59480B391C5B}}'> <parameters> <ViewId>{1}</ViewId> <IsUserView>false</IsUserView> <RelationshipName /> <TargetEntityType>opportunity</TargetEntityType> <AutoExpand>Fixed</AutoExpand> <EnableQuickFind>false</EnableQuickFind> <EnableViewPicker>false</EnableViewPicker> <EnableJumpBar>false</EnableJumpBar> <ChartGridMode>Chart</ChartGridMode> <VisualizationId>{2}</VisualizationId> <EnableChartPicker>false</EnableChartPicker> <RecordsPerPage>10</RecordsPerPage> </parameters> </control> </cell> <cell colspan='1' rowspan='10' showlabel='false'> <labels> <label description='Top Opportunities - 2' languagecode='{0}' /> </labels> <control id='TopOpportunities2' classid='{{E7A81278-8635-4d9e-8D4D-59480B391C5B}}'> <parameters> <ViewId>{1}</ViewId> <IsUserView>false</IsUserView> <RelationshipName /> <TargetEntityType>opportunity</TargetEntityType> <AutoExpand>Fixed</AutoExpand> <EnableQuickFind>false</EnableQuickFind> <EnableViewPicker>false</EnableViewPicker> <EnableJumpBar>false</EnableJumpBar> <ChartGridMode>Grid</ChartGridMode> <VisualizationId>{2}</VisualizationId> <EnableChartPicker>false</EnableChartPicker> <RecordsPerPage>10</RecordsPerPage> </parameters> </control> </cell> </row> <row /> <row /> <row /> <row /> <row /> <row /> <row /> <row /> <row /> </rows> </section> </sections> </column> </columns> </tab> </tabs> </form>", languageCode, defaultOpportunityQuery.SavedQueryId.Value.ToString("B"), visualization.SavedQueryVisualizationId.Value.ToString("B")), IsDefault = false }; _dashboardId = service.Create(dashboard); Console.WriteLine("Created {0}.", dashboard.Name); //Now we will retrieve the dashboard. SystemForm retrievedDashboard = (SystemForm)service.Retrieve(SystemForm.EntityLogicalName, _dashboardId, new ColumnSet(true)); Console.WriteLine("Retrieved the dashboard."); // Update the retrieved dashboard. Enable the chart picker on the chart. var xDocument = XDocument.Parse(retrievedDashboard.FormXml); var chartPicker = (from control in xDocument.Descendants("control") where control.Attribute("id").Value == "TopOpportunities" select control.Descendants("EnableChartPicker").First() ).First(); chartPicker.Value = "true"; //Now we place the updated Xml back into the dashboard, and update it. retrievedDashboard.FormXml = xDocument.ToString(); service.Update(retrievedDashboard); // Publish the dashboard changes to the solution. // This is only required for organization-owned dashboards. var updateRequest = new PublishXmlRequest { ParameterXml = @"<dashboard>_dashboardId</dashboard>" }; service.Execute(updateRequest); Console.WriteLine("Updated the dashboard."); #endregion Demonstrate #region Clean up CleanUpSample(service); #endregion Clean up } else { const string UNABLE_TO_LOGIN_ERROR = "Unable to Login to Microsoft Dataverse"; if (service.LastCrmError.Equals(UNABLE_TO_LOGIN_ERROR)) { Console.WriteLine("Check the connection string values in cds/App.config."); throw new Exception(service.LastCrmError); } else { throw service.LastCrmException; } } } catch (Exception ex) { SampleHelpers.HandleException(ex); } finally { if (service != null) { service.Dispose(); } Console.WriteLine("Press <Enter> to exit."); Console.ReadLine(); } }
[STAThread] // Required to support the interactive login experience static void Main(string[] args) { CrmServiceClient service = null; try { service = SampleHelpers.Connect("Connect"); if (service.IsReady) { // Create any entity records that the demonstration code requires SetUpSample(service); #region Demonstrate // Create and Retrieve Offline Filter // In your Outlook client, this will appear in the System Filters tab // under File | CRM | Synchronize | Outlook Filters. Console.Write("Creating offline filter"); String contactName = String.Format("offlineFilteredContact {0}", DateTime.Now.ToLongTimeString()); String fetchXml = String.Format("<fetch version=\"1.0\" output-format=\"xml-platform\" mapping=\"logical\"><entity name=\"contact\"><attribute name=\"contactid\" /><filter type=\"and\">" + "<condition attribute=\"ownerid\" operator=\"eq-userid\" /><condition attribute=\"description\" operator=\"eq\" value=\"{0}\" />" + "<condition attribute=\"statecode\" operator=\"eq\" value=\"0\" /></filter></entity></fetch>", contactName); SavedQuery filter = new SavedQuery(); filter.FetchXml = fetchXml; filter.IsQuickFindQuery = false; filter.QueryType = SavedQueryQueryType.OfflineFilters; filter.ReturnedTypeCode = Contact.EntityLogicalName; filter.Name = "ReadOnlyFilter_" + contactName; filter.Description = "Sample offline filter for Contact entity"; _offlineFilter = service.Create(filter); Console.WriteLine(" and retrieving offline filter"); var result = (SavedQuery)service.Retrieve( SavedQuery.EntityLogicalName, _offlineFilter, new ColumnSet("name", "description")); Console.WriteLine("Name: {0}", result.Name); Console.WriteLine("Description: {0}", result.Description); Console.WriteLine(); // Create and Retrieve Offline Template // In your Outlook client, this will appear in the User Filters tab // under File | CRM | Synchronize | Outlook Filters. Console.Write("Creating offline template"); String accountName = String.Format("offlineFilteredAccount {0}", DateTime.Now.ToLongTimeString()); fetchXml = String.Format("<fetch version=\"1.0\" output-format=\"xml-platform\" mapping=\"logical\"><entity name=\"account\"><attribute name=\"accountid\" /><filter type=\"and\">" + "<condition attribute=\"ownerid\" operator=\"eq-userid\" /><condition attribute=\"name\" operator=\"eq\" value=\"{0}\" />" + "<condition attribute=\"statecode\" operator=\"eq\" value=\"0\" /></filter></entity></fetch>", accountName); var template = new SavedQuery(); template.FetchXml = fetchXml; template.IsQuickFindQuery = false; template.QueryType = SavedQueryQueryType.OfflineTemplate; template.ReturnedTypeCode = Account.EntityLogicalName; template.Name = "ReadOnlyFilter_" + accountName; template.Description = "Sample offline template for Account entity"; _offlineTemplate = service.Create(template); Console.WriteLine(" and retrieving offline template"); result = (SavedQuery)service.Retrieve( SavedQuery.EntityLogicalName, _offlineTemplate, new ColumnSet("name", "description")); Console.WriteLine("Name: {0}", result.Name); Console.WriteLine("Description: {0}", result.Description); Console.WriteLine(); // Call InstantiateFiltersRequest Console.WriteLine("Retrieving user's ID and creating the template collection"); var whoAmI = new WhoAmIRequest(); Guid id = ((WhoAmIResponse)service.Execute(whoAmI)).UserId; EntityReferenceCollection templates = new EntityReferenceCollection(); templates.Add(new EntityReference( SavedQuery.EntityLogicalName, _offlineTemplate)); Console.WriteLine("Activating the selected offline templates for this user"); var request = new InstantiateFiltersRequest { UserId = id, TemplateCollection = templates }; var response = (InstantiateFiltersResponse)service.Execute(request); Console.WriteLine(); // Call ResetUserFiltersRequest Console.WriteLine("Resetting the user's offline templates to the defaults"); var resetRequest = new ResetUserFiltersRequest { QueryType = SavedQueryQueryType.OfflineFilters }; var resetResponse = (ResetUserFiltersResponse)service.Execute(resetRequest); Console.WriteLine(); #endregion Demonstrate #region Clean up CleanUpSample(service); #endregion Clean up } else { const string UNABLE_TO_LOGIN_ERROR = "Unable to Login to Common Data Service"; if (service.LastCrmError.Equals(UNABLE_TO_LOGIN_ERROR)) { Console.WriteLine("Check the connection string values in cds/App.config."); throw new Exception(service.LastCrmError); } else { throw service.LastCrmException; } } } catch (Exception ex) { SampleHelpers.HandleException(ex); } finally { if (service != null) { service.Dispose(); } Console.WriteLine("Press <Enter> to exit."); Console.ReadLine(); } }
/// <summary> /// Create a view. /// Retrieve Views /// Deactivate a view /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptForDelete">When True, the user will be prompted to delete all /// created entities.</param> /// <param name="promptForReactivate">When True, the user will be prompted to reactivate /// a view that was deactivated.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptForDelete, bool promptForReactivate) { try { // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri, serverConfig.Credentials, serverConfig.DeviceCredentials)) { // This statement is required to enable early-bound type support. _serviceProxy.EnableProxyTypes(); // Create the view. //<snippetWorkWithViews1> System.String layoutXml = @"<grid name='resultset' object='3' jump='name' select='1' preview='1' icon='1'> <row name='result' id='opportunityid'> <cell name='name' width='150' /> <cell name='customerid' width='150' /> <cell name='estimatedclosedate' width='150' /> <cell name='estimatedvalue' width='150' /> <cell name='closeprobability' width='150' /> <cell name='opportunityratingcode' width='150' /> <cell name='opportunitycustomeridcontactcontactid.emailaddress1' width='150' disableSorting='1' /> </row> </grid>"; System.String fetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'> <entity name='opportunity'> <order attribute='estimatedvalue' descending='false' /> <filter type='and'> <condition attribute='statecode' operator='eq' value='0' /> </filter> <attribute name='name' /> <attribute name='estimatedvalue' /> <attribute name='estimatedclosedate' /> <attribute name='customerid' /> <attribute name='opportunityratingcode' /> <attribute name='closeprobability' /> <link-entity alias='opportunitycustomeridcontactcontactid' name='contact' from='contactid' to='customerid' link-type='outer' visible='false'> <attribute name='emailaddress1' /> </link-entity> <attribute name='opportunityid' /> </entity> </fetch>"; SavedQuery sq = new SavedQuery { Name = "A New Custom Public View", Description = "A Saved Query created in code", ReturnedTypeCode = "opportunity", FetchXml = fetchXml, LayoutXml = layoutXml, QueryType = 0 }; _customViewId = _serviceProxy.Create(sq); Console.WriteLine("A new view with the name {0} was created.", sq.Name); //</snippetWorkWithViews1> // Retrieve Views //<snippetWorkWithViews2> QueryExpression mySavedQuery = new QueryExpression { ColumnSet = new ColumnSet("savedqueryid", "name", "querytype", "isdefault", "returnedtypecode", "isquickfindquery"), EntityName = SavedQuery.EntityLogicalName, Criteria = new FilterExpression { Conditions = { new ConditionExpression { AttributeName = "querytype", Operator = ConditionOperator.Equal, Values = {0} }, new ConditionExpression { AttributeName = "returnedtypecode", Operator = ConditionOperator.Equal, Values = {Opportunity.EntityTypeCode} } } } }; RetrieveMultipleRequest retrieveSavedQueriesRequest = new RetrieveMultipleRequest { Query = mySavedQuery }; RetrieveMultipleResponse retrieveSavedQueriesResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveSavedQueriesRequest); DataCollection<Entity> savedQueries = retrieveSavedQueriesResponse.EntityCollection.Entities; //Display the Retrieved views foreach (Entity ent in savedQueries) { SavedQuery rsq = (SavedQuery)ent; Console.WriteLine("{0} : {1} : {2} : {3} : {4} : {5},", rsq.SavedQueryId, rsq.Name, rsq.QueryType, rsq.IsDefault, rsq.ReturnedTypeCode, rsq.IsQuickFindQuery); } //</snippetWorkWithViews2> // Deactivate a view //<snippetWorkWithViews3> System.String SavedQueryName = "Closed Opportunities in Current Fiscal Year"; QueryExpression ClosedOpportunitiesViewQuery = new QueryExpression { ColumnSet = new ColumnSet("savedqueryid", "statecode", "statuscode"), EntityName = SavedQuery.EntityLogicalName, Criteria = new FilterExpression { Conditions = { new ConditionExpression { AttributeName = "querytype", Operator = ConditionOperator.Equal, Values = {0} }, new ConditionExpression { AttributeName = "returnedtypecode", Operator = ConditionOperator.Equal, Values = {Opportunity.EntityTypeCode} }, new ConditionExpression { AttributeName = "name", Operator = ConditionOperator.Equal, Values = {SavedQueryName} } } } }; RetrieveMultipleRequest retrieveOpportuntiesViewRequest = new RetrieveMultipleRequest { Query = ClosedOpportunitiesViewQuery }; RetrieveMultipleResponse retrieveOpportuntiesViewResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveOpportuntiesViewRequest); SavedQuery OpportunityView = (SavedQuery)retrieveOpportuntiesViewResponse.EntityCollection.Entities[0]; _viewOriginalState = (SavedQueryState)OpportunityView.StateCode; _viewOriginalStatus = OpportunityView.StatusCode; SetStateRequest ssreq = new SetStateRequest { EntityMoniker = new EntityReference(SavedQuery.EntityLogicalName, (Guid)OpportunityView.SavedQueryId), State = new OptionSetValue((int)SavedQueryState.Inactive), Status = new OptionSetValue(2) }; _serviceProxy.Execute(ssreq); //</snippetWorkWithViews3> _deactivatedViewId = (Guid)OpportunityView.SavedQueryId; DeleteRequiredRecords(promptForDelete); ReactivateDeactivatedView(promptForReactivate); } } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>) { // You can handle an exception here or pass it back to the calling method. throw; } }
/// <summary> /// This method first connects to the Outlook service. Afterwards, /// client information is retrieved and the client state is changed. /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptforDelete">When True, the user will be prompted to delete all /// created entities.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptforDelete) { try { // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,serverConfig.Credentials, serverConfig.DeviceCredentials)) { // This statement is required to enable early-bound type support. _serviceProxy.EnableProxyTypes(); //<snippetRetrieveDataFilters1> // Create and Retrieve Offline Filter // In your Outlook client, this will appear in the System Filters tab // under File | CRM | Synchronize | Outlook Filters. Console.Write("Creating offline filter"); String contactName = String.Format("offlineFilteredContact {0}", DateTime.Now.ToLongTimeString()); String fetchXml = String.Format("<fetch version=\"1.0\" output-format=\"xml-platform\" mapping=\"logical\"><entity name=\"contact\"><attribute name=\"contactid\" /><filter type=\"and\">" + "<condition attribute=\"ownerid\" operator=\"eq-userid\" /><condition attribute=\"description\" operator=\"eq\" value=\"{0}\" />" + "<condition attribute=\"statecode\" operator=\"eq\" value=\"0\" /></filter></entity></fetch>", contactName); SavedQuery filter = new SavedQuery(); filter.FetchXml = fetchXml; filter.IsQuickFindQuery = false; filter.QueryType = SavedQueryQueryType.OfflineFilters; filter.ReturnedTypeCode = Contact.EntityLogicalName; filter.Name = "ReadOnlyFilter_" + contactName; filter.Description = "Sample offline filter for Contact entity"; _offlineFilter = _serviceProxy.Create(filter); Console.WriteLine(" and retrieving offline filter"); SavedQuery result = (SavedQuery)_serviceProxy.Retrieve( SavedQuery.EntityLogicalName, _offlineFilter, new ColumnSet("name", "description")); Console.WriteLine("Name: {0}", result.Name); Console.WriteLine("Description: {0}", result.Description); Console.WriteLine(); // Create and Retrieve Offline Template // In your Outlook client, this will appear in the User Filters tab // under File | CRM | Synchronize | Outlook Filters. Console.Write("Creating offline template"); String accountName = String.Format("offlineFilteredAccount {0}", DateTime.Now.ToLongTimeString()); fetchXml = String.Format("<fetch version=\"1.0\" output-format=\"xml-platform\" mapping=\"logical\"><entity name=\"account\"><attribute name=\"accountid\" /><filter type=\"and\">" + "<condition attribute=\"ownerid\" operator=\"eq-userid\" /><condition attribute=\"name\" operator=\"eq\" value=\"{0}\" />" + "<condition attribute=\"statecode\" operator=\"eq\" value=\"0\" /></filter></entity></fetch>", accountName); SavedQuery template = new SavedQuery(); template.FetchXml = fetchXml; template.IsQuickFindQuery = false; template.QueryType = SavedQueryQueryType.OfflineTemplate; template.ReturnedTypeCode = Account.EntityLogicalName; template.Name = "ReadOnlyFilter_" + accountName; template.Description = "Sample offline template for Account entity"; _offlineTemplate = _serviceProxy.Create(template); Console.WriteLine(" and retrieving offline template"); result = (SavedQuery)_serviceProxy.Retrieve( SavedQuery.EntityLogicalName, _offlineTemplate, new ColumnSet("name", "description")); Console.WriteLine("Name: {0}", result.Name); Console.WriteLine("Description: {0}", result.Description); Console.WriteLine(); //</snippetRetrieveDataFilters1> //<snippetRetrieveDataFilters2> // Call InstantiateFiltersRequest Console.WriteLine("Retrieving user's ID and creating the template collection"); WhoAmIRequest whoAmI = new WhoAmIRequest(); Guid id = ((WhoAmIResponse)_serviceProxy.Execute(whoAmI)).UserId; EntityReferenceCollection templates = new EntityReferenceCollection(); templates.Add(new EntityReference( SavedQuery.EntityLogicalName, _offlineTemplate)); Console.WriteLine("Activating the selected offline templates for this user"); InstantiateFiltersRequest request = new InstantiateFiltersRequest { UserId = id, TemplateCollection = templates }; InstantiateFiltersResponse response = (InstantiateFiltersResponse)_serviceProxy.Execute(request); Console.WriteLine(); //</snippetRetrieveDataFilters2> //<snippetRetrieveDataFilters3> // Call ResetUserFiltersRequest Console.WriteLine("Resetting the user's offline templates to the defaults"); ResetUserFiltersRequest resetRequest = new ResetUserFiltersRequest { QueryType = SavedQueryQueryType.OfflineFilters }; ResetUserFiltersResponse resetResponse = (ResetUserFiltersResponse)_serviceProxy.Execute(resetRequest); Console.WriteLine(); //</snippetRetrieveDataFilters3> DeleteRequiredRecords(promptforDelete); } } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>) { // You can handle an exception here or pass it back to the calling method. throw; } }
/// <summary> /// Create a view. /// Retrieve Views /// Deactivate a view /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptForDelete">When True, the user will be prompted to delete all /// created entities.</param> /// <param name="promptForReactivate">When True, the user will be prompted to reactivate /// a view that was deactivated.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptForDelete, bool promptForReactivate) { try { // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = ServerConnection.GetOrganizationProxy(serverConfig)) { // This statement is required to enable early-bound type support. _serviceProxy.EnableProxyTypes(); // Create the view. //<snippetWorkWithViews1> System.String layoutXml = @"<grid name='resultset' object='3' jump='name' select='1' preview='1' icon='1'> <row name='result' id='opportunityid'> <cell name='name' width='150' /> <cell name='customerid' width='150' /> <cell name='estimatedclosedate' width='150' /> <cell name='estimatedvalue' width='150' /> <cell name='closeprobability' width='150' /> <cell name='opportunityratingcode' width='150' /> <cell name='opportunitycustomeridcontactcontactid.emailaddress1' width='150' disableSorting='1' /> </row> </grid>"; System.String fetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'> <entity name='opportunity'> <order attribute='estimatedvalue' descending='false' /> <filter type='and'> <condition attribute='statecode' operator='eq' value='0' /> </filter> <attribute name='name' /> <attribute name='estimatedvalue' /> <attribute name='estimatedclosedate' /> <attribute name='customerid' /> <attribute name='opportunityratingcode' /> <attribute name='closeprobability' /> <link-entity alias='opportunitycustomeridcontactcontactid' name='contact' from='contactid' to='customerid' link-type='outer' visible='false'> <attribute name='emailaddress1' /> </link-entity> <attribute name='opportunityid' /> </entity> </fetch>"; SavedQuery sq = new SavedQuery { Name = "A New Custom Public View", Description = "A Saved Query created in code", ReturnedTypeCode = "opportunity", FetchXml = fetchXml, LayoutXml = layoutXml, QueryType = 0 }; _customViewId = _serviceProxy.Create(sq); Console.WriteLine("A new view with the name {0} was created.", sq.Name); //</snippetWorkWithViews1> // Retrieve Views //<snippetWorkWithViews2> QueryExpression mySavedQuery = new QueryExpression { ColumnSet = new ColumnSet("savedqueryid", "name", "querytype", "isdefault", "returnedtypecode", "isquickfindquery"), EntityName = SavedQuery.EntityLogicalName, Criteria = new FilterExpression { Conditions = { new ConditionExpression { AttributeName = "querytype", Operator = ConditionOperator.Equal, Values = { 0 } }, new ConditionExpression { AttributeName = "returnedtypecode", Operator = ConditionOperator.Equal, Values = { Opportunity.EntityTypeCode } } } } }; RetrieveMultipleRequest retrieveSavedQueriesRequest = new RetrieveMultipleRequest { Query = mySavedQuery }; RetrieveMultipleResponse retrieveSavedQueriesResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveSavedQueriesRequest); DataCollection <Entity> savedQueries = retrieveSavedQueriesResponse.EntityCollection.Entities; //Display the Retrieved views foreach (Entity ent in savedQueries) { SavedQuery rsq = (SavedQuery)ent; Console.WriteLine("{0} : {1} : {2} : {3} : {4} : {5},", rsq.SavedQueryId, rsq.Name, rsq.QueryType, rsq.IsDefault, rsq.ReturnedTypeCode, rsq.IsQuickFindQuery); } //</snippetWorkWithViews2> // Deactivate a view //<snippetWorkWithViews3> System.String SavedQueryName = "Closed Opportunities in Current Fiscal Year"; QueryExpression ClosedOpportunitiesViewQuery = new QueryExpression { ColumnSet = new ColumnSet("savedqueryid", "statecode", "statuscode"), EntityName = SavedQuery.EntityLogicalName, Criteria = new FilterExpression { Conditions = { new ConditionExpression { AttributeName = "querytype", Operator = ConditionOperator.Equal, Values = { 0 } }, new ConditionExpression { AttributeName = "returnedtypecode", Operator = ConditionOperator.Equal, Values = { Opportunity.EntityTypeCode } }, new ConditionExpression { AttributeName = "name", Operator = ConditionOperator.Equal, Values = { SavedQueryName } } } } }; RetrieveMultipleRequest retrieveOpportuntiesViewRequest = new RetrieveMultipleRequest { Query = ClosedOpportunitiesViewQuery }; RetrieveMultipleResponse retrieveOpportuntiesViewResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveOpportuntiesViewRequest); SavedQuery OpportunityView = (SavedQuery)retrieveOpportuntiesViewResponse.EntityCollection.Entities[0]; _viewOriginalState = (SavedQueryState)OpportunityView.StateCode; _viewOriginalStatus = OpportunityView.StatusCode; SetStateRequest ssreq = new SetStateRequest { EntityMoniker = new EntityReference(SavedQuery.EntityLogicalName, (Guid)OpportunityView.SavedQueryId), State = new OptionSetValue((int)SavedQueryState.Inactive), Status = new OptionSetValue(2) }; _serviceProxy.Execute(ssreq); //</snippetWorkWithViews3> _deactivatedViewId = (Guid)OpportunityView.SavedQueryId; DeleteRequiredRecords(promptForDelete); ReactivateDeactivatedView(promptForReactivate); } } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException <Microsoft.Xrm.Sdk.OrganizationServiceFault> ) { // You can handle an exception here or pass it back to the calling method. throw; } }
private void GetCurrentSavedQueryXml(IOrganizationServiceExtented service, CommonConfiguration commonConfig, XDocument doc, string filePath, SavedQuery savedQuery) { string fieldName = SavedQueryRepository.GetFieldNameByXmlRoot(doc.Root.Name.ToString()); string fieldTitle = SavedQueryRepository.GetFieldTitleByXmlRoot(doc.Root.Name.ToString()); string xmlContent = savedQuery.GetAttributeValue <string>(fieldName); if (string.IsNullOrEmpty(xmlContent)) { this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.InConnectionEntityFieldIsEmptyFormat4, service.ConnectionData.Name, SavedQuery.Schema.EntityLogicalName, savedQuery.Name, fieldTitle); this._iWriteToOutput.ActivateOutputWindow(service.ConnectionData); return; } commonConfig.CheckFolderForExportExists(this._iWriteToOutput); string currentFileName = EntityFileNameFormatter.GetSavedQueryFileName(service.ConnectionData.Name, savedQuery.ReturnedTypeCode, savedQuery.Name, fieldTitle, FileExtension.xml); string currentFilePath = Path.Combine(commonConfig.FolderForExport, FileOperations.RemoveWrongSymbols(currentFileName)); try { File.WriteAllText(currentFilePath, xmlContent, new UTF8Encoding(false)); this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.InConnectionEntityFieldExportedToFormat5, service.ConnectionData.Name, SavedQuery.Schema.EntityLogicalName, savedQuery.Name, fieldTitle, currentFilePath); this._iWriteToOutput.PerformAction(service.ConnectionData, currentFilePath); } catch (Exception ex) { this._iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); service.TryDispose(); } }
private Task GetCurrentSavedQueryXmlAsync(IOrganizationServiceExtented service, CommonConfiguration commonConfig, XDocument doc, string filePath, SavedQuery savedQuery) { return(Task.Run(() => GetCurrentSavedQueryXml(service, commonConfig, doc, filePath, savedQuery))); }
private Task OpenInWebSavedQueryXml(IOrganizationServiceExtented service, CommonConfiguration commonConfig, XDocument doc, string filePath, SavedQuery savedQuery) { return(Task.Run(() => { service.UrlGenerator.OpenSolutionComponentInWeb(ComponentType.SavedQuery, savedQuery.Id); service.TryDispose(); })); }
private XrmSavedQueryDefinition MapSavedQueryToDefinition(SavedQuery query) { var returnedTypeCode = query.ReturnedTypeCode; var entity = EntityDefinitionGet(returnedTypeCode); var definition = new XrmSavedQueryDefinition { Name = query.Name, FetchXml = query.FetchXml, SavedQueryId = query.SavedQueryId.Value, LayoutXml = query.LayoutXml, Entity = entity.TableName, EntityDisplayName = entity.DisplayName }; return definition; }
private void WriteAttributes(XmlWriter w, bool newGuids = false) { if (newGuids) { w.WriteAttributeString("Id", Guid.NewGuid().ToString()); } else { w.WriteAttributeString("Id", Id.ToString()); } w.WriteAttributeString("Order", Order.ToString()); w.WriteAttributeString("Field", ConditionName); w.WriteAttributeString("Comparison", Comparison); if (Description.HasValue()) { w.WriteAttributeString("Description", Description); } if (PreviousName.HasValue()) { w.WriteAttributeString("PreviousName", Description); } if (TextValue.HasValue()) { w.WriteAttributeString("TextValue", TextValue); } if (DateValue.HasValue) { w.WriteAttributeString("DateValue", DateValue.ToString()); } if (CodeIdValue.HasValue()) { w.WriteAttributeString("CodeIdValue", CodeIdValue); } if (StartDate.HasValue) { w.WriteAttributeString("StartDate", StartDate.ToString()); } if (EndDate.HasValue) { w.WriteAttributeString("EndDate", EndDate.ToString()); } if (Program > 0) { w.WriteAttributeString("Program", Program.ToString()); } if (Division > 0) { w.WriteAttributeString("Division", Division.ToString()); } if (Organization > 0) { w.WriteAttributeString("Organization", Organization.ToString()); } if (OrgType > 0) { w.WriteAttributeString("OrgType", OrgType.ToString()); } if (Days > 0) { w.WriteAttributeString("Days", Days.ToString()); } if (Quarters.HasValue()) { w.WriteAttributeString("Quarters", Quarters); } if (Tags.HasValue()) { w.WriteAttributeString("Tags", Tags); } if (Schedule != 0) { w.WriteAttributeString("Schedule", Schedule.ToString()); } if (Campus > 0) { w.WriteAttributeString("Campus", Campus.ToString()); } if (ConditionName != "FamilyHasChildrenAged") { Age = null; } if (Age.HasValue) { w.WriteAttributeString("Age", Age.ToString()); } if (SavedQuery.HasValue()) { w.WriteAttributeString("SavedQueryIdDesc", SavedQuery); } if (OnlineReg.HasValue) { w.WriteAttributeString("OnlineReg", OnlineReg.ToString()); } if (OrgStatus.HasValue) { w.WriteAttributeString("OrgStatus", OrgStatus.ToString()); } if (OrgType2.HasValue) { w.WriteAttributeString("OrgType2", OrgType2.ToString()); } if (OrgName.HasValue()) { w.WriteAttributeString("OrgName", OrgName); } }
/// <summary> /// Creates any entity records that this sample requires. /// </summary> public void CreateRequiredRecords() { #region Create Accounts to query over Console.WriteLine(" Creating some sample accounts"); Account account = new Account() { Name = "Coho Vineyard" }; account.Id = _serviceProxy.Create(account); _accounts.Add(account); Console.WriteLine(" Created Account {0}", account.Name); account = new Account() { Name = "Coho Winery" }; account.Id = _serviceProxy.Create(account); _accounts.Add(account); Console.WriteLine(" Created Account {0}", account.Name); account = new Account() { Name = "Coho Vineyard & Winery" }; account.Id = _serviceProxy.Create(account); _accounts.Add(account); Console.WriteLine(" Created Account {0}", account.Name); #endregion #region Create a Saved Query Console.WriteLine(" Creating a Saved Query that retrieves all Account ids"); _savedQuery = new SavedQuery() { Name = "Fetch all Account ids", ReturnedTypeCode = Account.EntityLogicalName, FetchXml = @" <fetch mapping='logical'> <entity name='account'> <attribute name='name' /> </entity> </fetch>", QueryType = 0, }; _savedQuery.Id = _serviceProxy.Create(_savedQuery); #endregion #region Create a User Query Console.WriteLine( " Creating a User Query that retrieves all Account ids for Accounts with name 'Coho Winery'"); _userQuery = new UserQuery() { Name = "Fetch Coho Winery", ReturnedTypeCode = Account.EntityLogicalName, FetchXml = @" <fetch mapping='logical'> <entity name='account'> <attribute name='name' /> <filter> <condition attribute='name' operator='eq' value='Coho Winery' /> </filter> </entity> </fetch>", QueryType = 0 }; _userQuery.Id = _serviceProxy.Create(_userQuery); #endregion }