* Fixed DTOs issues
* Added service to save data
This commit is contained in:
@@ -17,7 +17,7 @@ namespace SytelineSaAppEfDataModel.Services
|
||||
|
||||
return int.Parse(lastOrderNumber);
|
||||
}
|
||||
|
||||
|
||||
public async Task<IEnumerable<EdiCustomerOrderDto>> GetAll()
|
||||
{
|
||||
IList<EdiCustomerOrderTranslateDto> ediCustomerOrderTranslates = await context.EdiCustomerOrderTranslates
|
||||
@@ -33,7 +33,7 @@ namespace SytelineSaAppEfDataModel.Services
|
||||
{
|
||||
if (!ediTranslatesByCoNumber.TryGetValue(ediCustomerOrder.CustomerOrderNumber,
|
||||
out List<EdiCustomerOrderTranslateDto>? customerOrderTranslates)) continue;
|
||||
|
||||
|
||||
customerOrderTranslates = customerOrderTranslates.OrderByDescending(x => x.CreatedDate).ToList();
|
||||
ediCustomerOrder.EdiCustomerOrderTranslates = customerOrderTranslates;
|
||||
}
|
||||
@@ -65,7 +65,7 @@ namespace SytelineSaAppEfDataModel.Services
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
IList<EdiCustomerOrderLineDto> ediCustomerOrderLines = await context.EdiCustomerOrderLines
|
||||
.Where(x => x.CustomerOrderNumber == ediCustomerOrder.CustomerOrderNumber)
|
||||
.Select(x => mapper.Map<EdiCustomerOrderLineDto>(x)).ToListAsync();
|
||||
@@ -87,7 +87,7 @@ namespace SytelineSaAppEfDataModel.Services
|
||||
|
||||
return ediCustomerOrder;
|
||||
}
|
||||
|
||||
|
||||
public async Task<IEnumerable<EdiCustomerOrderTranslateDto>> FindMissingOrders(DateTime startDate)
|
||||
{
|
||||
IList<EdiCustomerOrderTranslate> ediCustomerOrderTranslates = await context.EdiCustomerOrderTranslates
|
||||
@@ -109,14 +109,19 @@ namespace SytelineSaAppEfDataModel.Services
|
||||
|
||||
public async Task<int> SendOrderToSyteline(Guid customerOrderNumber)
|
||||
{
|
||||
EdiCustomerOrder? ediCustomerOrder = await context.EdiCustomerOrders.FirstOrDefaultAsync(x => x.RowPointer == customerOrderNumber);
|
||||
|
||||
EdiCustomerOrder? ediCustomerOrder =
|
||||
await context.EdiCustomerOrders.FirstOrDefaultAsync(x => x.RowPointer == customerOrderNumber);
|
||||
|
||||
if (ediCustomerOrder == null) return 0;
|
||||
|
||||
var ediCoNum = new SqlParameter("@PEdiCoNum", SqlDbType.NVarChar, 50) { Value = ediCustomerOrder.CustomerOrderNumber };
|
||||
var ediCoCount = new SqlParameter("@PEdiCoCount", SqlDbType.Int) { Value = 0, Direction = ParameterDirection.Output };
|
||||
var postedCount = new SqlParameter("@PPostedCount", SqlDbType.Int) { Value = 0, Direction = ParameterDirection.Output };
|
||||
var infoBar = new SqlParameter("@Infobar", SqlDbType.NVarChar, 2800) { Value = "", Direction = ParameterDirection.Output };
|
||||
var ediCoNum = new SqlParameter("@PEdiCoNum", SqlDbType.NVarChar, 50)
|
||||
{ Value = ediCustomerOrder.CustomerOrderNumber };
|
||||
var ediCoCount = new SqlParameter("@PEdiCoCount", SqlDbType.Int)
|
||||
{ Value = 0, Direction = ParameterDirection.Output };
|
||||
var postedCount = new SqlParameter("@PPostedCount", SqlDbType.Int)
|
||||
{ Value = 0, Direction = ParameterDirection.Output };
|
||||
var infoBar = new SqlParameter("@Infobar", SqlDbType.NVarChar, 2800)
|
||||
{ Value = "", Direction = ParameterDirection.Output };
|
||||
var autoPost = new SqlParameter("@AutoPost", SqlDbType.Int) { Value = 0 };
|
||||
var processId = new SqlParameter("@ProcessId", SqlDbType.Int) { Value = 423456 };
|
||||
|
||||
@@ -134,5 +139,33 @@ namespace SytelineSaAppEfDataModel.Services
|
||||
|
||||
return postedCountResult;
|
||||
}
|
||||
|
||||
public async Task<(bool, string)> SaveOrdersWithDetails(List<EdiCustomerOrderDto> ediCustomerOrders)
|
||||
{
|
||||
if (ediCustomerOrders.Count == 0)
|
||||
{
|
||||
return (false, string.Empty);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
await context.EdiCustomerOrders.AddRangeAsync(ediCustomerOrders.Select(mapper.Map<EdiCustomerOrder>));
|
||||
await context.EdiCustomerOrderLines.AddRangeAsync(ediCustomerOrders
|
||||
.SelectMany(x => x.EdiCustomerOrderLines)
|
||||
.Select(mapper.Map<EdiCustomerOrderLine>));
|
||||
await context.EdiCustomerOrderLineItems.AddRangeAsync(ediCustomerOrders
|
||||
.SelectMany(x => x.EdiCustomerOrderLines)
|
||||
.SelectMany(y => y.EdiCustomerOrderLineItems).Select(mapper.Map<EdiCustomerOrderLineItem>));
|
||||
await context.EdiCustomerOrderTranslates.AddRangeAsync(ediCustomerOrders
|
||||
.SelectMany(x => x.EdiCustomerOrderTranslates)
|
||||
.Select(mapper.Map<EdiCustomerOrderTranslate>));
|
||||
await context.SaveChangesAsync();
|
||||
return (true, string.Empty);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (false, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user