public IHttpActionResult GetProtocolPECMails(Guid uniqueId, PECMailDirection direction) { return(ActionHelper.TryCatchWithLoggerGeneric(() => { IList <PECMail> pecMails = _unitOfWork.Repository <PECMail>().GetByProtocol(uniqueId, direction).ToList(); if (pecMails == null) { throw new ArgumentNullException("PECMails not found"); } IList <PECMailModel> pecList = new List <PECMailModel>(); foreach (PECMail item in pecMails) { PECMailModel model = _mapper.Map <PECMail, PECMailModel>(item); if (item.Direction.Equals(PECMailDirection.Outgoing)) { ICollection <PECMailReceipt> receipts = item.PECMailReceipts.Where(r => r.ReceiptType.Equals("avvenuta-consegna") || r.ReceiptType.Equals("accettazione") || r.ReceiptType.Equals("non-accettazione") || r.ReceiptType.Equals("preavviso-errore-consegna") || r.ReceiptType.Equals("errore-consegna")).OrderBy(t => t.ReceiptDate).ToList(); model.Receipts = receipts.Select(t => _mapper.Map <PECMailReceipt, PECMailReceiptModel>(t)).ToList(); } pecList.Add(model); } return Ok(pecList); }, _logger, LogCategories)); }
public static IQueryable <PECMail> GetByProtocol(this IRepository <PECMail> repository, Guid uniqueId, PECMailDirection direction) { return(repository.Query(p => p.DocumentUnit.UniqueId == uniqueId && p.Direction == direction && p.DocumentUnit.Environment == (int)DSWEnvironmentType.Protocol) .Include(i => i.PECMailReceipts) .Include(i => i.PECMailChildrenReceipts) .SelectAsQueryable()); }