コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 IEnumerator IEnumerable.GetEnumerator() => _list?.GetEnumerator() ?? EmptyValues.GetEnumerator();
コード例 #4
0
 public IEnumerator <TValue> GetEnumerator() => _list?.GetEnumerator() ?? EmptyValues.GetEnumerator();