예제 #1
0
        public ActionResult ExportFullPDD(Guid?idArchive, DateTime?fromDate, DateTime?toDate, string dynamicFilters)
        {
            return(ActionResultHelper.TryCatchWithLogger(() =>
            {
                if (!idArchive.HasValue)
                {
                    _logger.InfoFormat("ExportFullPDD -> nessun id archivio passato per la ricerca");
                    return Content(string.Empty);
                }

                IDictionary <string, string> filters = new Dictionary <string, string>();
                if (!string.IsNullOrEmpty(dynamicFilters))
                {
                    filters = JsonConvert.DeserializeObject <IDictionary <string, string> >(dynamicFilters);
                }

                SearchDocumentsRequestModel requestModel = new SearchDocumentsRequestModel()
                {
                    IdArchive = idArchive.Value,
                    FromDate = fromDate,
                    ToDate = toDate,
                    DynamicFilters = filters
                };
                SearchDocumentsResponseModel responseModel = _searchDocumentsInteractor.Process(requestModel);
                return ExportPDD(JsonConvert.SerializeObject(responseModel.Documents.Select(s => s.IdDocument)));
            }, _loggerService));
        }
예제 #2
0
        public ActionResult FindDocuments([DataSourceRequest] DataSourceRequest request, Guid?idArchive, DateTime?fromDate, DateTime?toDate, string dynamicFilters)
        {
            return(ActionResultHelper.TryCatchWithLogger(() =>
            {
                DataSourceResult result = new DataSourceResult();
                if (!idArchive.HasValue)
                {
                    result.Total = 0;
                    result.Data = new List <DistributionPackagesGridViewModel>();
                    return Json(result, JsonRequestBehavior.AllowGet);
                }

                IDictionary <string, string> filters = new Dictionary <string, string>();
                if (!string.IsNullOrEmpty(dynamicFilters))
                {
                    filters = JsonConvert.DeserializeObject <IDictionary <string, string> >(dynamicFilters);
                }

                SearchDocumentsRequestModel requestModel = new SearchDocumentsRequestModel()
                {
                    IdArchive = idArchive.Value,
                    FromDate = fromDate,
                    ToDate = toDate,
                    DynamicFilters = filters,
                    Skip = (request.Page - 1) * request.PageSize,
                    Top = request.PageSize
                };
                SearchDocumentsResponseModel responseModel = _searchDocumentsInteractor.Process(requestModel);
                ICollection <DocumentAttribute> attributes = AttributeService.GetAttributesFromArchive(idArchive.Value).OrderBy(x => x.Name).ToList();
                result.Total = responseModel.Counter;
                result.Data = responseModel.Documents.Select(s => new DistributionPackagesGridViewModel()
                {
                    IdDocument = s.IdDocument,
                    DocumentCreated = s.DateCreated,
                    DocumentName = s.Name,
                    IdPreservation = s.IdPreservation,
                    IsConservated = s.IdPreservation.HasValue,
                    Metadata = attributes.Select(ss => new DistributionPackagesGridMetadataViewModel()
                    {
                        MetadataName = ss.Name,
                        MetadataValue = FormatAttributeValue(s.AttributeValues.FirstOrDefault(x => x.Attribute.IdAttribute == ss.IdAttribute))
                    }).ToArray()
                });

                return Json(result, JsonRequestBehavior.AllowGet);
            }, _loggerService));
        }