dommel-ci - Dommel 2.0.0-beta7-00372
Simple CRUD operations for Dapper.
PM> Install-Package Dommel -Version 2.0.0-beta7-00372 -Source https://www.myget.org/F/dommel-ci/api/v3/index.json
> nuget.exe install Dommel -Version 2.0.0-beta7-00372 -Source https://www.myget.org/F/dommel-ci/api/v3/index.json
> dotnet add package Dommel --version 2.0.0-beta7-00372 --source https://www.myget.org/F/dommel-ci/api/v3/index.json
source https://www.myget.org/F/dommel-ci/api/v3/index.json
nuget Dommel ~> 2.0.0-beta7-00372
Copy to clipboard
> choco install Dommel --version 2.0.0-beta7-00372 --source https://www.myget.org/F/dommel-ci/api/v2
Import-Module PowerShellGet
Register-PSRepository -Name "dommel-ci" -SourceLocation "https://www.myget.org/F/dommel-ci/api/v2"
Install-Module -Name "Dommel" -RequiredVersion "2.0.0-beta7-00372" -Repository "dommel-ci" -AllowPreRelease
Copy to clipboard
Dommel
CRUD operations with Dapper made simple.
Windows | Linux | NuGet | MyGet | Test Coverage |
---|---|---|---|---|
Dommel provides a convenient API for CRUD operations using extension methods on the IDbConnection
interface. The SQL queries are generated based on your POCO entities. Dommel also supports LINQ expressions which are being translated to SQL expressions. Dapper is used for query execution and object mapping.
There are several extensibility points available to change the behavior of resolving table names, column names, the key property and POCO properties. See Extensibility for more details.
Installing Dommel
Dommel is available on NuGet.
Install using the .NET CLI:
dotnet add package Dommel
Install using the NuGet Package Manager:
Install-Package Dommel
Using Dommel
Retrieving entities by ID
var product = await connection.GetAsync<Product>(1);
Retrieving all entities in a table
var products = await connection.GetAllAsync<Product>();
Selecting entities using a predicate
Dommel allows you to specify a predicate which is being translated into a SQL expression. The arguments in the lambda expression are added as parameters to the command.
var products = await connection.SelectAsync<Product>(p => p.Name == "Awesome bike" && p.Created < new DateTime(2014, 12, 31) && p.InStock > 5);
Which would translate in the following SQL:
select * from Products where Name = @p1 and Created < @p2 and InStock > @p3
You can add parentheses to combine and
& or
queries:
var products = await connection.SelectAsync<Product>(p => p.Name == "Awesome bike" && (p.Created < new DateTime(2014, 12, 31) || p.InStock > 5));
Which would translate in the following SQL:
select * from Products where Name = @p1 and (Created < @p2 or InStock > @p3)
There is also a FirstOrDefaultAsync<T>(...)
method available to select the first entity matching the predicate.
Like-queries
It is possible to generate LIKE
-queries using Contains()
, StartsWith()
or EndsWith()
on string properties:
var products = await connection.SelectAsync<Product>(p => p.Name.Contains("bike"));
var products = await connection.SelectAsync<Product>(p => p.Name.StartsWith("bike"));
var products = await connection.SelectAsync<Product>(p => p.Name.EndsWith("bike"));
Inserting entities
var product = new Product { Name = "Awesome bike", InStock = 4 };
var id = await connection.InsertAsync(product);
Updating entities
var product = await connection.GetAsync<Product>(1);
product.Name = "New name";
await connection.UpdateAsync(product);
Removing entities
var product = await connection.GetAsync<Product>(1);
await connection.DeleteAsync(product);
Multi mapping
One-to-one relations
Dommel is able to generate join-queries based on the specified multi mapping function. Consider the following POCO's:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
// Maps to the foreign key column
public int CategoryId { get; set; }
// The navigation property
public Category Category { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
}
The Product
with its associated Category
can be queried toegether using the Get<T1, T2, ..., TResult>()
method:
var product = await product.GetAsync<Product, Category, Product>(1, (product, category) =>
{
product.Category = category;
return product;
});
Foreign key columns
CategoryId
is automatically used as foreign key between Product
and Category
. This follows a simple convention: joining table name + Id
(Category
+ Id
). You can override this behavior by using the [ForeignKey("ForeignKeyColumnName")]
attribute or by implementing your own IForeignKeyPropertyResolver
.
One-to-many relations
One-to-many relationships work in a similar way, expect that the foreign key is defined on the joined type rather than the source type. For example:
public class Order
{
public int Id { get; set; }
// The navigation property
public ICollection<OrderLine> OrderLines { get; set; } = new List<OrderLine>();
}
public class OrderLine
{
public int Id { get; set; }
// The foreign key column to the Order table
public int OrderId { get; set; }
public string Description { get; set; }
}
The Order
with its child OrderLine
's can be queried toegether using the Get<T1, T2, ..., TResult>()
method:
var product = await product.GetAsync<Order, OrderLine, Order>(1, (order, line) =>
{
// Naive mapping example, in reality it requires more gymnastics
order.OrderLines.Add(line);
return order;
});
Automatic multi mapping
Note: this is an experimental feature.
Dommel is able to create simple join-expressions for retrieving parent-child entities. One-to-one and one-to-many relations are supported. It works the samy way as regular mapping, except there is no need to specify a function which performs the mapping of the objects. Using the same POCO's as the previous examples:
Retrieving a Product
and its associated Category
:
var product = product.Get<Product, Category, Product>(1);
Retrieving one Order
and with its child OrderLine
's:
var product = product.Get<Order, OrderLine, Order>(1);
Entity equality
When joining with two or more tables with a one-to-many relationship, you are required to override Equals(object obj)
method or implement the IEquatable<T>
interface on your POCO's so Dommel can determine whether an entity is already added to the collection. For example:
public class OrderLine : IEquatable<OrderLine>
{
public int Id { get; set; }
public int OrderId { get; set; }
public string Description { get; set; }
public bool Equals(OrderLine other) => Id == other.Id;
}
Combining Select
and multi-mapping
It's possible to combine Select
queries and multi-mapping. For example:
var products = await connection.SelectAsync<Product, Category, Product>(x => x.Name.StartsWith("bike"));
This is applicable for Select
, SelectAsync
, FirstOrDefault
and FirstOrDefaultAsync
. Both with manual and automatic multi-mapping.
From-queries
With From
-queries you can create more complex queries on a certain table by providing access to the SqlExpression<T>
. For example:
var products = await connection.FromAsync<Product>(sql => sql
.Where(x => x.Name.StartsWith("bike") && x.DeletedOn == null)
.OrWhere(x => x.InStock > 5)
.OrderBy(x => x.DateCreated)
.Page(1, 25)
.Select()));
Async and non-async
All Dommel methods have async and non-async variants, such as as Get
& GetAsync
, GetAll
& GetAllAsync
, Select
& SelectAsync
, Insert
& InsertAsync
, Update
& UpdateAsync
, Delete
& DeleteAsync
, etc.
Query builders
Dommel supports building specialized queries for a certain RDBMS. By default, query builders for the following RDMBS are included: SQL Server, SQL Server CE, SQLite, MySQL and Postgres. The query builder to be used is determined by the connection type. To add or overwrite an existing query builder, use the AddSqlBuilder()
method:
DommelMapper.AddSqlBuilder(typeof(SqlConnection), new CustomSqlBuilder());
Extensibility
ITableNameResolver
Implement this interface if you want to customize the resolving of table names when building SQL queries.
public class CustomTableNameResolver : ITableNameResolver
{
public string ResolveTableName(Type type)
{
// Every table has prefix 'tbl'.
return $"tbl{type.Name}";
}
}
Use the SetTableNameResolver()
method to register the custom implementation:
SetTableNameResolver(new CustomTableNameResolver());
IKeyPropertyResolver
Implement this interface if you want to customize the resolving of the key property of an entity. By default, Dommel will search for a property with the [Key]
attribute, or a column with the name 'Id'.
If you, for example, have the naming convention of {TypeName}Id
for key properties, you would implement the IKeyPropertyResolver
like this:
public class CustomKeyPropertyResolver : IKeyPropertyResolver
{
public ColumnPropertyInfo[] ResolveKeyProperties(Type type)
{
return new [] { new ColumnPropertyInfo(type.GetProperties().Single(p => p.Name == $"{type.Name}Id"), isKey: true) };
}
}
Use the SetKeyPropertyResolver()
method to register the custom implementation:
DommelMapper.SetKeyPropertyResolver(new CustomKeyPropertyResolver());
IForeignKeyPropertyResolver
Implement this interface if you want to customize the resolving of the foreign key property from one entity to another. By default Dommel will search for a property of {TypeName}Id
or the column name specified using the [ForeignKey]
attribute.
This is a rather advanced interface. Providing your own implementation requires quite some knowledge of the way Dommel handles foreign key relationships. Consider subclassing
DefaultForeignKeyPropertyResolver
and overrideResolveForeignKeyProperty()
.
Use the SetForeignKeyPropertyResolver()
method to register the custom implementation:
DommelMapper.SetForeignKeyPropertyResolver(new CustomForeignKeyPropertyResolver());
IColumnNameResolver
Implement this interface if you want to customize the resolving of column names for when building SQL queries. This is useful when your naming conventions for database columns are different than your POCO properties.
public class CustomColumnNameResolver : IColumnNameResolver
{
public string ResolveColumnName(PropertyInfo propertyInfo)
{
// Every column has prefix 'fld' and is uppercase.
return $"fld{propertyInfo.Name.ToUpper()}";
}
}
Use the SetColumnNameResolver()
method to register the custom implementation:
DommelMapper.SetColumnNameResolver(new CustomColumnNameResolver());
-
.NETFramework 4.6.1
- Dapper (>= 2.0.30)
- System.ComponentModel.Annotations (>= 4.7.0)
-
.NETStandard 2.0
- Dapper (>= 2.0.30)
- System.ComponentModel.Annotations (>= 4.7.0)
- .NETFramework 4.6.1: 4.6.1.0
- .NETStandard 2.0: 2.0.0.0
OwnersHenk Mollema |
AuthorsHenk Mollema |
Project URLhttps://github.com/henkmollema/Dommel |
LicenseMIT |
Tagsdommel crud dapper database orm |
Info776 total downloads |
5 downloads for version 2.0.0-beta7-00372 |
Download (95.18 KB) |
Found on the current feed only |
Package history
Version | Size | Last updated | Downloads | Mirrored? | |||
---|---|---|---|---|---|---|---|
3.3.4-beta.47 | 305.54 KB | Fri, 15 Nov 2024 12:54:23 GMT | 0 | ||||
3.3.3-beta.44 | 305.53 KB | Wed, 23 Oct 2024 09:44:42 GMT | 0 | ||||
3.3.3-beta.43 | 305.8 KB | Tue, 15 Oct 2024 08:01:48 GMT | 0 | ||||
3.3.3-beta.42 | 305.82 KB | Fri, 23 Aug 2024 13:35:15 GMT | 0 | ||||
3.3.3-beta.41 | 305.82 KB | Fri, 23 Aug 2024 13:10:48 GMT | 0 | ||||
3.3.2-beta.40 | 304.2 KB | Fri, 23 Aug 2024 12:35:10 GMT | 0 | ||||
3.3.2-beta.39 | 304.2 KB | Fri, 23 Aug 2024 12:31:05 GMT | 0 | ||||
3.3.1-beta.37 | 303.81 KB | Mon, 22 Jul 2024 12:06:00 GMT | 1 | ||||
3.3.1-beta.36 | 303.79 KB | Mon, 22 Jul 2024 12:00:56 GMT | 1 | ||||
3.3.1-beta.35 | 303.8 KB | Thu, 04 Apr 2024 11:06:55 GMT | 17 | ||||
3.3.1-beta.34 | 303.81 KB | Thu, 04 Apr 2024 11:03:19 GMT | 18 | ||||
3.3.1-beta.33 | 303.78 KB | Thu, 04 Apr 2024 10:58:33 GMT | 4 | ||||
3.3.0-beta.32 | 302.46 KB | Tue, 06 Feb 2024 10:47:42 GMT | 3 | ||||
3.3.0-beta.31 | 302.44 KB | Thu, 18 Jan 2024 15:39:22 GMT | 5 | ||||
3.3.0-beta.30 | 302.44 KB | Thu, 18 Jan 2024 15:33:16 GMT | 4 | ||||
3.3.0-beta.29 | 302.85 KB | Thu, 18 Jan 2024 14:58:48 GMT | 5 | ||||
3.2.1-beta.28 | 302.82 KB | Thu, 18 Jan 2024 14:48:44 GMT | 5 | ||||
3.2.1-beta.27 | 302.27 KB | Wed, 17 Jan 2024 16:52:27 GMT | 4 | ||||
3.2.1-beta.26 | 302.27 KB | Wed, 17 Jan 2024 16:46:14 GMT | 4 | ||||
3.2.1-beta.25 | 302.36 KB | Wed, 17 Jan 2024 16:42:24 GMT | 19 | ||||
3.2.1-beta.24 | 152.5 KB | Wed, 17 Jan 2024 16:37:13 GMT | 4 | ||||
3.0.0-beta.4 | 73.18 KB | Tue, 21 Dec 2021 10:29:29 GMT | 5 | ||||
2.4.0-beta.441 | 72.98 KB | Thu, 02 Dec 2021 14:49:14 GMT | 4 | ||||
2.4.0-beta.3 | 72.98 KB | Fri, 03 Dec 2021 08:18:33 GMT | 5 | ||||
2.4.0-beta.2 | 72.98 KB | Thu, 02 Dec 2021 15:51:42 GMT | 4 | ||||
2.4.0-beta.1 | 72.96 KB | Thu, 02 Dec 2021 15:11:07 GMT | 5 | ||||
2.3.3-beta.439 | 59.52 KB | Wed, 01 Dec 2021 14:52:54 GMT | 4 | ||||
2.3.3-beta.436 | 59.42 KB | Wed, 01 Dec 2021 10:49:32 GMT | 5 | ||||
2.3.3-beta.435 | 59.4 KB | Wed, 01 Dec 2021 10:47:53 GMT | 4 | ||||
2.3.3-beta.434 | 59.19 KB | Thu, 04 Nov 2021 15:18:10 GMT | 5 | ||||
2.3.3-beta.433 | 59.19 KB | Thu, 04 Nov 2021 13:57:15 GMT | 4 | ||||
2.3.3-beta.432 | 59.21 KB | Thu, 04 Nov 2021 13:35:24 GMT | 5 | ||||
2.3.3-beta.431 | 59.19 KB | Thu, 04 Nov 2021 13:10:05 GMT | 5 | ||||
2.3.3-beta.430 | 59.2 KB | Mon, 12 Jul 2021 13:24:35 GMT | 5 | ||||
2.3.2-beta.429 | 59.19 KB | Mon, 12 Jul 2021 13:20:14 GMT | 5 | ||||
2.3.1-beta.428 | 60.42 KB | Mon, 12 Jul 2021 12:28:25 GMT | 5 | ||||
2.3.0-beta.425 | 60.28 KB | Thu, 03 Jun 2021 07:51:53 GMT | 5 | ||||
2.3.0-beta.424 | 60.28 KB | Thu, 03 Jun 2021 07:50:06 GMT | 4 | ||||
2.2.0-beta.423 | 60.27 KB | Thu, 03 Jun 2021 07:42:49 GMT | 3 | ||||
2.2.0-beta.422 | 59.29 KB | Wed, 02 Jun 2021 12:14:30 GMT | 4 | ||||
2.2.0-beta.421 | 58.1 KB | Thu, 27 May 2021 12:03:03 GMT | 4 | ||||
2.2.0-beta.420 | 58.13 KB | Wed, 07 Apr 2021 17:56:46 GMT | 4 | ||||
2.2.0-beta.419 | 58.13 KB | Wed, 31 Mar 2021 19:30:28 GMT | 17 | ||||
2.2.0-beta.418 | 58.13 KB | Wed, 31 Mar 2021 18:47:51 GMT | 5 | ||||
2.2.0-beta.417 | 58.12 KB | Wed, 31 Mar 2021 18:44:17 GMT | 3 | ||||
2.2.0-beta.416 | 58.15 KB | Thu, 17 Sep 2020 10:51:29 GMT | 6 | ||||
2.1.0-beta8-00412 | 58.16 KB | Tue, 08 Sep 2020 14:11:58 GMT | 3 | ||||
2.1.0-beta8-00411 | 58.16 KB | Fri, 04 Sep 2020 15:31:26 GMT | 3 | ||||
2.0.0-beta8-00410 | 56.72 KB | Fri, 04 Sep 2020 14:39:38 GMT | 3 | ||||
2.0.0-beta8-00409 | 50.4 KB | Thu, 27 Aug 2020 12:50:58 GMT | 4 | ||||
2.0.0-beta8-00408 | 50.35 KB | Sun, 23 Aug 2020 10:13:23 GMT | 4 | ||||
2.0.0-beta8-00407 | 50.46 KB | Wed, 24 Jun 2020 08:26:18 GMT | 4 | ||||
2.0.0-beta8-00406 | 50.44 KB | Wed, 24 Jun 2020 08:24:43 GMT | 4 | ||||
2.0.0-beta8-00405 | 50.45 KB | Thu, 11 Jun 2020 07:11:07 GMT | 4 | ||||
2.0.0-beta8-00404 | 50.45 KB | Wed, 10 Jun 2020 18:28:33 GMT | 4 | ||||
2.0.0-beta8-00403 | 50.45 KB | Wed, 10 Jun 2020 18:26:29 GMT | 4 | ||||
2.0.0-beta8-00402 | 50.45 KB | Wed, 10 Jun 2020 16:33:49 GMT | 4 | ||||
2.0.0-beta8-00401 | 50.47 KB | Wed, 10 Jun 2020 16:32:08 GMT | 4 | ||||
2.0.0-beta8-00400 | 50.46 KB | Wed, 10 Jun 2020 16:30:06 GMT | 4 | ||||
2.0.0-beta8-00399 | 50.46 KB | Sun, 24 May 2020 21:54:40 GMT | 3 | ||||
2.0.0-beta8-00398 | 50.45 KB | Tue, 19 May 2020 18:07:58 GMT | 5 | ||||
2.0.0-beta8-00397 | 50.45 KB | Sun, 17 May 2020 12:09:22 GMT | 4 | ||||
2.0.0-beta8-00396 | 50.45 KB | Sun, 17 May 2020 12:06:03 GMT | 4 | ||||
2.0.0-beta7-00395 | 50.44 KB | Sun, 17 May 2020 11:53:56 GMT | 19 | ||||
2.0.0-beta7-00394 | 50.38 KB | Sun, 17 May 2020 10:04:28 GMT | 2 | ||||
2.0.0-beta7-00393 | 50.38 KB | Fri, 08 May 2020 21:50:21 GMT | 19 | ||||
2.0.0-beta7-00392 | 50.36 KB | Tue, 05 May 2020 15:30:11 GMT | 4 | ||||
2.0.0-beta7-00391 | 50.38 KB | Sun, 03 May 2020 19:35:21 GMT | 4 | ||||
2.0.0-beta7-00390 | 50.36 KB | Mon, 20 Apr 2020 11:33:54 GMT | 3 | ||||
2.0.0-beta7-00389 | 50.36 KB | Mon, 20 Apr 2020 11:27:23 GMT | 3 | ||||
2.0.0-beta7-00388 | 98.78 KB | Mon, 20 Apr 2020 11:14:39 GMT | 4 | ||||
2.0.0-beta7-00387 | 97.05 KB | Sun, 19 Apr 2020 11:17:17 GMT | 18 | ||||
2.0.0-beta7-00386 | 96.6 KB | Sun, 19 Apr 2020 10:47:53 GMT | 3 | ||||
2.0.0-beta7-00385 | 96.95 KB | Sun, 19 Apr 2020 09:54:56 GMT | 4 | ||||
2.0.0-beta7-00384 | 96.92 KB | Sun, 19 Apr 2020 09:52:30 GMT | 3 | ||||
2.0.0-beta7-00383 | 96.9 KB | Sun, 19 Apr 2020 09:44:29 GMT | 4 | ||||
2.0.0-beta7-00382 | 96.91 KB | Sun, 19 Apr 2020 09:42:02 GMT | 5 | ||||
2.0.0-beta7-00381 | 96.94 KB | Sun, 19 Apr 2020 09:39:34 GMT | 3 | ||||
2.0.0-beta7-00380 | 96.95 KB | Sun, 19 Apr 2020 09:37:07 GMT | 19 | ||||
2.0.0-beta7-00379 | 96.96 KB | Sun, 19 Apr 2020 09:34:40 GMT | 5 | ||||
2.0.0-beta7-00378 | 96.78 KB | Thu, 26 Mar 2020 19:30:46 GMT | 4 | ||||
2.0.0-beta7-00377 | 95.19 KB | Tue, 17 Mar 2020 13:06:56 GMT | 4 | ||||
2.0.0-beta7-00375 | 95.16 KB | Thu, 06 Feb 2020 10:52:13 GMT | 3 | ||||
2.0.0-beta7-00374 | 95.18 KB | Wed, 05 Feb 2020 20:21:06 GMT | 4 | ||||
2.0.0-beta7-00373 | 95.19 KB | Tue, 04 Feb 2020 22:27:56 GMT | 3 | ||||
2.0.0-beta7-00372 | 95.18 KB | Fri, 10 Jan 2020 12:42:12 GMT | 5 | ||||
2.0.0-beta7-00371 | 95.42 KB | Tue, 07 Jan 2020 21:52:28 GMT | 5 | ||||
2.0.0-beta7-00369 | 95.43 KB | Tue, 07 Jan 2020 16:15:41 GMT | 18 | ||||
2.0.0-beta7-00368 | 95.38 KB | Tue, 07 Jan 2020 16:10:18 GMT | 5 | ||||
2.0.0-beta7-00367 | 95.43 KB | Tue, 07 Jan 2020 15:33:28 GMT | 4 | ||||
2.0.0-beta7-00366 | 96.02 KB | Tue, 07 Jan 2020 15:26:54 GMT | 4 | ||||
2.0.0-beta7-00365 | 95.96 KB | Tue, 07 Jan 2020 08:14:00 GMT | 4 | ||||
2.0.0-beta7-00364 | 95.97 KB | Sat, 14 Dec 2019 16:16:09 GMT | 5 | ||||
2.0.0-beta7-00362 | 96.06 KB | Sat, 14 Dec 2019 14:53:38 GMT | 4 | ||||
2.0.0-beta7-00361 | 96.06 KB | Sat, 14 Dec 2019 13:01:59 GMT | 4 | ||||
2.0.0-beta7-00360 | 95.03 KB | Fri, 06 Dec 2019 15:45:16 GMT | 4 | ||||
2.0.0-beta6-00346 | 136.16 KB | Thu, 28 Nov 2019 14:21:34 GMT | 5 | ||||
2.0.0-beta6-00343 | 136.28 KB | Thu, 22 Aug 2019 13:34:56 GMT | 5 | ||||
2.0.0-beta6-00342 | 136.27 KB | Thu, 22 Aug 2019 13:26:03 GMT | 3 | ||||
2.0.0-beta6-00341 | 136.28 KB | Thu, 22 Aug 2019 13:23:16 GMT | 3 | ||||
2.0.0-beta6-00340 | 134.66 KB | Thu, 15 Aug 2019 18:35:45 GMT | 5 | ||||
2.0.0-beta6-00339 | 134.67 KB | Mon, 12 Aug 2019 22:05:00 GMT | 5 | ||||
2.0.0-beta6-00338 | 134.62 KB | Sat, 10 Aug 2019 14:15:33 GMT | 4 | ||||
2.0.0-beta5-00337 | 134.62 KB | Sat, 10 Aug 2019 14:14:44 GMT | 3 | ||||
2.0.0-beta5-00336 | 134.62 KB | Sat, 10 Aug 2019 14:10:37 GMT | 5 | ||||
2.0.0-beta5-00335 | 134.6 KB | Sat, 10 Aug 2019 13:28:47 GMT | 4 | ||||
2.0.0-beta5-00334 | 131.97 KB | Sat, 10 Aug 2019 13:03:39 GMT | 4 | ||||
2.0.0-beta5-00333 | 131.35 KB | Sat, 10 Aug 2019 12:35:03 GMT | 5 | ||||
2.0.0-beta5-00332 | 131.38 KB | Sat, 10 Aug 2019 12:33:16 GMT | 4 | ||||
2.0.0-beta5-00331 | 130.71 KB | Sat, 10 Aug 2019 12:07:50 GMT | 4 | ||||
2.0.0-beta5-00329 | 130.73 KB | Sat, 10 Aug 2019 11:44:36 GMT | 4 | ||||
2.0.0-beta5-00328 | 127.73 KB | Sat, 20 Jul 2019 09:01:01 GMT | 4 | ||||
2.0.0-beta5-00327 | 127.75 KB | Tue, 02 Jul 2019 10:53:46 GMT | 6 | ||||
2.0.0-beta5-00326 | 127.73 KB | Tue, 02 Jul 2019 10:52:54 GMT | 3 | ||||
2.0.0-beta5-00325 | 127.75 KB | Tue, 02 Jul 2019 10:51:57 GMT | 4 | ||||
2.0.0-beta5-00324 | 127.74 KB | Tue, 02 Jul 2019 10:51:05 GMT | 4 | ||||
2.0.0-beta5-00323 | 126.58 KB | Sat, 13 Apr 2019 11:21:24 GMT | 4 | ||||
2.0.0-beta5-00322 | 126.26 KB | Sat, 30 Mar 2019 16:38:38 GMT | 3 | ||||
2.0.0-beta5-00321 | 126.27 KB | Sat, 30 Mar 2019 16:33:39 GMT | 3 | ||||
2.0.0-beta5-00320 | 126.27 KB | Sat, 30 Mar 2019 16:27:38 GMT | 4 | ||||
2.0.0-beta5-00319 | 119.49 KB | Thu, 28 Mar 2019 13:02:22 GMT | 4 | ||||
2.0.0-beta5-00317 | 119.49 KB | Thu, 28 Mar 2019 12:57:34 GMT | 3 | ||||
2.0.0-beta5-00316 | 119.51 KB | Thu, 28 Mar 2019 12:51:34 GMT | 4 | ||||
2.0.0-beta5-00315 | 119.48 KB | Thu, 28 Mar 2019 12:32:22 GMT | 5 | ||||
2.0.0-beta5-00314 | 119.02 KB | Thu, 28 Mar 2019 11:01:43 GMT | 4 | ||||
2.0.0-beta5-00313 | 119.56 KB | Fri, 25 Jan 2019 19:50:22 GMT | 5 | ||||
2.0.0-beta4-00312 | 119.6 KB | Fri, 25 Jan 2019 19:46:44 GMT | 4 | ||||
2.0.0-beta4-00311 | 119.61 KB | Fri, 25 Jan 2019 19:41:36 GMT | 4 | ||||
2.0.0-beta4-00310 | 119.6 KB | Fri, 25 Jan 2019 19:32:17 GMT | 3 | ||||
2.0.0-beta4-00309 | 119.76 KB | Thu, 10 Jan 2019 11:00:12 GMT | 5 | ||||
2.0.0-beta4-00308 | 118.35 KB | Thu, 06 Dec 2018 11:02:10 GMT | 5 | ||||
2.0.0-beta4-00307 | 119.5 KB | Thu, 06 Dec 2018 08:33:12 GMT | 5 | ||||
2.0.0-beta4-00306 | 119 KB | Sun, 02 Dec 2018 18:15:47 GMT | 4 | ||||
2.0.0-beta4-00305 | 119.01 KB | Sun, 02 Dec 2018 18:14:24 GMT | 5 | ||||
2.0.0-beta4-00304 | 118.99 KB | Fri, 30 Nov 2018 20:28:05 GMT | 5 | ||||
2.0.0-beta4-00303 | 119 KB | Fri, 30 Nov 2018 20:22:27 GMT | 5 | ||||
2.0.0-beta4-00302 | 119.03 KB | Sun, 18 Nov 2018 15:17:18 GMT | 17 | ||||
2.0.0-beta4-00301 | 117.95 KB | Sat, 17 Nov 2018 14:49:07 GMT | 4 | ||||
2.0.0-beta4-00300 | 114.97 KB | Fri, 16 Nov 2018 21:59:32 GMT | 3 | ||||
2.0.0-beta4 | 119.51 KB | Fri, 25 Jan 2019 19:46:38 GMT | 4 | ||||
2.0.0-beta3-00299 | 188.63 KB | Fri, 16 Nov 2018 20:28:45 GMT | 6 | ||||
2.0.0-beta3-00298 | 188.63 KB | Thu, 15 Nov 2018 21:06:47 GMT | 4 | ||||
2.0.0-beta3-00288 | 178.24 KB | Wed, 14 Nov 2018 10:56:07 GMT | 6 | ||||
2.0.0-beta3-00284 | 175.68 KB | Tue, 13 Nov 2018 21:48:47 GMT | 5 | ||||
2.0.0-beta3-00283 | 175.6 KB | Tue, 13 Nov 2018 21:41:11 GMT | 4 | ||||
2.0.0-beta3-00282 | 175.66 KB | Tue, 13 Nov 2018 21:34:38 GMT | 6 | ||||
2.0.0-beta3-00281 | 175.57 KB | Sat, 20 Oct 2018 14:13:27 GMT | 5 | ||||
2.0.0-beta3-00280 | 175.34 KB | Sat, 20 Oct 2018 08:29:07 GMT | 4 | ||||
2.0.0-beta3-00279 | 172.41 KB | Fri, 19 Oct 2018 15:28:15 GMT | 6 | ||||
2.0.0-beta2-00278 | 172.4 KB | Fri, 19 Oct 2018 15:16:52 GMT | 5 | ||||
2.0.0-beta2-00277 | 172.41 KB | Fri, 19 Oct 2018 15:12:20 GMT | 5 | ||||
2.0.0-beta2-00275 | 172.41 KB | Fri, 19 Oct 2018 15:01:05 GMT | 4 | ||||
2.0.0-beta2-00272 | 165.25 KB | Fri, 19 Oct 2018 09:48:40 GMT | 4 | ||||
2.0.0-beta2-00270 | 165.2 KB | Fri, 19 Oct 2018 09:43:56 GMT | 5 | ||||
2.0.0-beta2-00268 | 165.4 KB | Tue, 11 Sep 2018 21:52:01 GMT | 4 | ||||
2.0.0-beta2-00267 | 164.98 KB | Mon, 09 Jul 2018 18:16:28 GMT | 3 | ||||
2.0.0-beta2-00265 | 101.63 KB | Fri, 06 Jul 2018 14:15:44 GMT | 4 | ||||
2.0.0-beta2-00261 | 101.2 KB | Wed, 28 Mar 2018 08:57:30 GMT | 6 | ||||
2.0.0-beta2-00260 | 100.99 KB | Mon, 26 Mar 2018 20:23:19 GMT | 4 | ||||
2.0.0-beta2-00259 | 100.15 KB | Mon, 26 Mar 2018 09:05:08 GMT | 4 |