private Parameter[] GetParameters(DocumentListFilter filter)
        {
            if (filter == null)
            {
                return(new Parameter[0]);
            }

            var parameters = new List <Parameter>();

            if (filter.Limit.HasValue)
            {
                parameters.Add(new Parameter("limit", filter.Limit.Value, ParameterType.QueryString));
            }

            if (filter.Offset.HasValue)
            {
                parameters.Add(new Parameter("offset", filter.Offset.Value, ParameterType.QueryString));
            }

            if (filter.CreatedFrom.HasValue)
            {
                parameters.Add(new Parameter("created_from", filter.CreatedFrom.Value.ToUnixTimeSeconds(), ParameterType.QueryString));
            }

            if (filter.CreatedTo.HasValue)
            {
                parameters.Add(new Parameter("created_to", filter.CreatedTo.Value.ToUnixTimeSeconds(), ParameterType.QueryString));
            }

            return(parameters.ToArray());
        }
 /// <summary>
 /// 3.8. Получение списка входящих документов
 /// </summary>
 /// <param name="filter">Параметры фильтра</param>
 public List <DocumentGroup> GetIncomingDocuments(DocumentListFilter filter = null) =>
 GetDocuments("incoming-documents", filter);
 /// <summary>
 /// 3.8. Получение списка исходящих документов
 /// </summary>
 /// <param name="filter">Параметры фильтра</param>
 public List <DocumentGroup> GetOutgoingDocuments(DocumentListFilter filter = null) =>
 GetDocuments("outgoing-documents", filter);
        private List <DocumentGroup> GetDocuments(string url, DocumentListFilter filter)
        {
            var result = Get <GetDocumentsResponse>(url, GetParameters(filter));

            return(result.Items);
        }