private static DocumentContentTypeEnum ContentTypeToContentTypeEnum(Doc.T_WebDocumentContentType orig) { if (Doc.T_WebDocumentContentType.MainDocument == orig) return DocumentContentTypeEnum.MainDocument; return DocumentContentTypeEnum.Attachment; }
private static DocumentContentDataTypeEnum DataTypeToDataTypeEnum(Doc.T_WebDocumentDataType orig) { DocumentContentDataTypeEnum outVar; switch (orig) { case Doc.T_WebDocumentDataType.Gif: outVar = DocumentContentDataTypeEnum.Gif; break; case Doc.T_WebDocumentDataType.Jpg: outVar = DocumentContentDataTypeEnum.Jpg; break; case Doc.T_WebDocumentDataType.Pdf: outVar = DocumentContentDataTypeEnum.Pdf; break; case Doc.T_WebDocumentDataType.Png: outVar = DocumentContentDataTypeEnum.Png; break; case Doc.T_WebDocumentDataType.Tiff: outVar = DocumentContentDataTypeEnum.Tiff; break; default: outVar = DocumentContentDataTypeEnum.Xml; break; } return outVar; }
public static DocumentResult MapDocumentResult(Doc.DocumentResult documentResult) { if (documentResult.status == Doc.DocumentResultStatus.error) { var error = (Doc.T_Error)documentResult.Item; return new DocumentResult(error.Message); } var documentsResult = (Doc.T_OGDWebDocument)documentResult.Item; var transformedDocument = new Client.Models.Document() { Abkuerzung = documentsResult.Abkuerzung, Aenderung = documentsResult.Aenderung, Aenderungsdatum = documentsResult.Aenderungsdatum, AlteDokumentnummer = documentsResult.AlteDokumentnummer, Anmerkung = documentsResult.Anmerkung, AnmerkungZurGanzenRechtsvorschrift = documentsResult.AnmerkungZurGanzenRechtsvorschrift, ArtikelParagraphAnlage = documentsResult.ArtikelParagraphAnlage, Ausserkrafttretedatum = documentsResult.Ausserkrafttretedatum, Beachte = documentsResult.Beachte, BeachteZurGanzenRechtsvorschrift = documentsResult.BeachteZurGanzenRechtsvorschrift, Dokumentnummer = documentsResult.Dokumentnummer, Gesetzesnummer = documentsResult.Gesetzesnummer, Indizes = documentsResult.Indizes != null ? new List<string>(documentsResult.Indizes) : new List<string>(), Inkrafttretedatum = documentsResult.Inkrafttretedatum, Kundmachungsorgan = documentsResult.Kundmachungsorgan, Kurztitel = documentsResult.Kurztitel, Langtitel = documentsResult.Langtitel, Schlagworte = documentsResult.Schlagworte, Sprachen = documentsResult.Sprachen, Staaten = documentsResult.Staaten, Typ = documentsResult.Typ, Uebergangsrecht = documentsResult.Uebergangsrecht, Unterzeichnungsdatum = documentsResult.Unterzeichnungsdatum, Veroeffentlichungsdatum = documentsResult.Veroeffentlichungsdatum, }; var transformedContentItems = new List<Client.Models.DocumentContent>(); foreach (Doc.T_WebDocumentContentReference content in documentsResult.Dokumentinhalt) { DocumentContentTypeEnum ctype = ContentTypeToContentTypeEnum(content.ContentType); DocumentContentDataTypeEnum dtype = DataTypeToDataTypeEnum(content.DataType); if (content.Item is Doc.risdok) { var risdok = (Doc.risdok)content.Item; if (null != risdok.nutzdaten) { var transformedContent = new Client.Models.DocumentContent() { Name = content.Name, ContentType = ctype, DataType = dtype, Nutzdaten = risdok.nutzdaten.Text, // for Xslt processing }; transformedContentItems.Add(transformedContent); } } else { // content.Item is a byte[] when correctly decoded, eg see risdok://NOR12088695 if (content.Item is byte[]) { var attachment = new Client.Models.DocumentContent() { Name = content.Name, // this Name property is sent extensionless ContentType = ctype, DataType = dtype, Content = (byte[])content.Item }; transformedContentItems.Add(attachment); } } } return new DocumentResult() { Succeeded = true, Document = transformedDocument, DocumentContents = transformedContentItems }; }