public IEnumerable <FieldDTO> GetSalesforceObjectTypes(SalesforceObjectOperations filterByOperations = SalesforceObjectOperations.None, SalesforceObjectProperties filterByProperties = SalesforceObjectProperties.None)
        {
            var salesforceTypes = Enum.GetValues(typeof(SalesforceObjectType));

            foreach (var salesforceType in salesforceTypes)
            {
                var sourceValues = salesforceType.GetType().GetField(salesforceType.ToString()).GetCustomAttributes <SalesforceObjectDescriptionAttribute>().FirstOrDefault();
                if (sourceValues.AvailableProperties.HasFlag(filterByProperties) && sourceValues.AvailableOperations.HasFlag(filterByOperations))
                {
                    yield return(new FieldDTO(salesforceType.ToString()));
                }
            }
        }
 public SalesforceObjectDescriptionAttribute(SalesforceObjectOperations availableOperations, SalesforceObjectProperties availableProperties)
 {
     AvailableOperations = availableOperations;
     AvailableProperties = availableProperties;
 }