Refactored Supplier
This commit is contained in:
@@ -2,10 +2,13 @@
|
|||||||
using PyroFetes.DTO.Supplier.Request;
|
using PyroFetes.DTO.Supplier.Request;
|
||||||
using PyroFetes.DTO.Supplier.Response;
|
using PyroFetes.DTO.Supplier.Response;
|
||||||
using PyroFetes.Models;
|
using PyroFetes.Models;
|
||||||
|
using PyroFetes.Repositories;
|
||||||
|
|
||||||
namespace PyroFetes.Endpoints.Suppliers;
|
namespace PyroFetes.Endpoints.Suppliers;
|
||||||
|
|
||||||
public class CreateSupplierEndpoint(PyroFetesDbContext database) : Endpoint<CreateSupplierDto, GetSupplierDto>
|
public class CreateSupplierEndpoint(
|
||||||
|
SuppliersRepository suppliersRepository,
|
||||||
|
AutoMapper.IMapper mapper) : Endpoint<CreateSupplierDto, GetSupplierDto>
|
||||||
{
|
{
|
||||||
public override void Configure()
|
public override void Configure()
|
||||||
{
|
{
|
||||||
@@ -26,20 +29,8 @@ public class CreateSupplierEndpoint(PyroFetesDbContext database) : Endpoint<Crea
|
|||||||
DeliveryDelay = req.DeliveryDelay
|
DeliveryDelay = req.DeliveryDelay
|
||||||
};
|
};
|
||||||
|
|
||||||
database.Suppliers.Add(supplier);
|
await suppliersRepository.AddAsync(supplier, ct);
|
||||||
await database.SaveChangesAsync(ct);
|
|
||||||
|
|
||||||
GetSupplierDto responseDto = new()
|
await Send.OkAsync(mapper.Map<GetSupplierDto>(supplier), ct);
|
||||||
{
|
|
||||||
Id = supplier.Id,
|
|
||||||
Name = supplier.Name,
|
|
||||||
Email = supplier.Email,
|
|
||||||
Phone = supplier.Phone,
|
|
||||||
Address = supplier.Address,
|
|
||||||
City = supplier.City,
|
|
||||||
ZipCode = supplier.ZipCode,
|
|
||||||
DeliveryDelay = supplier.DeliveryDelay
|
|
||||||
};
|
|
||||||
await Send.OkAsync(responseDto, ct);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
using FastEndpoints;
|
using FastEndpoints;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using PyroFetes.Models;
|
using PyroFetes.Models;
|
||||||
|
using PyroFetes.Repositories;
|
||||||
|
using PyroFetes.Specifications.Suppliers;
|
||||||
|
|
||||||
namespace PyroFetes.Endpoints.Suppliers;
|
namespace PyroFetes.Endpoints.Suppliers;
|
||||||
|
|
||||||
@@ -9,7 +11,7 @@ public class DeleteSupplierRequest
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class DeleteSupplierEndpoint(PyroFetesDbContext database) : Endpoint<DeleteSupplierRequest>
|
public class DeleteSupplierEndpoint(SuppliersRepository suppliersRepository) : Endpoint<DeleteSupplierRequest>
|
||||||
{
|
{
|
||||||
public override void Configure()
|
public override void Configure()
|
||||||
{
|
{
|
||||||
@@ -19,7 +21,7 @@ public class DeleteSupplierEndpoint(PyroFetesDbContext database) : Endpoint<Dele
|
|||||||
|
|
||||||
public override async Task HandleAsync(DeleteSupplierRequest req, CancellationToken ct)
|
public override async Task HandleAsync(DeleteSupplierRequest req, CancellationToken ct)
|
||||||
{
|
{
|
||||||
Supplier? supplier = await database.Suppliers.SingleOrDefaultAsync(x => x.Id == req.Id, ct);
|
Supplier? supplier = await suppliersRepository.FirstOrDefaultAsync(new GetSupplierByIdSpec(req.Id), ct);
|
||||||
|
|
||||||
if (supplier == null)
|
if (supplier == null)
|
||||||
{
|
{
|
||||||
@@ -27,8 +29,7 @@ public class DeleteSupplierEndpoint(PyroFetesDbContext database) : Endpoint<Dele
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
database.Suppliers.Remove(supplier);
|
await suppliersRepository.DeleteAsync(supplier, ct);
|
||||||
await database.SaveChangesAsync(ct);
|
|
||||||
|
|
||||||
await Send.NoContentAsync(ct);
|
await Send.NoContentAsync(ct);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
using FastEndpoints;
|
using FastEndpoints;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using PyroFetes.DTO.Supplier.Response;
|
using PyroFetes.DTO.Supplier.Response;
|
||||||
|
using PyroFetes.Repositories;
|
||||||
|
|
||||||
namespace PyroFetes.Endpoints.Suppliers;
|
namespace PyroFetes.Endpoints.Suppliers;
|
||||||
|
|
||||||
public class GetAllSuppliersEndpoint(PyroFetesDbContext database) : EndpointWithoutRequest<List<GetSupplierDto>>
|
public class GetAllSuppliersEndpoint(SuppliersRepository suppliersRepository) : EndpointWithoutRequest<List<GetSupplierDto>>
|
||||||
{
|
{
|
||||||
public override void Configure()
|
public override void Configure()
|
||||||
{
|
{
|
||||||
@@ -14,19 +15,6 @@ public class GetAllSuppliersEndpoint(PyroFetesDbContext database) : EndpointWith
|
|||||||
|
|
||||||
public override async Task HandleAsync(CancellationToken ct)
|
public override async Task HandleAsync(CancellationToken ct)
|
||||||
{
|
{
|
||||||
List<GetSupplierDto> supplier = await database.Suppliers
|
await Send.OkAsync(await suppliersRepository.ProjectToListAsync<GetSupplierDto>(ct), ct);
|
||||||
.Select(supplier => new GetSupplierDto()
|
|
||||||
{
|
|
||||||
Id = supplier.Id,
|
|
||||||
Name = supplier.Name,
|
|
||||||
Email = supplier.Email,
|
|
||||||
Phone = supplier.Phone,
|
|
||||||
Address = supplier.Address,
|
|
||||||
City = supplier.City,
|
|
||||||
ZipCode = supplier.ZipCode,
|
|
||||||
DeliveryDelay = supplier.DeliveryDelay
|
|
||||||
}).ToListAsync(ct);
|
|
||||||
|
|
||||||
await Send.OkAsync(supplier, ct);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using PyroFetes.DTO.Supplier.Response;
|
using PyroFetes.DTO.Supplier.Response;
|
||||||
using PyroFetes.Models;
|
using PyroFetes.Models;
|
||||||
|
using PyroFetes.Repositories;
|
||||||
|
using PyroFetes.Specifications.Suppliers;
|
||||||
|
|
||||||
namespace PyroFetes.Endpoints.Suppliers;
|
namespace PyroFetes.Endpoints.Suppliers;
|
||||||
|
|
||||||
@@ -10,7 +12,9 @@ public class GetSupplierRequest
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GetSupplierEndpoint(PyroFetesDbContext database) : Endpoint<GetSupplierRequest, GetSupplierDto>
|
public class GetSupplierEndpoint(
|
||||||
|
SuppliersRepository suppliersRepository,
|
||||||
|
AutoMapper.IMapper mapper) : Endpoint<GetSupplierRequest, GetSupplierDto>
|
||||||
{
|
{
|
||||||
public override void Configure()
|
public override void Configure()
|
||||||
{
|
{
|
||||||
@@ -20,8 +24,7 @@ public class GetSupplierEndpoint(PyroFetesDbContext database) : Endpoint<GetSupp
|
|||||||
|
|
||||||
public override async Task HandleAsync(GetSupplierRequest req, CancellationToken ct)
|
public override async Task HandleAsync(GetSupplierRequest req, CancellationToken ct)
|
||||||
{
|
{
|
||||||
Supplier? supplier = await database.Suppliers
|
Supplier? supplier = await suppliersRepository.FirstOrDefaultAsync(new GetSupplierByIdSpec(req.Id), ct);
|
||||||
.SingleOrDefaultAsync(x => x.Id == req.Id, ct);
|
|
||||||
|
|
||||||
if (supplier == null)
|
if (supplier == null)
|
||||||
{
|
{
|
||||||
@@ -29,17 +32,6 @@ public class GetSupplierEndpoint(PyroFetesDbContext database) : Endpoint<GetSupp
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GetSupplierDto responseDto = new()
|
await Send.OkAsync(mapper.Map<GetSupplierDto>(supplier), ct);
|
||||||
{
|
|
||||||
Id = supplier.Id,
|
|
||||||
Name = supplier.Name,
|
|
||||||
Email = supplier.Email,
|
|
||||||
Phone = supplier.Phone,
|
|
||||||
Address = supplier.Address,
|
|
||||||
City = supplier.City,
|
|
||||||
ZipCode = supplier.ZipCode,
|
|
||||||
DeliveryDelay = supplier.DeliveryDelay
|
|
||||||
};
|
|
||||||
await Send.OkAsync(responseDto, ct);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,10 +3,14 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using PyroFetes.DTO.Supplier.Request;
|
using PyroFetes.DTO.Supplier.Request;
|
||||||
using PyroFetes.DTO.Supplier.Response;
|
using PyroFetes.DTO.Supplier.Response;
|
||||||
using PyroFetes.Models;
|
using PyroFetes.Models;
|
||||||
|
using PyroFetes.Repositories;
|
||||||
|
using PyroFetes.Specifications.Suppliers;
|
||||||
|
|
||||||
namespace PyroFetes.Endpoints.Suppliers;
|
namespace PyroFetes.Endpoints.Suppliers;
|
||||||
|
|
||||||
public class PatchSupplierDeleveryDelayEndpoint(PyroFetesDbContext database) : Endpoint<PatchSupplierDeliveryDelayDto, GetSupplierDto>
|
public class PatchSupplierDeleveryDelayEndpoint(
|
||||||
|
SuppliersRepository suppliersRepository,
|
||||||
|
AutoMapper.IMapper mapper) : Endpoint<PatchSupplierDeliveryDelayDto, GetSupplierDto>
|
||||||
{
|
{
|
||||||
public override void Configure()
|
public override void Configure()
|
||||||
{
|
{
|
||||||
@@ -16,7 +20,7 @@ public class PatchSupplierDeleveryDelayEndpoint(PyroFetesDbContext database) : E
|
|||||||
|
|
||||||
public override async Task HandleAsync(PatchSupplierDeliveryDelayDto req, CancellationToken ct)
|
public override async Task HandleAsync(PatchSupplierDeliveryDelayDto req, CancellationToken ct)
|
||||||
{
|
{
|
||||||
Supplier? supplier = await database.Suppliers.SingleOrDefaultAsync(x => x.Id == req.Id, ct);
|
Supplier? supplier = await suppliersRepository.FirstOrDefaultAsync(new GetSupplierByIdSpec(req.Id), ct);
|
||||||
|
|
||||||
if (supplier == null)
|
if (supplier == null)
|
||||||
{
|
{
|
||||||
@@ -25,14 +29,8 @@ public class PatchSupplierDeleveryDelayEndpoint(PyroFetesDbContext database) : E
|
|||||||
}
|
}
|
||||||
|
|
||||||
supplier.DeliveryDelay = req.DeliveryDelay;
|
supplier.DeliveryDelay = req.DeliveryDelay;
|
||||||
await database.SaveChangesAsync(ct);
|
await suppliersRepository.UpdateAsync(supplier, ct);
|
||||||
|
|
||||||
GetSupplierDto responseDto = new()
|
|
||||||
{
|
|
||||||
Id = supplier.Id,
|
|
||||||
DeliveryDelay = supplier.DeliveryDelay,
|
|
||||||
};
|
|
||||||
|
|
||||||
await Send.OkAsync(responseDto, ct);
|
await Send.OkAsync(mapper.Map<GetSupplierDto>(supplier), ct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,10 +3,14 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using PyroFetes.DTO.Supplier.Request;
|
using PyroFetes.DTO.Supplier.Request;
|
||||||
using PyroFetes.DTO.Supplier.Response;
|
using PyroFetes.DTO.Supplier.Response;
|
||||||
using PyroFetes.Models;
|
using PyroFetes.Models;
|
||||||
|
using PyroFetes.Repositories;
|
||||||
|
using PyroFetes.Specifications.Suppliers;
|
||||||
|
|
||||||
namespace PyroFetes.Endpoints.Suppliers;
|
namespace PyroFetes.Endpoints.Suppliers;
|
||||||
|
|
||||||
public class UpdateSupplierEndpoint(PyroFetesDbContext database) : Endpoint<UpdateSupplierDto, GetSupplierDto>
|
public class UpdateSupplierEndpoint(
|
||||||
|
SuppliersRepository suppliersRepository,
|
||||||
|
AutoMapper.IMapper mapper) : Endpoint<UpdateSupplierDto, GetSupplierDto>
|
||||||
{
|
{
|
||||||
public override void Configure()
|
public override void Configure()
|
||||||
{
|
{
|
||||||
@@ -16,7 +20,7 @@ public class UpdateSupplierEndpoint(PyroFetesDbContext database) : Endpoint<Upda
|
|||||||
|
|
||||||
public override async Task HandleAsync(UpdateSupplierDto req, CancellationToken ct)
|
public override async Task HandleAsync(UpdateSupplierDto req, CancellationToken ct)
|
||||||
{
|
{
|
||||||
Supplier? supplier = await database.Suppliers.SingleOrDefaultAsync(x => x.Id == req.Id, ct);
|
Supplier? supplier = await suppliersRepository.FirstOrDefaultAsync(new GetSupplierByIdSpec(req.Id), ct);
|
||||||
|
|
||||||
if (supplier == null)
|
if (supplier == null)
|
||||||
{
|
{
|
||||||
@@ -31,20 +35,9 @@ public class UpdateSupplierEndpoint(PyroFetesDbContext database) : Endpoint<Upda
|
|||||||
supplier.City = req.City;
|
supplier.City = req.City;
|
||||||
supplier.ZipCode = req.ZipCode;
|
supplier.ZipCode = req.ZipCode;
|
||||||
supplier.DeliveryDelay = req.DeliveryDelay;
|
supplier.DeliveryDelay = req.DeliveryDelay;
|
||||||
await database.SaveChangesAsync(ct);
|
|
||||||
|
|
||||||
GetSupplierDto responseDto = new()
|
await suppliersRepository.UpdateAsync(supplier, ct);
|
||||||
{
|
|
||||||
Id = supplier.Id,
|
|
||||||
Name = supplier.Name,
|
|
||||||
Email = supplier.Email,
|
|
||||||
Phone = supplier.Phone,
|
|
||||||
Address = supplier.Address,
|
|
||||||
City = supplier.City,
|
|
||||||
ZipCode = supplier.ZipCode,
|
|
||||||
DeliveryDelay = supplier.DeliveryDelay
|
|
||||||
};
|
|
||||||
|
|
||||||
await Send.OkAsync(responseDto, ct);
|
await Send.OkAsync(mapper.Map<GetSupplierDto>(supplier), ct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user