Пример #1
0
    public void UserMessage_string_properties()
    {
        var message = EntityMessage.Create("hi", "2");

        Assert.Equal("hi", message.Message);
        Assert.Equal("2", message.Id);
    }
Пример #2
0
    public void UserMessage_integer_properties()
    {
        var message = EntityMessage.Create("hi", 2);

        Assert.Equal("hi", message.Message);
        Assert.Equal(2, message.Id);
    }
Пример #3
0
    public void UserMessage_guid_properties()
    {
        var guid    = Guid.NewGuid();
        var message = EntityMessage.Create("hi", guid);

        Assert.Equal("hi", message.Message);
        Assert.Equal(guid, message.Id);
    }
Пример #4
0
    public void Respond_with_data()
    {
        var response = HttpResponder.Respond(EntityMessage.Create("success", 2));

        Assert.Equal(200, ((ObjectResult)response).StatusCode);
        Assert.Equal("success", ((EntityMessage <int>)((ObjectResult)response).Value).Message);
        Assert.Equal(2, ((EntityMessage <int>)((ObjectResult)response).Value).Id);
    }
Пример #5
0
        public override async Task <IResult <EntityMessage <int> > > Handle(Request request, CancellationToken cancellationToken = default)
        {
            var byId = new RecipesByIdWithCategoriesSpecification(request.Id);

            var maybeRecipe = await _data.Recipes.Get(byId, cancellationToken);

            if (maybeRecipe.HasValue)
            {
                return(await maybeRecipe.Value
                       .Tee(r => Transfer(request, r))
                       .TeeAsync(r => _data.Recipes.Update(r, cancellationToken))
                       .TeeAsync(r => ManageCategories(request, r, cancellationToken))
                       .MapAsync(r => Ok(EntityMessage.Create("Recipe updated.", r.Id))));
            }

            return(await new Recipe()
                   .Tee(r => Transfer(request, r))
                   .TeeAsync(r => _data.Recipes.Add(r, cancellationToken))
                   .TeeAsync(r => ManageCategories(request, r, cancellationToken))
                   .MapAsync(r => Ok(EntityMessage.Create("Recipe added.", r.Id))));
        }