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); }
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); } }
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); }
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); }
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(); }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
public static bool MuhurExists(this Package package, PaketVersiyonTuru paketVersiyon) { return(package.PartExists(paketVersiyon == PaketVersiyonTuru.Versiyon1X ? Constants.URI_MUHUR_V1X : Constants.URI_MUHUR_V2X)); }