Example #1
0
        private static DocumentContentTypeEnum ContentTypeToContentTypeEnum(Doc.T_WebDocumentContentType orig)
        {
            if (Doc.T_WebDocumentContentType.MainDocument == orig)
                return DocumentContentTypeEnum.MainDocument;

            return DocumentContentTypeEnum.Attachment;
        }
Example #2
0
        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;
        }
Example #3
0
        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
                       };
        }