/// <summary>
        /// Retrieve the Conditions for a given Data Model for a specific Thark Action
        /// </summary>
        /// <param name="dataModel">Data Model</param>
        /// <param name="contextAction">Context Action</param>
        /// <returns></returns>
        public static IEnumerable <ThuriaDataModelConditionMetadata> GetThuriaDataModelConditions(this object dataModel, DbContextAction contextAction)
        {
            var allConditions = new List <ThuriaDataModelConditionMetadata>();
            var dataModelType = dataModel.GetType();
            var allProperties = dataModelType.GetProperties();

            foreach (var currentProperty in allProperties)
            {
                if (currentProperty.GetCustomAttribute <ThuriaIgnoreAttribute>() != null)
                {
                    continue;
                }

                var propertyValue            = currentProperty.GetValue(dataModel);
                var conditionColumnAttribute = currentProperty.GetCustomAttributes <ThuriaConditionColumnAttribute>()
                                               .FirstOrDefault(attribute => attribute.ContextAction == contextAction);
                if (propertyValue == null)
                {
                    continue;
                }
                if (contextAction != DbContextAction.Retrieve && contextAction != DbContextAction.Delete && conditionColumnAttribute == null)
                {
                    continue;
                }

                var isRequired        = conditionColumnAttribute == null ? false : conditionColumnAttribute.IsRequired;
                var columnName        = dataModel.GetThuriaDataModelColumnName(currentProperty.Name);
                var conditionMetadata = new ThuriaDataModelConditionMetadata(columnName.ColumnName, isRequired, propertyValue);

                allConditions.Add(conditionMetadata);
            }

            return(allConditions);
        }
        public void Constructor()
        {
            //---------------Set up test pack-------------------
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var conditionMetadata = new ThuriaDataModelConditionMetadata("Id", true, null);

            //---------------Test Result -----------------------
            conditionMetadata.Should().NotBeNull();
        }