private async Task <List <Entity> > GetEntityById(string fieldName, Guid idEntity, ColumnSet columnSet) { { var repository = new SdkMessageFilterRepository(_service); var messageFilter = await repository.FindByEntityAndMessageAsync(_entityMetadata.LogicalName, SdkMessage.Instances.RetrieveMultiple, new ColumnSet(false)); if (messageFilter == null) { return(null); } } QueryExpression query = new QueryExpression() { NoLock = true, EntityName = _entityMetadata.LogicalName, ColumnSet = columnSet, Criteria = { Conditions = { new ConditionExpression(fieldName, ConditionOperator.Equal, idEntity), }, }, }; return(await _service.RetrieveMultipleAllAsync <Entity>(query)); }
private async Task <Entity> GetEntityById(Guid idEntity, ColumnSet columnSet) { var repository = new SdkMessageFilterRepository(_service); var messageFilter = await repository.FindByEntityAndMessageAsync(_entityMetadata.LogicalName, SdkMessage.Instances.RetrieveMultiple, new ColumnSet(false)); if (messageFilter != null) { var query = new QueryExpression() { NoLock = true, TopCount = 2, EntityName = _entityMetadata.LogicalName, ColumnSet = columnSet, Criteria = { Conditions = { new ConditionExpression(_entityMetadata.PrimaryIdAttribute, ConditionOperator.Equal, idEntity), }, }, }; try { var coll = _service.RetrieveMultiple(query); if (coll.Entities.Count == 1) { return(coll.Entities.First()); } } catch (Exception ex) { DTEHelper.WriteExceptionToLog(ex); } } messageFilter = await repository.FindByEntityAndMessageAsync(_entityMetadata.LogicalName, SdkMessage.Instances.Retrieve, new ColumnSet(false)); if (messageFilter != null) { try { var result = _service.Retrieve(_entityMetadata.LogicalName, idEntity, columnSet); return(result); } catch (Exception ex) { DTEHelper.WriteExceptionToLog(ex); } } return(null); }
private async Task <Entity> GetEntityByNameField(string name, ColumnSet columnSet) { { var repository = new SdkMessageFilterRepository(_service); var messageFilter = await repository.FindByEntityAndMessageAsync(_entityMetadata.LogicalName, SdkMessage.Schema.Instances.RetrieveMultiple, ColumnSetInstances.None); if (messageFilter == null) { return(null); } } var query = new QueryExpression() { NoLock = true, TopCount = 2, EntityName = _entityMetadata.LogicalName, ColumnSet = columnSet, Criteria = { Conditions = { new ConditionExpression(_entityMetadata.PrimaryNameAttribute, ConditionOperator.Equal, name), }, }, }; try { var coll = _service.RetrieveMultiple(query); if (coll.Entities.Count == 1) { return(coll.Entities.First()); } } catch (Exception ex) { DTEHelper.WriteExceptionToLog(ex); } return(null); }