Beispiel #1
0
 public static Stream GetMuhurStream(this Package package, PaketVersiyonTuru paketVersiyon)
 {
     return(package.MuhurExists(paketVersiyon)
         ? package.GetPartStream(paketVersiyon == PaketVersiyonTuru.Versiyon1X
             ? Constants.URI_MUHUR_V1X
             : Constants.URI_MUHUR_V2X)
         : null);
 }
        public static void ReferansEkle(this PaketOzeti paketOzeti,
                                        PaketVersiyonTuru paketVersiyon,
                                        OzetAlgoritmaTuru ozetAlgoritma,
                                        byte[] ozetDegeri,
                                        Uri uri,
                                        byte[] ozetDegeriSha512 = null,
                                        bool hariciBilesenMi    = false)
        {
            if (ozetAlgoritma == OzetAlgoritmaTuru.YOK)
            {
                throw new ArgumentException(
                          nameof(ozetAlgoritma) + " değeri " + nameof(OzetAlgoritmaTuru.YOK) + " olmamalıdır.",
                          nameof(ozetAlgoritma));
            }
            if (ozetAlgoritma == OzetAlgoritmaTuru.SHA384 && paketVersiyon == PaketVersiyonTuru.Versiyon1X)
            {
                throw new ArgumentException(
                          nameof(OzetAlgoritmaTuru.SHA384) +
                          " özet algoritması yalnızca e-Yazışma API 2.X versiyonlarında kullanılabilir.",
                          nameof(ozetAlgoritma));
            }

            if (paketOzeti.Referanslar != null && paketOzeti.Referanslar.Count > 0)
            {
                var oncekiReferans = paketOzeti.Referanslar.Find(p =>
                                                                 string.Compare(p.URI, uri.ToString(), StringComparison.InvariantCultureIgnoreCase) == 0);
                if (oncekiReferans != default(Referans))
                {
                    paketOzeti.Referanslar.Remove(oncekiReferans);
                }
            }
            else
            {
                paketOzeti.Referanslar = new List <Referans>();
            }

            var yeniReferans = new Referans
            {
                Ozet = Ozet.Kilavuz.OzetAlgoritmasiAta(OzetAlgoritmasi.Kilavuz.AlgoritmaAta(ozetAlgoritma).Olustur())
                       .OzetDegeriAta(ozetDegeri).Olustur(),
                URI  = uri.ToString(),
                Type = hariciBilesenMi
                    ? Constants.HARICI_PAKET_BILESENI_REFERANS_TIPI
                    : Constants.DAHILI_PAKET_BILESENI_REFERANS_TIPI
            };

            if (paketVersiyon == PaketVersiyonTuru.Versiyon2X)
            {
                yeniReferans.Ozet1 = Ozet.Kilavuz
                                     .OzetAlgoritmasiAta(OzetAlgoritmasi.Kilavuz.AlgoritmaAta(OzetAlgoritmaTuru.SHA512).Olustur())
                                     .OzetDegeriAta(ozetDegeriSha512).Olustur();
            }

            paketOzeti.Referanslar.Add(yeniReferans);
        }
Beispiel #3
0
        public static void DeleteMuhur(this Package package, PaketVersiyonTuru paketVersiyon)
        {
            var partMuhurUri = paketVersiyon == PaketVersiyonTuru.Versiyon1X
                ? Constants.URI_MUHUR_V1X
                : Constants.URI_MUHUR_V2X;

            if (package.MuhurExists(paketVersiyon))
            {
                package.DeletePart(partMuhurUri);
                package.GetPart(Constants.URI_NIHAIOZET).DeleteRelationship(Constants.ID_MUHUR);
            }
        }
Beispiel #4
0
        public static void AddMuhur(this Package package, byte[] muhur, PaketVersiyonTuru paketVersiyon)
        {
            var partMuhurUri = paketVersiyon == PaketVersiyonTuru.Versiyon1X
                ? Constants.URI_MUHUR_V1X
                : Constants.URI_MUHUR_V2X;

            var partMuhur = package.CreatePart(partMuhurUri, Constants.MIME_OCTETSTREAM, CompressionOption.Maximum);

            partMuhur.AddToPartStream(muhur);
            package.GetPart(Constants.URI_NIHAIOZET).CreateRelationship(
                PackUriHelper.GetRelativeUri(Constants.URI_NIHAIOZET, partMuhurUri), TargetMode.Internal,
                Constants.RELATION_TYPE_MUHUR, Constants.ID_MUHUR);
        }
Beispiel #5
0
        public static void AddSifreliIcerik(this Package package, Stream sifreliIcerikStream, Guid paketId,
                                            PaketVersiyonTuru paketVersiyon)
        {
            var partSifreliIcerikUri = new Uri(
                string.Format(
                    paketVersiyon == PaketVersiyonTuru.Versiyon1X
                        ? Constants.URI_FORMAT_SIFRELIICERIK_V1X_STRING
                        : Constants.URI_FORMAT_SIFRELIICERIK_V2X_STRING,
                    Uri.EscapeDataString(paketId.ToString().ToUpperInvariant())), UriKind.Relative);
            var partSifreliIcerik =
                package.CreatePart(partSifreliIcerikUri, Constants.MIME_PKCS7MIME, CompressionOption.Maximum);

            sifreliIcerikStream.Position = 0;
            partSifreliIcerik.AddToPartStream(sifreliIcerikStream);
            package.CreateRelationship(partSifreliIcerik.Uri, TargetMode.Internal,
                                       Constants.RELATION_TYPE_SIFRELIICERIK, Constants.ID_SIFRELIICERIK);
        }
Beispiel #6
0
 public static void GenerateCore(this Package package, Ustveri ustveri, PaketVersiyonTuru paketVersiyon)
 {
     package.PackageProperties.Identifier = ustveri.BelgeId.ToString().ToUpperInvariant();
     if (!package.PackageProperties.Created.HasValue)
     {
         package.PackageProperties.Created = DateTime.Now;
     }
     package.PackageProperties.Creator     = ustveri.Olusturan.GenerateOlusturanAd();
     package.PackageProperties.Subject     = ustveri.Konu.Deger;
     package.PackageProperties.Category    = Constants.PAKET_KATEGORI;
     package.PackageProperties.ContentType = Constants.PAKET_MIMETURU;
     package.PackageProperties.Version     = paketVersiyon == PaketVersiyonTuru.Versiyon1X
         ? Constants.PAKET_VERSIYON_V1X
         : Constants.PAKET_VERSIYON_V2X;
     package.PackageProperties.Revision = string.Format(Constants.PAKET_REVIZYON,
                                                        Assembly.GetAssembly(typeof(Paket)).GetName().Version);
     package.Flush();
 }
Beispiel #7
0
        public static void GenerateUstveri(this Package package, Ustveri ustveri, PaketVersiyonTuru paketVersiyon)
        {
            if (ustveri != null)
            {
                string nsString      = null;
                object ustveriObject = null;
                Type   ustveriType   = null;

                switch (paketVersiyon)
                {
                case PaketVersiyonTuru.Versiyon1X:
                {
                    ustveriObject = ustveri.V1XCT_Ustveri();
                    nsString      = "urn:dpt:eyazisma:schema:xsd:Tipler-1";
                    ustveriType   = typeof(CT_Ustveri);
                    break;
                }

                case PaketVersiyonTuru.Versiyon2X:
                {
                    ustveriObject = ustveri.V2XCT_Ustveri();
                    nsString      = "urn:dpt:eyazisma:schema:xsd:Tipler-2";
                    ustveriType   = typeof(Api.V2X.CT_Ustveri);
                    break;
                }
                }

                var partUstveri =
                    package.CreatePart(Constants.URI_USTVERI, Constants.MIME_XML, CompressionOption.Normal);
                package.CreateRelationship(partUstveri.Uri, TargetMode.Internal, Constants.RELATION_TYPE_USTVERI,
                                           Constants.ID_USTVERI);

                var ns = new XmlSerializerNamespaces();
                ns.Add("tipler", nsString);
                var xmlSerializer = new XmlSerializer(ustveriType);
                using (var xmlTextWriter = new XmlTextWriter(partUstveri.GetStream(), Encoding.UTF8)
                {
                    Formatting = Formatting.Indented
                })
                {
                    xmlSerializer.Serialize(xmlTextWriter, ustveriObject, ns);
                }
            }
        }
Beispiel #8
0
        public static void GenerateBelgeHedef(this Package package, BelgeHedef belgeHedef,
                                              PaketVersiyonTuru paketVersiyon)
        {
            if (belgeHedef != null && belgeHedef.Hedefler != null && belgeHedef.Hedefler.Count > 0)
            {
                object belgeHedefObject = null;
                Type   belgeHedefType   = null;
                string nsString         = null;

                switch (paketVersiyon)
                {
                case PaketVersiyonTuru.Versiyon1X:
                {
                    belgeHedefObject = belgeHedef.ToV1XCT_BelgeHedef();
                    belgeHedefType   = typeof(CT_BelgeHedef);
                    nsString         = "urn:dpt:eyazisma:schema:xsd:Tipler-1";
                    break;
                }

                case PaketVersiyonTuru.Versiyon2X:
                {
                    belgeHedefObject = belgeHedef.ToV2XCT_BelgeHedef();
                    belgeHedefType   = typeof(Api.V2X.CT_BelgeHedef);
                    nsString         = "urn:dpt:eyazisma:schema:xsd:Tipler-2";
                    break;
                }
                }

                var partBelgeHedef = package.CreatePart(Constants.URI_BELGEHEDEF, Constants.MIME_XML,
                                                        CompressionOption.Maximum);
                package.CreateRelationship(partBelgeHedef.Uri, TargetMode.Internal, Constants.RELATION_TYPE_BELGEHEDEF,
                                           Constants.ID_BELGEHEDEF);
                var xmlSerializer = new XmlSerializer(belgeHedefType);
                var ns            = new XmlSerializerNamespaces();
                ns.Add("tipler", nsString);
                using (var xmlTextWriter = new XmlTextWriter(partBelgeHedef.GetStream(), Encoding.UTF8)
                {
                    Formatting = Formatting.Indented
                })
                {
                    xmlSerializer.Serialize(xmlTextWriter, belgeHedefObject, ns);
                }
            }
        }
Beispiel #9
0
        public static void GenerateSifreliIcerikBilgisi(this Package package, SifreliIcerikBilgisi sifreliIcerikBilgisi,
                                                        PaketVersiyonTuru paketVersiyon)
        {
            if (sifreliIcerikBilgisi != null)
            {
                object sifreliIcerikBilgisiObject = null;
                Type   sifreliIcerikBilgisiType   = null;

                switch (paketVersiyon)
                {
                case PaketVersiyonTuru.Versiyon1X:
                {
                    sifreliIcerikBilgisiObject = sifreliIcerikBilgisi.ToV1XCT_SifreliIcerikBilgisi();
                    sifreliIcerikBilgisiType   = typeof(CT_SifreliIcerikBilgisi);
                    break;
                }

                case PaketVersiyonTuru.Versiyon2X:
                {
                    sifreliIcerikBilgisiObject = sifreliIcerikBilgisi.ToV2XCT_SifreliIcerikBilgisi();
                    sifreliIcerikBilgisiType   = typeof(Api.V2X.CT_SifreliIcerikBilgisi);
                    break;
                }
                }

                var partSifreliIcerikBilgisi = package.CreatePart(Constants.URI_SIFRELIICERIKBILGISI,
                                                                  Constants.MIME_XML, CompressionOption.Maximum);
                package.CreateRelationship(partSifreliIcerikBilgisi.Uri, TargetMode.Internal,
                                           Constants.RELATION_TYPE_SIFRELIICERIKBILGISI, Constants.ID_SIFRELIICERIKBILGISI);
                var xmlSerializer = new XmlSerializer(sifreliIcerikBilgisiType);
                using (var xmlTextWriter = new XmlTextWriter(partSifreliIcerikBilgisi.GetStream(), Encoding.UTF8)
                {
                    Formatting = Formatting.Indented
                })
                {
                    xmlSerializer.Serialize(xmlTextWriter, sifreliIcerikBilgisiObject);
                }
            }
        }
Beispiel #10
0
        public static void GeneratePaketOzeti(this Package package, PaketOzeti paketOzeti,
                                              PaketVersiyonTuru paketVersiyon)
        {
            if (paketOzeti != null && paketOzeti.Referanslar != null && paketOzeti.Referanslar.Count > 0)
            {
                object paketOzetiObject = null;
                Type   paketOzetiType   = null;

                switch (paketVersiyon)
                {
                case PaketVersiyonTuru.Versiyon1X:
                {
                    paketOzetiObject = paketOzeti.ToV1XCT_PaketOzeti();
                    paketOzetiType   = typeof(CT_PaketOzeti);
                    break;
                }

                case PaketVersiyonTuru.Versiyon2X:
                {
                    paketOzetiObject = paketOzeti.ToV2XCT_PaketOzeti();
                    paketOzetiType   = typeof(Api.V2X.CT_PaketOzeti);
                    break;
                }
                }

                var partPaketOzeti = package.CreatePart(Constants.URI_PAKETOZETI, Constants.MIME_XML,
                                                        CompressionOption.Maximum);
                package.CreateRelationship(partPaketOzeti.Uri, TargetMode.Internal, Constants.RELATION_TYPE_PAKETOZETI,
                                           Constants.ID_PaketOzeti);
                var xmlSerializer = new XmlSerializer(paketOzetiType);
                using (var xmlTextWriter = new XmlTextWriter(partPaketOzeti.GetStream(), Encoding.UTF8)
                {
                    Formatting = Formatting.Indented
                })
                {
                    xmlSerializer.Serialize(xmlTextWriter, paketOzetiObject);
                }
            }
        }
Beispiel #11
0
        public static void GenerateNihaiOzet(this Package package, NihaiOzet nihaiOzet, PaketVersiyonTuru paketVersiyon)
        {
            if (nihaiOzet != null && nihaiOzet.Referanslar != null && nihaiOzet.Referanslar.Count > 0)
            {
                object nihaiOzetObject = null;
                Type   nihaiOzetType   = null;

                switch (paketVersiyon)
                {
                case PaketVersiyonTuru.Versiyon1X:
                {
                    nihaiOzetObject = nihaiOzet.ToV1XCT_NihaiOzet();
                    nihaiOzetType   = typeof(CT_NihaiOzet);
                    break;
                }

                case PaketVersiyonTuru.Versiyon2X:
                {
                    nihaiOzetObject = nihaiOzet.ToV2XCT_NihaiOzet();
                    nihaiOzetType   = typeof(Api.V2X.CT_NihaiOzet);
                    break;
                }
                }

                var partNihaiOzet = package.CreatePart(Constants.URI_NIHAIOZET, Constants.MIME_XML,
                                                       CompressionOption.Maximum);
                package.CreateRelationship(partNihaiOzet.Uri, TargetMode.Internal, Constants.RELATION_TYPE_NIHAIOZET,
                                           Constants.ID_NIHAIOZET);
                var xmlSerializer = new XmlSerializer(nihaiOzetType);
                using (var xmlTextWriter = new XmlTextWriter(partNihaiOzet.GetStream(), Encoding.UTF8)
                {
                    Formatting = Formatting.Indented
                })
                {
                    xmlSerializer.Serialize(xmlTextWriter, nihaiOzetObject);
                }
            }
        }
Beispiel #12
0
 public static bool MuhurExists(this Package package, PaketVersiyonTuru paketVersiyon)
 {
     return(package.PartExists(paketVersiyon == PaketVersiyonTuru.Versiyon1X
         ? Constants.URI_MUHUR_V1X
         : Constants.URI_MUHUR_V2X));
 }