Skip to content

RezaAmd/AnyResults

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NuGet

AnyResults

Unified result handling & data paging for .NET projects. Fast, simple, and clean.

Key Features

  • Result / Result<T> – Represent success or failure of any operation. Avoid throwing exceptions unnecessarily.
  • PagedResult<T> – Easily page your IQueryable data. Comes with extensions for LINQ.
  • PaginationQuery – Specify page number, page size, and sorting for PagedResult.
dotnet add package AnyResults

Result Examples

1. Basic Result:

var result = Result.Ok().WithMessage("Operation successful");

if (result.IsSuccess)
{
    Console.Write(result.Data); // "Operation successful"
}

2. Generic Result:

User user = new() { Name = "Tom" };

var result = Result.Ok(user);

if (result.IsSuccess)
{
    Console.Write(result.Data.Name); // Tom
}
  • Result / Result<T> – Represent success or failure of any operation. Supports implicit conversion between Result and Result<T> to simplify handling generic and non-generic results.
    public Result<Todo> Update(Guid id, UpdateTodoInputModel todoModel)
    {
        if (todoModel == null)
            return Result.Fail("Todo cannot be null."); // <-- Result

        Todo todo = FindById(id);
        try
        {
            // update database command.
        }
        catch (Exception ex)
        {
            return Result.Fail(ex); // <-- Result
        }

        return Result.Ok(todo).WithMessage(message: "Todo created successfully!"); // <-- Result
    }

Fail:

var result = Result.Fail("An error was occurred!");

if (result.IsSuccess == false)
{
   Console.WriteLine(result.Messages[0]); // An error was occurred!
}

⭐ PagedQuery Examples:

1. PagedResult with IQueryable

    public async Task<PagedResult<Users>> PageByBusinessIdAsync(PaginationQuery page)
    {
        var query = context.Users.AsQueryable();

        var paged = await query.ToPagedResultAsync(page, ct);
    }

About

Result wrapper for manage command (result) & query (pagination) in .net

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages