Ejemplo n.º 1
0
    public void MayElse()
    {
        var n = May <int> .NoValue;
        var y = new May <int>(1);
        Func <May <int> > throwsM = () => { throw new ArgumentException(); };
        Func <int>        throwsT = () => { throw new ArgumentException(); };

        // else T
        Assert.IsTrue(n.Else(2) == 2);
        Assert.IsTrue(y.Else(2) == 1);

        // else Func<T>
        Assert.IsTrue(n.Else(() => 2) == 2);
        Assert.IsTrue(y.Else(() => 2) == 1);
        Assert.IsTrue(y.Else(throwsT) == y);
        TestUtil.AssertThrows <ArgumentException>(() => n.Else(throwsT));

        // else May<T>
        Assert.IsTrue(n.Else(y) == y);
        Assert.IsTrue(y.Else(n) == y);
        Assert.IsTrue(n.Else(2.Maybe()) == 2.Maybe());
        Assert.IsTrue(y.Else(2.Maybe()) == y);
        Assert.IsTrue(n.Else(May.NoValue) == May.NoValue);
        Assert.IsTrue(y.Else(May.NoValue) == y);

        // else Func<May<T>>
        Assert.IsTrue(n.Else(() => y) == y);
        Assert.IsTrue(y.Else(() => n) == y);
        Assert.IsTrue(n.Else(() => 2.Maybe()) == 2.Maybe());
        Assert.IsTrue(y.Else(() => 2.Maybe()) == y);
        Assert.IsTrue(n.Else(() => new May <int>()) == May.NoValue);
        Assert.IsTrue(y.Else(() => new May <int>()) == y);
        Assert.IsTrue(y.Else(throwsM) == y);
        TestUtil.AssertThrows <ArgumentException>(() => n.Else(throwsM));

        // else default
        Assert.IsTrue(n.ElseDefault() == 0);
        Assert.IsTrue(y.ElseDefault() == 1);

        // else action
        var x = 0;

        y.ElseDo(() => { x += 1; });
        Assert.IsTrue(x == 0);
        n.ElseDo(() => { x += 1; });
        Assert.IsTrue(x == 1);
    }
Ejemplo n.º 2
0
    public void MayElse()
    {
        var n = May<int>.NoValue;
        var y = new May<int>(1);
        Func<May<int>> throwsM = () => { throw new ArgumentException(); };
        Func<int> throwsT = () => { throw new ArgumentException(); };

        // else T
        Assert.IsTrue(n.Else(2) == 2);
        Assert.IsTrue(y.Else(2) == 1);

        // else Func<T>
        Assert.IsTrue(n.Else(() => 2) == 2);
        Assert.IsTrue(y.Else(() => 2) == 1);
        Assert.IsTrue(y.Else(throwsT) == y);
        TestUtil.AssertThrows<ArgumentException>(() => n.Else(throwsT));

        // else May<T>
        Assert.IsTrue(n.Else(y) == y);
        Assert.IsTrue(y.Else(n) == y);
        Assert.IsTrue(n.Else(2.Maybe()) == 2.Maybe());
        Assert.IsTrue(y.Else(2.Maybe()) == y);
        Assert.IsTrue(n.Else(May.NoValue) == May.NoValue);
        Assert.IsTrue(y.Else(May.NoValue) == y);

        // else Func<May<T>>
        Assert.IsTrue(n.Else(() => y) == y);
        Assert.IsTrue(y.Else(() => n) == y);
        Assert.IsTrue(n.Else(() => 2.Maybe()) == 2.Maybe());
        Assert.IsTrue(y.Else(() => 2.Maybe()) == y);
        Assert.IsTrue(n.Else(() => new May<int>()) == May.NoValue);
        Assert.IsTrue(y.Else(() => new May<int>()) == y);
        Assert.IsTrue(y.Else(throwsM) == y);
        TestUtil.AssertThrows<ArgumentException>(() => n.Else(throwsM));

        // else default
        Assert.IsTrue(n.ElseDefault() == 0);
        Assert.IsTrue(y.ElseDefault() == 1);

        // else action
        var x = 0;
        y.ElseDo(() => { x += 1; });
        Assert.IsTrue(x == 0);
        n.ElseDo(() => { x += 1; });
        Assert.IsTrue(x == 1);
    }
Ejemplo n.º 3
0
        private async void LoadListsFor(IUpdatableBoard board, May <string> selectedId)
        {
            _progress.Show("Loading lists...");
            try
            {
                var lists = (await _api.Lists.ForBoard(new BoardId(board.Id))).ToList();
                Lists.Clear();
                Lists.AddRange(lists);

                selectedId
                .Else(lists.Take(1).Select(l => l.Id).MayFirst())
                .IfHasValueThenDo(id => { SelectedList = lists.FirstOrDefault(l => l.Id == id); });
            }
            catch (Exception ex)
            {
                Analytics.LogException(ex);
                MessageBox.Show("The lists for that board were unable to be loaded.  Please " +
                                "ensure that you have an active internet connection.");
            }
            finally
            {
                _progress.Hide();
            }
        }
Ejemplo n.º 4
0
        private async void LoadListsFor(IUpdatableBoard board, May<string> selectedId)
        {
            _progress.Show("Loading lists...");
            try
            {
                var lists = (await _api.Lists.ForBoard(new BoardId(board.Id))).ToList();
                Lists.Clear();
                Lists.AddRange(lists);

                selectedId
                    .Else(lists.Take(1).Select(l => l.Id).MayFirst())
                    .IfHasValueThenDo(id => { SelectedList = lists.FirstOrDefault(l => l.Id == id); });
            }
            catch (Exception ex)
            {
                Analytics.LogException(ex);
                MessageBox.Show("The lists for that board were unable to be loaded.  Please " +
                                "ensure that you have an active internet connection.");
            }
            finally
            {
                _progress.Hide();
            }
        }