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