Example #1
0
        public IMaybe <MetadataDefinitionGroupResource> FindByName(string name)
        {
            var result = _metaDataDefinitionGroupProjectionRepository.ToQueryable()
                         .FirstOrDefault(a => a.Name == name);

            return(result == null?MaybeExtensions.ToMaybe <MetadataDefinitionGroupResource>(null) : result.ToMetadataDefinitionGroupResource().ToMaybe());
        }
Example #2
0
        public void Noones_Are_Expected_To_Be_Equal()
        {
            var first  = MaybeExtensions.None <string>();
            var second = MaybeExtensions.None <string>();

            Assert.Equal(first, second);
            Assert.Equal(first, Maybe <string> .None);
            Assert.Equal(second, Maybe <string> .None);
        }
        public void Test_FirstOrNone()
        {
            Assert.That(() => MaybeExtensions.FirstOrNone <int>(null, null), Throws.ArgumentNullException);
            Assert.That(() => Array.Empty <int>().FirstOrNone(null), Throws.ArgumentNullException);

            var coll = new[] { 12, 12351, 123, 11, 0, -88 };

            Assert.AreEqual(coll[0], coll.FirstOrNone(x => true).Match(int.MinValue));
            Assert.That(() => Array.Empty <int>().FirstOrNone(x => false).Match(new IndexOutOfRangeException()),
                        Throws.InstanceOf <IndexOutOfRangeException>());
        }
        public void Test_ElementAtOrNone()
        {
            Assert.That(() => MaybeExtensions.ElementAtOrNone <int>(null, 0), Throws.ArgumentNullException);
            Assert.That(() => Array.Empty <int>().SelectSome(x => x).ElementAtOrNone(-10), Throws.ArgumentException);

            var coll = new[] { 12, 12351, 123, 11, 0, -88 };

            Assert.AreEqual(coll[3], coll.ElementAtOrNone(3).Match(int.MinValue));
            Assert.That(() => coll.ElementAtOrNone(6).Match(new IndexOutOfRangeException()),
                        Throws.InstanceOf <IndexOutOfRangeException>());
        }
Example #5
0
 private static IEnumerable <Token> PartitionSequences(
     IEnumerable <Token> tokens,
     Func <string, Maybe <Tuple <DescriptorType, Maybe <int> > > > typeLookup)
 {
     return(from tseq in tokens.Pairwise(
                (f, s) =>
                f.IsName() && s.IsValue()
                     ? typeLookup(f.Text).Return(info =>
                                                 info.Item1 == DescriptorType.Sequence
                                 ? new[] { f }.Concat(tokens.SkipWhile(t => t.Equals(f)).TakeWhile(v => v.IsValue()).Take(MaybeExtensions.Return(info.Item2, items => items, 0)))
                                 : new Token[] { }, new Token[] { })
                     : new Token[] {})
            from t in tseq
            select t);
 }