add query all for energy rate, change name of queryitem
This commit is contained in:
parent
e56d2579d5
commit
27c06ce445
@ -41,7 +41,6 @@ builder.Services.AddDefaultCommandDiscovery();
|
||||
builder.Services.AddDefaultQueryDiscovery();
|
||||
builder.Services.AddFluentValidation();
|
||||
builder.Services.AddModule<AppModule>();
|
||||
builder.Services.AddHttpClient();
|
||||
builder.Services.AddDefaultCommandDiscovery();
|
||||
builder.Services.AddDefaultQueryDiscovery();
|
||||
if (builder.Configuration.GetValue<bool>("Swagger:Enable"))
|
||||
|
@ -40,14 +40,7 @@ public class UpdateEnergyRateCommandValidator : AbstractValidator<UpdateEnergyRa
|
||||
{
|
||||
RuleFor(command => command.Name)
|
||||
.NotEmpty()
|
||||
.MinimumLength(3)
|
||||
.When(command => false == String.IsNullOrWhiteSpace(command.Name))
|
||||
.MustAsync(async (name, cancellationToken) =>
|
||||
{
|
||||
var nameInUse = await dbContext.EnergyRates.AnyAsync(energyRate => energyRate.Name == name, cancellationToken);
|
||||
return false == nameInUse;
|
||||
})
|
||||
.WithMessage("This Name is already in use by another energy rate.");
|
||||
.MinimumLength(3);
|
||||
|
||||
RuleFor(command => command.RateId)
|
||||
.NotEmpty()
|
||||
|
@ -25,7 +25,7 @@ public class EnergyProviderQueryItem
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
}
|
||||
|
||||
public class EnergyRateQueryParams
|
||||
public class EnergyProviderQueryParams
|
||||
{
|
||||
|
||||
}
|
||||
@ -46,8 +46,8 @@ public class EnergyProviderQueryableProvider(CHDbContext dbContext) : IQueryable
|
||||
DisabledAt = energyProvider.DisabledAt,
|
||||
CreatedAt = energyProvider.CreatedAt,
|
||||
UpdatedAt = energyProvider.UpdatedAt
|
||||
|
||||
});
|
||||
})
|
||||
.OrderBy(energyProvider => energyProvider.Id);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -11,7 +11,8 @@ public class EnergyRateQueriesModule : IModule
|
||||
{
|
||||
services.AddDynamicQueryWithParams<EnergyRateQueryItem, EnergyRateQueryParams>()
|
||||
.AddQueryableProviderOverride<EnergyRateQueryItem, EnergyRateQueryableProvider>();
|
||||
|
||||
services.AddDynamicQuery<EnergyRateQueryAllItem>()
|
||||
.AddQueryableProviderOverride<EnergyRateQueryAllItem, EnergyRateAllQueryableProvider>();
|
||||
return services;
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
using CH.CQRS.Query.EnergyProvider;
|
||||
using CH.Dal;
|
||||
using CH.Enum;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using OpenHarbor.CQRS.Abstractions;
|
||||
using OpenHarbor.CQRS.DynamicQuery.Abstractions;
|
||||
@ -17,7 +18,8 @@ public class EnergyRateQueryItem
|
||||
public required string Name { get; set; }
|
||||
public decimal? Rate { get; set; }
|
||||
public bool Active { get; set; }
|
||||
public DateTime? DiabledAt { get; set; }
|
||||
public Currency Currency { get; set; }
|
||||
public DateTime? DisabledAt { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
}
|
||||
@ -54,10 +56,12 @@ public class EnergyRateQueryableProvider(CHDbContext dbContext) : IQueryableProv
|
||||
Name = energyRate.Name,
|
||||
Rate = energyRate.Rate,
|
||||
Active = energyRate.Active,
|
||||
DiabledAt = energyRate.DisabledAt,
|
||||
Currency = energyRate.Currency,
|
||||
DisabledAt = energyRate.DisabledAt,
|
||||
CreatedAt = energyRate.CreatedAt,
|
||||
UpdatedAt = energyRate.UpdatedAt
|
||||
});
|
||||
})
|
||||
.OrderBy(energyRate => energyRate.Id);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
47
CH.CQRS/Query/EnergyRate/EnergyRateQueryAll.cs
Normal file
47
CH.CQRS/Query/EnergyRate/EnergyRateQueryAll.cs
Normal file
@ -0,0 +1,47 @@
|
||||
using CH.Dal;
|
||||
using CH.Enum;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace CH.CQRS.Query.EnergyRate;
|
||||
|
||||
public class EnergyRateQueryAll
|
||||
{
|
||||
|
||||
}
|
||||
public class EnergyRateQueryAllItem
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long? ProviderId { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public decimal? Rate { get; set; }
|
||||
public bool Active { get; set; }
|
||||
public Currency Currency { get; set; }
|
||||
public DateTime? DisabledAt { get; set; }
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
}
|
||||
public class EnergyRateAllQueryableProvider(CHDbContext dbContext) : IQueryableProviderOverride<EnergyRateQueryAllItem>
|
||||
{
|
||||
public async Task<IQueryable<EnergyRateQueryAllItem>> GetQueryableAsync(object query, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = dbContext.EnergyRates
|
||||
.AsNoTracking()
|
||||
.AsQueryable();
|
||||
|
||||
var result = queryable
|
||||
.Select(energyRate => new EnergyRateQueryAllItem
|
||||
{
|
||||
Id = energyRate.Id,
|
||||
ProviderId = energyRate.ProviderId,
|
||||
Name = energyRate.Name,
|
||||
Rate = energyRate.Rate,
|
||||
Active = energyRate.Active,
|
||||
Currency = energyRate.Currency,
|
||||
DisabledAt = energyRate.DisabledAt,
|
||||
CreatedAt = energyRate.CreatedAt,
|
||||
UpdatedAt = energyRate.UpdatedAt
|
||||
})
|
||||
.OrderBy(energyRate => energyRate.Name);
|
||||
return result;
|
||||
}
|
||||
}
|
@ -60,13 +60,15 @@ public class EnergyRateExceptionQueryableProvider(CHDbContext dbContext) : IQuer
|
||||
{
|
||||
Id = energyRateException.Id,
|
||||
Name = energyRateException.Name,
|
||||
RateId = energyRateException.RateId,
|
||||
EnergyThreshold = energyRateException.EnergyThreshold,
|
||||
ResetType = energyRateException.ResetType,
|
||||
StartedAt = energyRateException.StartedAt,
|
||||
EndedAt = energyRateException.EndedAt,
|
||||
CreatedAt = energyRateException.CreatedAt,
|
||||
UpdatedAt = energyRateException.UpdatedAt,
|
||||
});
|
||||
})
|
||||
.OrderBy(energyRateException => energyRateException.Id);
|
||||
return result;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user