Exemplo n.º 1
0
 public static SeriesToCsvFields DeepClone(this SeriesToCsvFields source)
 {
     using (MemoryStream stream = new MemoryStream())
     {
         BinaryFormatter formatter = new BinaryFormatter();
         formatter.Serialize(stream, source);
         stream.Position = 0;
         return((SeriesToCsvFields)formatter.Deserialize(stream));
     }
 }
Exemplo n.º 2
0
        public SeriesToCsvFields GetHeaderDynamicFields()
        {
            var seriesToCsv = new SeriesToCsvFields();

            foreach (var data in ArchiveAttribute)
            {
                var dict = new KeyValuePair <string, object>(data.Description, null);

                seriesToCsv.DynamicData.Add(dict);
            }
            return(seriesToCsv);
        }
Exemplo n.º 3
0
        public void InitializeExport(IList <DocumentSeriesItemWSO> itemWsos, IList <ArchiveAttributeWSO> archiveAttributeWsos)
        {
            CsvFields.Clear();
            ArchiveAttribute.Clear();

            ArchiveAttribute = archiveAttributeWsos;
            if (this._parameters.ExportDocuments)
            {
                ArchiveAttribute.Add(new ArchiveAttributeWSO()
                {
                    Description = "DocumentName"
                });
                ArchiveAttribute.Add(new ArchiveAttributeWSO()
                {
                    Description = "DocumentType"
                });
            }

            if (!itemWsos.Any())
            {
                return;
            }

            foreach (var itemWso in itemWsos)
            {
                var seriesToCsv = new SeriesToCsvFields();
                seriesToCsv.Object          = itemWso.Subject;
                seriesToCsv.PublicationDate = itemWso.PublishingDate;
                seriesToCsv.IdSeries        = itemWso.IdDocumentSeries;
                seriesToCsv.IdSubsection    = itemWso.IdDocumentSeriesSubsection;

                foreach (var data in ArchiveAttribute)
                {
                    var value    = string.Empty;
                    var keyExist = itemWso.DynamicData.Any(x => x.Key.Eq(data.Name));
                    if (keyExist)
                    {
                        value =
                            itemWso.DynamicData.Where(x => x.Key.Eq(data.Name)).Select(s => s.Value).SingleOrDefault();
                    }

                    if (ExporterHelper.EnumTipoProcedimento.Eq(data.Name))
                    {
                        value = ExporterHelper.GetTipoProcedimento(value);
                    }

                    var dict = new KeyValuePair <string, object>(data.Description, value);

                    seriesToCsv.DynamicData.Add(dict);
                }

                if (this._parameters.ExportDocuments)
                {
                    DocumentSeriesItemWSO fullItem = this.WsSeriesConnector.GetFullItemWso(itemWso.Id);

                    fullItem.MainDocs.ForEach((x) =>
                    {
                        SeriesToCsvFields clone           = seriesToCsv.DeepClone();
                        clone.DynamicData["DocumentName"] = x.Name;
                        clone.DynamicData["DocumentType"] = "Documento Principale";
                        CsvFields.Add(clone);
                    });

                    fullItem.AnnexedDocs.ForEach((x) =>
                    {
                        SeriesToCsvFields clone           = seriesToCsv.DeepClone();
                        clone.DynamicData["DocumentName"] = x.Name;
                        clone.DynamicData["DocumentType"] = "Annesso";
                        CsvFields.Add(clone);
                    });

                    if (fullItem.MainDocs.Count == 0 && fullItem.AnnexedDocs.Count == 0)
                    {
                        CsvFields.Add(seriesToCsv);
                    }
                }
                else
                {
                    CsvFields.Add(seriesToCsv);
                }
            }
        }