44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
using System;
|
|
using System.Linq;
|
|
using LCU.Shared.Collections.RepoApiLib.Models;
|
|
using LCU.Shared.Collections.RepoApiLib.Repositories;
|
|
using Serilog;
|
|
|
|
namespace LCU.API.Collections.RepoApi.Services.AutoIms
|
|
{
|
|
public class AutoImsNoteProcessorService : IAutoImsNoteProcessorService
|
|
{
|
|
private readonly IAuctionAssignmentNoteRepository _auctionAssignmentNoteRepository;
|
|
private readonly IUnitOfWork _unitOfWork;
|
|
|
|
public AutoImsNoteProcessorService(IAuctionAssignmentNoteRepository auctionAssignmentNoteRepository,
|
|
IUnitOfWork unitOfWork
|
|
)
|
|
{
|
|
_unitOfWork = unitOfWork;
|
|
_auctionAssignmentNoteRepository = auctionAssignmentNoteRepository;
|
|
}
|
|
|
|
public AuctionAssignmentNote ImportSingleNoteRow(AuctionAssignmentNote item)
|
|
{
|
|
var dateWritten = item.DateWritten ?? DateTime.Now;
|
|
var existing =
|
|
_auctionAssignmentNoteRepository.FindConflictingNotes(dateWritten, item.Text, item.Writer)
|
|
.GetAwaiter().GetResult();
|
|
|
|
if (!existing.Any())
|
|
{
|
|
item.DateWritten = dateWritten;
|
|
Log.Information("Saving Note.");
|
|
_auctionAssignmentNoteRepository.AddAsync(item);
|
|
_unitOfWork.CompleteAsync().GetAwaiter().GetResult();
|
|
}
|
|
else
|
|
{
|
|
Log.Information($"Note already exists, customerNo: {item.AuctionCustomerNo} on writeDate: {item.DateWritten}");
|
|
}
|
|
|
|
return item;
|
|
}
|
|
}
|
|
} |