Example #1
0
        public async Task <string> UploadDocument(string id, OrderDocumentType type, IFormFile file)
        {
            using (var stream = file.OpenReadStream())
            {
                var url = await documentStorageService.UploadInvoice(stream);

                await ordersFacade.AddDocument(id, type, url);

                return(url);
            }
        }
Example #2
0
 public async Task AddDocument(string id, OrderDocumentType type, string url)
 {
     await collection.ChangeOneSafeAsync(id, order =>
     {
         order.OrderDocuments.Add(new OrderDocument()
         {
             CreatedDate = DateTime.UtcNow,
             Type        = type,
             Url         = url
         });
     });
 }
Example #3
0
        public bool HaveSendedEmail(int orderId, OrderDocumentType type)
        {
            IList <StoredEmail> result;

            using (var uow = UnitOfWorkFactory.CreateWithoutRoot($"[ES]Получение списка отправленных писем")){
                result = uow.Session.QueryOver <StoredEmail>()
                         .Where(x => x.Order.Id == orderId)
                         .Where(x => x.DocumentType == type)
                         .Where(x => x.State != StoredEmailStates.SendingError &&
                                x.State != StoredEmailStates.Undelivered)
                         .List();
            }
            return(result.Any());
        }
Example #4
0
        int DefaultCopies(OrderDocumentType orderDocType)
        {
            switch (orderDocType)
            {
            case OrderDocumentType.Bill:
            case OrderDocumentType.DriverTicket:
            case OrderDocumentType.M2Proxy:
                return(1);

            case OrderDocumentType.UPD:
            case OrderDocumentType.Torg12:
            case OrderDocumentType.ShetFactura:
                return(currentOrder.DocumentType == Domain.Client.DefaultDocumentType.torg12 ? 1 : 2);

            default:
                return(2);
            }
        }
 public OrderDocTypeNode(OrderDocumentType type, bool selected)
 {
     Type     = type;
     Selected = selected;
 }
Example #6
0
        public bool CanSendByTimeout(string address, int orderId, OrderDocumentType type)
        {
            // Время в минутах, по истечению которых будет возможна повторная отправка
            double timeLimit = 10;

            using (var uow = UnitOfWorkFactory.CreateWithoutRoot($"[ES]Получение возможна ли повторная отправка")) {
                if (type == OrderDocumentType.Bill)
                {
                    var lastSendTime = uow.Session.QueryOver <StoredEmail>()
                                       .Where(x => x.RecipientAddress == address)
                                       .Where(x => x.Order.Id == orderId)
                                       .Where(x => x.State != StoredEmailStates.SendingError)
                                       .Select(Projections.Max <StoredEmail>(y => y.SendDate))
                                       .SingleOrDefault <DateTime>();
                    if (lastSendTime != default(DateTime))
                    {
                        return(DateTime.Now.Subtract(lastSendTime).TotalMinutes > timeLimit);
                    }
                }
                else if (type == OrderDocumentType.BillWSForDebt)
                {
                    var lastSendTime = uow.Session.QueryOver <StoredEmail>()
                                       .Where(x => x.RecipientAddress == address)
                                       .Where(x => x.OrderWithoutShipmentForDebt.Id == orderId)
                                       .Where(x => x.State != StoredEmailStates.SendingError)
                                       .Select(Projections.Max <StoredEmail>(y => y.SendDate))
                                       .SingleOrDefault <DateTime>();
                    if (lastSendTime != default(DateTime))
                    {
                        return(DateTime.Now.Subtract(lastSendTime).TotalMinutes > timeLimit);
                    }
                }
                else if (type == OrderDocumentType.BillWSForAdvancePayment)
                {
                    var lastSendTime = uow.Session.QueryOver <StoredEmail>()
                                       .Where(x => x.RecipientAddress == address)
                                       .Where(x => x.OrderWithoutShipmentForAdvancePayment.Id == orderId)
                                       .Where(x => x.State != StoredEmailStates.SendingError)
                                       .Select(Projections.Max <StoredEmail>(y => y.SendDate))
                                       .SingleOrDefault <DateTime>();
                    if (lastSendTime != default(DateTime))
                    {
                        return(DateTime.Now.Subtract(lastSendTime).TotalMinutes > timeLimit);
                    }
                }
                else if (type == OrderDocumentType.BillWSForPayment)
                {
                    var lastSendTime = uow.Session.QueryOver <StoredEmail>()
                                       .Where(x => x.RecipientAddress == address)
                                       .Where(x => x.OrderWithoutShipmentForPayment.Id == orderId)
                                       .Where(x => x.State != StoredEmailStates.SendingError)
                                       .Select(Projections.Max <StoredEmail>(y => y.SendDate))
                                       .SingleOrDefault <DateTime>();
                    if (lastSendTime != default(DateTime))
                    {
                        return(DateTime.Now.Subtract(lastSendTime).TotalMinutes > timeLimit);
                    }
                }
            }
            return(true);
        }