Esempio n. 1
0
    /// <inheritdoc/>
    public IFluentQuery <TEntity, TId> Where(string clause, object parameters)
    {
        // If there are errors, return
        if (Errors.Count > 0)
        {
            return(this);
        }

        // Check clause
        if (string.IsNullOrWhiteSpace(clause))
        {
            Errors.Add(new M.TryingToAddEmptyClauseToWhereMsg());
            return(this);
        }

        // Get parameters
        var param = new QueryParametersDictionary();

        if (!param.TryAdd(parameters))
        {
            Errors.Add(new M.UnableToAddParametersToWhereMsg());
            return(this);
        }

        // Add clause and return
        return(Update(parts => parts with
        {
            WhereCustom = parts.WhereCustom.WithItem((clause, param))
        }));
Esempio n. 2
0
    public void Adds_QueryParameters_To_Dictionary()
    {
        // Arrange
        var p0 = Rnd.Str;
        var p1 = Rnd.Str;
        var p2 = Rnd.Str;
        var parametersToAdd = new QueryParametersDictionary
        {
            { nameof(p0), p0 },
            { nameof(p1), p1 },
            { nameof(p2), p2 }
        };

        var parameters = new QueryParametersDictionary();

        // Act
        var result = parameters.TryAdd(parametersToAdd);

        // Assert
        Assert.True(result);
        Assert.Collection(parameters,
                          x => { Assert.Equal(nameof(p0), x.Key); Assert.Equal(p0, x.Value); },
                          x => { Assert.Equal(nameof(p1), x.Key); Assert.Equal(p1, x.Value); },
                          x => { Assert.Equal(nameof(p2), x.Key); Assert.Equal(p2, x.Value); }
                          );
    }
Esempio n. 3
0
    public void No_Items__Returns_Empty()
    {
        // Arrange
        var param = new QueryParametersDictionary();

        // Act
        var result = param.ToString();

        // Assert
        Assert.Equal("(Empty)", result);
    }
Esempio n. 4
0
    public void Ignores_Null_And_Primitive_Types(object input)
    {
        // Arrange
        var parameters = new QueryParametersDictionary();

        // Act
        var result = parameters.TryAdd(input);

        // Assert
        Assert.False(result);
        Assert.Empty(parameters);
    }
Esempio n. 5
0
    public void With_Items__Returns_String()
    {
        // Arrange
        var param = new QueryParametersDictionary();
        var p0    = Rnd.Str;
        var p1    = Rnd.Int;

        param.TryAdd(new { p0, p1 });

        // Act
        var result = param.ToString();

        // Assert
        Assert.Equal($"2, {nameof(p0)} = {p0}, {nameof(p1)} = {p1}", result);
    }
Esempio n. 6
0
    public void Adds_Type_With_Public_Properties_To_Dictionary()
    {
        // Arrange
        var parameters = new QueryParametersDictionary();
        var foo        = new Foo();

        // Act
        var result = parameters.TryAdd(foo);

        // Assert
        Assert.True(result);
        Assert.Collection(parameters,
                          x => { Assert.Equal(nameof(Foo.Bar0), x.Key); Assert.Equal(42, x.Value); }
                          );
    }
Esempio n. 7
0
    public void With_AnonymousType_Returns_False_If_Key_Exists()
    {
        // Arrange
        var p0             = Rnd.Str;
        var parameterToAdd = new { p0 };

        var parameters = new QueryParametersDictionary();

        parameters.TryAdd(parameterToAdd);

        // Act
        var result = parameters.TryAdd(parameterToAdd);

        // Assert
        Assert.False(result);
        Assert.Collection(parameters,
                          x => { Assert.Equal(nameof(p0), x.Key); Assert.Equal(p0, x.Value); }
                          );
    }