using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Xml.Serialization;
// Modified from Altinn.Common.EFormidlingClient.Models
namespace Altinn.App.Models.Arkivmelding
{
///
/// Initializes a new instance of the class. This class represents the actual arkivmelding.
///
/// This class is based on the XSD definition: https://github.com/difi/felleslosninger/blob/gh-pages/resources/arkivmelding/arkivmelding.xsd
[XmlRoot(ElementName = "arkivmelding", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding")]
public class Arkivmelding
{
///
/// Gets or sets the System
///
[XmlElement(ElementName = "system", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 1)]
[Required]
public string System { get; set; }
///
/// Gets or sets the MeldingId
///
[XmlElement(ElementName = "meldingId", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 2)]
public string MeldingId { get; set; }
///
/// Gets or sets the Tidspunkt
///
[XmlElement(ElementName = "tidspunkt", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 3)]
public DateTime Tidspunkt { get; set; }
///
/// Gets or sets the AntallFiler
///
[XmlElement(ElementName = "antallFiler", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 4)]
public int AntallFiler { get; set; }
///
/// Gets or sets the Mappe
///
[XmlElement(ElementName = "mappe", Order = 5)]
public List Mappe { get; set; }
///
/// Gets or sets the SchemaLocation
///
[XmlAttribute(AttributeName = "schemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
public string SchemaLocation { get; set; }
///
/// Gets or sets the Xmlns
///
[XmlAttribute(AttributeName = "xmlns", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding")]
public string Xmlns { get; set; }
///
/// Gets or sets the Xsi
///
[XmlAttribute(AttributeName = "xsi", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Xsi { get; set; }
}
///
/// Initializes a new instance of the class.
///
[XmlTypeAttribute(TypeName = "saksmappe")]
public class Mappe
{
///
/// Gets or sets the SystemID
///
[XmlElement(ElementName = "systemID", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 1)]
public Guid SystemID { get; set; }
//public string SystemID { get; set; }
///
/// Gets or sets the Tittel
///
[XmlElement(ElementName = "tittel", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 2)]
public string Tittel { get; set; }
///
/// Gets or sets the OpprettetDato
///
[XmlElement(ElementName = "opprettetDato", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 3)]
public DateTime OpprettetDato { get; set; }
///
/// Gets or sets the OpprettetAv
///
[XmlElement(ElementName = "opprettetAv", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 4)]
public string OpprettetAv { get; set; }
///
/// Gets or sets the Basisregistrering
///
[XmlElement(ElementName = "basisregistrering", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 5)]
public Basisregistrering Basisregistrering { get; set; }
///
/// Gets or sets the Saksdato
///
[XmlElement(ElementName = "saksdato", DataType = "date", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 6)]
public DateTime Saksdato { get; set; }
///
/// Gets or sets the AdministrativEnhet
///
[XmlElement(ElementName = "administrativEnhet", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 7)]
public string AdministrativEnhet { get; set; }
///
/// Gets or sets the Saksansvarlig
///
[XmlElement(ElementName = "saksansvarlig", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 8)]
public string Saksansvarlig { get; set; }
///
/// Gets or sets the Saksstatus
///
///
/// The accepted values are: "Under behandling", "Avsluttet" or "Utgår".
///
[XmlElement(ElementName = "saksstatus", Namespace = "http://www.arkivverket.no/standarder/noark5/arkivmelding", Order = 9)]
public string Saksstatus { get; set; }
///
/// Gets or sets the Type
///
[XmlAttribute(AttributeName = "type", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
public string Type { get; set; }
}
///
/// Initializes a new instance of the class.
///
[XmlTypeAttribute(TypeName = "journalpost")]
public class Basisregistrering
{
///
/// Gets or sets the SystemID
///
[XmlElement(ElementName = "systemID", Order = 1)]
public Guid SystemID { get; set; }
///
/// Gets or sets the OpprettetDato
///
[XmlElement(ElementName = "opprettetDato", Order = 2)]
public DateTime OpprettetDato { get; set; }
///
/// Gets or sets the OpprettetAv
///
[XmlElement(ElementName = "opprettetAv", Order = 3)]
public string OpprettetAv { get; set; }
///
/// Gets or sets the ReferanseForelderMappe
///
///
/// This value should refer to the SystemID of the parent folder (saksmappe).
///
[XmlElement(ElementName = "referanseForelderMappe", Order = 4)]
public Guid ReferanseForelderMappe { get; set; }
///
/// Gets or sets the Dokumentbeskrivelse
///
[XmlElement(ElementName = "dokumentbeskrivelse", Order = 5)]
public List Dokumentbeskrivelse { get; set; }
///
/// Gets or sets the Tittel
///
[XmlElement(ElementName = "tittel", Order = 6)]
public string Tittel { get; set; }
///
/// Gets or sets the OffentligTittel
///
[XmlElement(ElementName = "offentligTittel", Order = 7)]
public string OffentligTittel { get; set; }
///
/// Gets or sets the Journalposttype
/// /
///
/// The accepted values are: "Inngående dokument", "Utgående dokument","Organinternt dokument for oppfølging", "Organinternt dokument uten oppfølging" or "Saksframlegg".
///
[XmlElement(ElementName = "journalposttype", Order = 8)]
public string Journalposttype { get; set; }
///
/// Gets or sets the Journalstatus
///
///
/// The accepted values are: "Journalført", "Ferdigstilt fra saksbehandler", "Godkjent av leder", "Ekspedert", "Arkivert" or "Utgår".
///
[XmlElement(ElementName = "journalstatus", Order = 9)]
public string Journalstatus { get; set; }
///
/// Gets or sets the Journaldato
///
[XmlElement(ElementName = "journaldato", DataType = "date", Order = 10)]
public DateTime Journaldato { get; set; }
///
/// Gets or sets the Type
///
[XmlAttribute(AttributeName = "type", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
public string Type { get; set; }
///
/// Gets or sets the Text
///
[XmlText]
public string Text { get; set; }
}
///
/// Initializes a new instance of the class.
///
[XmlRoot(ElementName = "dokumentbeskrivelse")]
public class Dokumentbeskrivelse
{
///
/// Gets or sets the SystemID
///
[XmlElement(ElementName = "systemID", Order = 1)]
public Guid SystemID { get; set; }
///
/// Gets or sets the Dokumenttype
///
[XmlElement(ElementName = "dokumenttype", Order = 2)]
public string Dokumenttype { get; set; }
///
/// Gets or sets the Dokumentstatus
///
///
/// The accepted values are: "Dokumentet er under redigering" or "Dokumentet er under ferdigstilt".
///
[XmlElement(ElementName = "dokumentstatus", Order = 3)]
public string Dokumentstatus { get; set; }
///
/// Gets or sets the Tittel
///
[XmlElement(ElementName = "tittel", Order = 4)]
public string Tittel { get; set; }
///
/// Gets or sets the OpprettetDato
///
[XmlElement(ElementName = "opprettetDato", Order = 5)]
public DateTime OpprettetDato { get; set; }
///
/// Gets or sets the OpprettetAv
///
[XmlElement(ElementName = "opprettetAv", Order = 6)]
public string OpprettetAv { get; set; }
///
/// Gets or sets the TilknyttetRegistreringSom
///
///
/// The accepted values are: "Hoveddokument" or "Vedlegg".
///
[XmlElement(ElementName = "tilknyttetRegistreringSom", Order = 7)]
public string TilknyttetRegistreringSom { get; set; }
///
/// Gets or sets the Dokumentnummer
///
[XmlElement(ElementName = "dokumentnummer", Order = 8)]
public int Dokumentnummer { get; set; }
///
/// Gets or sets the TilknyttetDato
///
[XmlElement(ElementName = "tilknyttetDato", Order = 9)]
public DateTime TilknyttetDato { get; set; }
///
/// Gets or sets the TilknyttetAv
///
[XmlElement(ElementName = "tilknyttetAv", Order = 10)]
public string TilknyttetAv { get; set; }
///
/// Gets or sets the Dokumentobjekt
///
[XmlElement(ElementName = "dokumentobjekt", Order = 11)]
public Dokumentobjekt Dokumentobjekt { get; set; }
}
///
/// Initializes a new instance of the class.
///
[XmlRoot(ElementName = "dokumentobjekt")]
public class Dokumentobjekt
{
///
/// Gets or sets the Versjonsnummer
///
[XmlElement(ElementName = "versjonsnummer", Order = 1)]
public int Versjonsnummer { get; set; }
///
/// Gets or sets the Variantformat
///
///
/// The accepted values are: "Produksjonsformat", "Arkivformat" or "Dokument hvor deler av innholdet er skjermet".
///
[XmlElement(ElementName = "variantformat", Order = 2)]
public string Variantformat { get; set; }
///
/// Gets or sets the OpprettetDato
///
[XmlElement(ElementName = "opprettetDato", Order = 3)]
public DateTime OpprettetDato { get; set; }
///
/// Gets or sets the OpprettetAv
///
[XmlElement(ElementName = "opprettetAv", Order = 4)]
public string OpprettetAv { get; set; }
///
/// Gets or sets the ReferanseDokumentfil
///
[XmlElement(ElementName = "referanseDokumentfil", Order = 5)]
public string ReferanseDokumentfil { get; set; }
}
}