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; } } }