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."); } }