public static void ReferansEkle(this NihaiOzet nihaiOzet, PaketVersiyonTuru paketVersiyon, OzetAlgoritmaTuru ozetAlgoritma, byte[] ozetDegeri, Uri uri, byte[] ozetDegeriSha512 = null) { 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 (nihaiOzet.Referanslar != null && nihaiOzet.Referanslar.Count > 0) { var oncekiReferans = nihaiOzet.Referanslar.Find(p => string.Compare(p.URI, uri.ToString(), StringComparison.InvariantCultureIgnoreCase) == 0); if (oncekiReferans != default(Referans)) { nihaiOzet.Referanslar.Remove(oncekiReferans); } } else { nihaiOzet.Referanslar = new List <Referans>(); } var yeniReferans = new Referans { Ozet = Ozet.Kilavuz.OzetAlgoritmasiAta(OzetAlgoritmasi.Kilavuz.AlgoritmaAta(ozetAlgoritma).Olustur()) .OzetDegeriAta(ozetDegeri).Olustur(), URI = uri.ToString(), Type = Constants.DAHILI_PAKET_BILESENI_REFERANS_TIPI }; if (paketVersiyon == PaketVersiyonTuru.Versiyon2X) { yeniReferans.Ozet1 = Ozet.Kilavuz .OzetAlgoritmasiAta(OzetAlgoritmasi.Kilavuz.AlgoritmaAta(OzetAlgoritmaTuru.SHA512).Olustur()) .OzetDegeriAta(ozetDegeriSha512).Olustur(); } nihaiOzet.Referanslar.Add(yeniReferans); }
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); } } }