/// <summary> /// Получить список внутренних документов /// </summary> /// <param name="options">параметры поиска/фильтрации внутренних документов</param> /// <returns>Cписок внутренних документов</returns> public DocumentEntryList GetInternalDocuments(InternalListOptions options) { return CheckAutorizedInvoke(() => client.GetInternalDocuments(Token, options)); }
/// <summary> /// Обработка консольной команды: /// получение и отображение списка внутренних документов /// </summary> private void GetInternalDocuments() { var internalListOptions = new InternalListOptions { BoxId = _context.CurrentBox, First = 0, Max = 10 }; if (UserInput.ChooseYesNo("Указать параметры фильтрации", false)) { var excludeUnavailable = UserInput.ChooseYesNo("Исключить из списка документы, подписание/отказ по которым недоступны", false); internalListOptions.ExcludeUnavailable = excludeUnavailable; var currentOrganizationId = _context.CurrentOrganizationId.ToString(CultureInfo.InvariantCulture); if (UserInput.ChooseYesNo("Указать подразделение отправителя")) { var senderDepartment = ChooseOrganizationStructureElement(currentOrganizationId); if (senderDepartment != null) internalListOptions.SenderDepartmentIds = new[] { senderDepartment.Id }; } if (UserInput.ChooseYesNo("Указать подразделение получателя")) { var recipientDepartment = ChooseOrganizationStructureElement(currentOrganizationId); if (recipientDepartment != null) { internalListOptions.RecipientDepartmentIds = new[] { recipientDepartment.Id }; if (UserInput.ChooseYesNo("Указать пользователя получателя")) { var recipientUser = ChooseUser(recipientDepartment.Id); if (recipientUser != null) internalListOptions.RecipientUserLogins = new[] { recipientUser.Login }; } } } if (UserInput.ChooseYesNo("Указать статусы подписания")) { var signStatuses = new List<DocumentSignStatus>(); if (UserInput.ChooseYesNo("Подпись не требуется")) signStatuses.Add(DocumentSignStatus.NoSignNeeded); if (UserInput.ChooseYesNo("Подписан")) signStatuses.Add(DocumentSignStatus.Signed); if (UserInput.ChooseYesNo("Отказано")) signStatuses.Add(DocumentSignStatus.SignRejected); if (UserInput.ChooseYesNo("Требуется подпись")) signStatuses.Add(DocumentSignStatus.WaitingForSign); internalListOptions.DocumentSignStatuses = signStatuses.ToArray(); } if (UserInput.ChooseYesNo("Указать период отправки")) { internalListOptions.From = ChooseDate(true); internalListOptions.To = ChooseDate(false); } } var internalDocuments = _context.ServiceClient.GetInternalDocuments(internalListOptions); Console.Out.WriteLine("Всего внутренних документов {0}", internalDocuments.Total); while (true) { Console.Out.WriteLine("Внутренние документов с " + (internalListOptions.First + 1) + " по " + Math.Min(internalListOptions.First + internalListOptions.Max, internalDocuments.Total)); foreach (var documentEntryItem in internalDocuments.Items) { var flow = documentEntryItem.Flows.First(); Console.Out.WriteLine("{0, -60} {1, -20} {2, -20} {3, -20} {4} {5}", documentEntryItem.Name, flow.SenderDepartment.Name, flow.RecipientDepartment.Name, flow.RecipientStatus, documentEntryItem.DocumentId, documentEntryItem.SentDate); } if (internalListOptions.First + internalListOptions.Max > internalDocuments.Total) break; if (!UserInput.ChooseYesNo("Далее")) break; internalListOptions.First += internalListOptions.Max; internalDocuments = _context.ServiceClient.GetInternalDocuments(internalListOptions); } }