public CRMRetrieveMultiple CRMRetrieveMultiple(CRMRetrieveMultiple crmRetrieveMultiple) { CRMFunctions function = new CRMFunctions(crmRetrieveMultiple.Config); return function.CRMRetrieveMultiple(crmRetrieveMultiple); }
public CRMRetrieveMultiple CRMRetrieveMultiple(CRMRetrieveMultiple retrieveMultiple) { List<CRMRetrieveMultipleReturn> results = new List<CRMRetrieveMultipleReturn>(); OrganizationServiceProxy _serviceProxy; using (_serviceProxy = GetCRMConnection()) { QueryExpression query; if (!string.IsNullOrEmpty(retrieveMultiple.ConditionAttributeName.Trim())) { //Create Query Expression. query = new QueryExpression() { EntityName = retrieveMultiple.LinkFromEntityName.ToLower(), ColumnSet = new ColumnSet(true), LinkEntities = { new LinkEntity { LinkFromEntityName = retrieveMultiple.LinkFromEntityName.ToLower(), LinkFromAttributeName = retrieveMultiple.LinkFromAttributeName, LinkToEntityName = retrieveMultiple.LinkToEntityName, LinkToAttributeName = retrieveMultiple.LinkToAttributeName, LinkCriteria = new FilterExpression { FilterOperator = LogicalOperator.And, Conditions = { new ConditionExpression { AttributeName = retrieveMultiple.ConditionAttributeName, Operator = GetConditionOperator(retrieveMultiple.ConditionOperator), Values = { retrieveMultiple.ConditionValue } } } } } } }; } else { //Create Query Expression. query = new QueryExpression() { EntityName = retrieveMultiple.LinkFromEntityName.ToLower(), ColumnSet = new ColumnSet(true), LinkEntities = { new LinkEntity { LinkFromEntityName = retrieveMultiple.LinkFromEntityName.ToLower(), LinkFromAttributeName = retrieveMultiple.LinkFromAttributeName, LinkToEntityName = retrieveMultiple.LinkToEntityName, LinkToAttributeName = retrieveMultiple.LinkToAttributeName, } } }; } EntityCollection ec = _serviceProxy.RetrieveMultiple(query); foreach (Entity e in ec.Entities) { CRMRetrieveMultipleReturn res = new CRMRetrieveMultipleReturn(); res.EntityId = e.Id.ToString(); string[] Columns = retrieveMultiple.ReturnAttributes.Split('|'); for (int i = 0; i < Columns.Length; i++) { if (e.Attributes.Contains(Columns[i].Trim())) { switch (i.ToString()) { case "0": res.ReturnAttribute0 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "1": res.ReturnAttribute1 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "2": res.ReturnAttribute2 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "3": res.ReturnAttribute3 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "4": res.ReturnAttribute4 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "5": res.ReturnAttribute5 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "6": res.ReturnAttribute6 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "7": res.ReturnAttribute7 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "8": res.ReturnAttribute8 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "9": res.ReturnAttribute9 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; } } } results.Add(res); } retrieveMultiple.Results = results; } return retrieveMultiple; }
private Property SetRetrieveMultipleProperties(Property prop, CRMRetrieveMultiple task) { if (task != null) { switch (prop.Name.ToLower()) { case "linkfromentityname": prop.Value = task.LinkFromEntityName; break; case "linkfromfromattributename": prop.Value = task.LinkFromAttributeName; break; case "linktoattributename": prop.Value = task.LinkToAttributeName; break; case "linktoentityname": prop.Value = task.LinkToEntityName; break; case "conditionattributename": prop.Value = task.ConditionAttributeName; break; case "conditionoperator": prop.Value = task.ConditionOperator; break; case "conditionvalue": prop.Value = task.ConditionValue; break; case "returnattributes": prop.Value = task.ReturnAttributes; break; } } return prop; }
public CRMRetrieveMultiple CRMRetrieveMultiple(CRMRetrieveMultiple retrieveMultiple) { List <CRMRetrieveMultipleReturn> results = new List <CRMRetrieveMultipleReturn>(); OrganizationServiceProxy _serviceProxy; using (_serviceProxy = GetCRMConnection()) { QueryExpression query; if (!string.IsNullOrEmpty(retrieveMultiple.ConditionAttributeName.Trim())) { //Create Query Expression. query = new QueryExpression() { EntityName = retrieveMultiple.LinkFromEntityName.ToLower(), ColumnSet = new ColumnSet(true), LinkEntities = { new LinkEntity { LinkFromEntityName = retrieveMultiple.LinkFromEntityName.ToLower(), LinkFromAttributeName = retrieveMultiple.LinkFromAttributeName, LinkToEntityName = retrieveMultiple.LinkToEntityName, LinkToAttributeName = retrieveMultiple.LinkToAttributeName, LinkCriteria = new FilterExpression { FilterOperator = LogicalOperator.And, Conditions = { new ConditionExpression { AttributeName = retrieveMultiple.ConditionAttributeName, Operator = GetConditionOperator(retrieveMultiple.ConditionOperator), Values = { retrieveMultiple.ConditionValue } } } } } } }; } else { //Create Query Expression. query = new QueryExpression() { EntityName = retrieveMultiple.LinkFromEntityName.ToLower(), ColumnSet = new ColumnSet(true), LinkEntities = { new LinkEntity { LinkFromEntityName = retrieveMultiple.LinkFromEntityName.ToLower(), LinkFromAttributeName = retrieveMultiple.LinkFromAttributeName, LinkToEntityName = retrieveMultiple.LinkToEntityName, LinkToAttributeName = retrieveMultiple.LinkToAttributeName, } } }; } EntityCollection ec = _serviceProxy.RetrieveMultiple(query); foreach (Entity e in ec.Entities) { CRMRetrieveMultipleReturn res = new CRMRetrieveMultipleReturn(); res.EntityId = e.Id.ToString(); string[] Columns = retrieveMultiple.ReturnAttributes.Split('|'); for (int i = 0; i < Columns.Length; i++) { if (e.Attributes.Contains(Columns[i].Trim())) { switch (i.ToString()) { case "0": res.ReturnAttribute0 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "1": res.ReturnAttribute1 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "2": res.ReturnAttribute2 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "3": res.ReturnAttribute3 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "4": res.ReturnAttribute4 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "5": res.ReturnAttribute5 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "6": res.ReturnAttribute6 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "7": res.ReturnAttribute7 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "8": res.ReturnAttribute8 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; case "9": res.ReturnAttribute9 = CRMTypeMapping(e.Attributes[Columns[i].Trim()].ToString()); break; } } } results.Add(res); } retrieveMultiple.Results = results; } return(retrieveMultiple); }
private void RetrieveMultiple(ref ServiceObject so) { SourceCode.SmartObjects.Services.ServiceSDK.Objects.Method meth = so.Methods[0]; CRMRetrieveMultiple multiple = new CRMRetrieveMultiple(); multiple.Config = crmconfig; try { multiple.LinkFromEntityName = NotNull(so.Properties["LinkFromEntityName"].Value); multiple.LinkFromAttributeName = NotNull(so.Properties["LinkFromAttributeName"].Value); multiple.LinkToEntityName = NotNull(so.Properties["LinkToEntityName"].Value); multiple.LinkToAttributeName = NotNull(so.Properties["LinkToAttributeName"].Value); multiple.ConditionAttributeName = NotNull(so.Properties["ConditionAttributeName"].Value); multiple.ConditionOperator = NotNull(so.Properties["ConditionOperator"].Value); multiple.ConditionValue = NotNull(so.Properties["ConditionValue"].Value); multiple.ReturnAttributes = NotNull(so.Properties["ReturnAttributes"].Value); CRMRetrieveMultiple response = CRMFunctions.CRMRetrieveMultiple(multiple); so.Properties.InitResultTable(); foreach (CRMRetrieveMultipleReturn ret in response.Results) { for (int c = 0; c < meth.ReturnProperties.Count; c += 1) { Property prop = so.Properties[meth.ReturnProperties[c]]; prop = SetRetrieveMultipleProperties(prop, response); prop = SetRetrieveMultipleReturnProperties(prop, ret); } so.Properties.BindPropertiesToResultTable(); } } catch (Exception ex) { throw; } }