Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
 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());
 }