private static bool ValidateCustomAttributeValueEntry(string value, CustomAttributeDataTypeEnum customAttributeDataType, List <string> customAttributeTypeAcceptableValues)
        {
            switch (customAttributeDataType)
            {
            case CustomAttributeDataTypeEnum.Integer:
                return(int.TryParse(value, out _));

            case CustomAttributeDataTypeEnum.Decimal:
                return(decimal.TryParse(value, out _));

            case CustomAttributeDataTypeEnum.DateTime:
                return(DateTime.TryParse(value, out _));

            case CustomAttributeDataTypeEnum.PickFromList:
            case CustomAttributeDataTypeEnum.MultiSelect:
                var splitValues = value.Split(',').Select(x => x.Trim());

                return(splitValues.All(customAttributeTypeAcceptableValues.Contains));

            case CustomAttributeDataTypeEnum.String:
                return(true);

            default:
                return(false);
            }
        }
        public static CustomAttributeDataType ToType(CustomAttributeDataTypeEnum enumValue)
        {
            switch (enumValue)
            {
            case CustomAttributeDataTypeEnum.DateTime:
                return(DateTime);

            case CustomAttributeDataTypeEnum.Decimal:
                return(Decimal);

            case CustomAttributeDataTypeEnum.Integer:
                return(Integer);

            case CustomAttributeDataTypeEnum.MultiSelect:
                return(MultiSelect);

            case CustomAttributeDataTypeEnum.PickFromList:
                return(PickFromList);

            case CustomAttributeDataTypeEnum.String:
                return(String);

            default:
                throw new ArgumentException(string.Format("Unable to map Enum: {0}", enumValue));
            }
        }
        private static string GetErrorForCustomAttributeType(string value,
                                                             CustomAttributeDataTypeEnum customAttributeDataTypeEnum,
                                                             string customAttributeTypeName, string customAttributeDataTypeDisplayName, List <string> customAttributeTypeAcceptableValues, int rowNumber)
        {
            switch (customAttributeDataTypeEnum)
            {
            case CustomAttributeDataTypeEnum.Integer:
            case CustomAttributeDataTypeEnum.Decimal:
            case CustomAttributeDataTypeEnum.DateTime:
                return
                    ($"{customAttributeTypeName} field can not be converted to {customAttributeDataTypeDisplayName} at row: {rowNumber}");

            case CustomAttributeDataTypeEnum.MultiSelect:
            case CustomAttributeDataTypeEnum.PickFromList:
                return
                    ($"{value} is not a valid {customAttributeTypeName} entry at row: {rowNumber}. Acceptable values are: {string.Join(", ", customAttributeTypeAcceptableValues)}");

            default:
                return
                    ($"{customAttributeTypeName} entry at row: {rowNumber} experienced an unknown error. Please double check the sheet, and contact support with further questions.");
            }
        }