public void ReadRow_EmptyValueStrategy_ReturnsExpected() { using (var importer = Helpers.GetImporter("EmptyValues.xlsx")) { importer.Configuration.RegisterClassMap(new EmptyValueStrategyMap()); ExcelSheet sheet = importer.ReadSheet(); sheet.ReadHeading(); EmptyValues row1 = sheet.ReadRow <EmptyValues>(); Assert.Equal(0, row1.IntValue); Assert.Null(row1.StringValue); Assert.False(row1.BoolValue); Assert.Equal((EmptyValuesEnum)0, row1.EnumValue); Assert.Equal(DateTime.MinValue, row1.DateValue); Assert.Equal(new int[] { 0, 0 }, row1.ArrayValue); } }
public object GetValue(HtmlNode node, out bool canParse) { canParse = true; string value; HtmlNode valueNode = node.QuerySelector(Selector); if (valueNode == null) { canParse = false; if (SkipIfNotFound) { return(null); } else { throw new ElementNotFoundException(Selector); } } else if (!string.IsNullOrEmpty(Attribute) && !valueNode.Attributes.Any(a => a.Name == Attribute)) { if (SkipIfNotFound) { return(null); } else { throw new ElementNotFoundException($"Element {valueNode.Name} doesn't have attribute: {Attribute}", Selector); } } value = string.IsNullOrEmpty(Attribute) ? valueNode.InnerText : valueNode.Attributes[Attribute].Value; value = value.Trim(); if (EmptyValues != null && EmptyValues.Contains(value)) { canParse = false; return(null); } return(value); }
IEnumerator IEnumerable.GetEnumerator() => _list?.GetEnumerator() ?? EmptyValues.GetEnumerator();
public IEnumerator <TValue> GetEnumerator() => _list?.GetEnumerator() ?? EmptyValues.GetEnumerator();