Пример #1
0
    protected bool CmsCompleteProcess()
    {
        EFDal ed = new EFDal();
        string tut = Session["ImzalanacakBelgelerinIdleri"].ToString();
        string[] ImzalanacakDosyaIdler = tut.Split(',');

        bool sonuc = true;
        try
        {
            string detachedAllDataB64 = hidDetached64Data.Value;
            string[] detachedSigned = detachedAllDataB64.Split('é');

            for (int i = 0; i < detachedSigned.Length; i++)
            {
                ServiceCMS client = new ServiceCMS();
                CmsSignatureRequestType request = new CmsSignatureRequestType();

                decimal evrakBelgeID = EgaTransIdler.Keys.ElementAt(i);
                string egatransid = string.Empty;
                EgaTransIdler.TryGetValue(evrakBelgeID, out egatransid);
                request.EgaTransId = egatransid;
                request.ReqAppId = "12345";

                byte[] bytedata = File.ReadAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])));

                request.OriginalDataSha1Hash = SHA1Managed.Create().ComputeHash(bytedata);
                request.ArchiveType = ImzaTipi.ESXLONG;
                request.ArchiveTypeSpecified = true;
                request.SignedData = detachedSigned[i];
                request.ZdParameters = new GeneralTypesZamanDamgasiType();
                request.ZdParameters.ZdUrl = ConfigurationManager.AppSettings["ZdUrl"].ToString();
                request.ZdParameters.ZdUserName = ConfigurationManager.AppSettings["ZdUserName"].ToString();
                request.ZdParameters.ZdPassword = ConfigurationManager.AppSettings["ZdPassword"].ToString();
                request.ZdParameters.ZdProvider = ConfigurationManager.AppSettings["ZdProvider"].ToString();
                CmsSignatureResponseType response = client.ProcessSignature(request);
                if (response.ResponseInfo.ResultCode == GeneralTypesResultCodeType.Successful)
                {

                    Byte[] bak = response.SignedCms;
                    File.WriteAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])), bak);

                    //Burada mutlaka verştabanını ilgili personel imzaladı olarak update etmek gerekiyor..kapak ve veri dosyalarınının birleştirilmesi sırasında imza bekliyor olarak eklenmişti personel
                    //Burada mutlaka verştabanına bir işaret atmak gerekli kimler imzalamış, belki nereyi imzalmış bilgisi de olmalı
                    int ImzaliDosyalarId = 0;
                    string kullaniciAdi = Context.User.Identity.Name;
                    Guid ImzalamasiGerekenPersonel=new Guid();
                    ImzalamasiGerekenPersonel = ed.UserNamedenPersonelUNDon(kullaniciAdi);
                    bool PersonelImzalamismi = true;
                    ImzaliDosyalarId = Convert.ToInt32(ImzalanacakDosyaIdler[i]);
                    int IstId = ed.imzaliDosyalarIddenIstIdDon(Convert.ToInt32(ImzalanacakDosyaIdler[i]));

                    //Bir kalibrasyonu yapanı  dah once ekelimişti onu imzaladı olarak güncelle, imza tarihini de güncelle
                    //bool basarimKalYapanEkleme=ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), ImzalamasiGerekenPersonel, PersonelImzalamismi,true,IstId);
                    bool basarimImzaBekleyenDokumaniGuncelle = ed.ImzaBekleyenDokumaniGuncelle(ImzaliDosyalarId,ImzalamasiGerekenPersonel);

                    //Bir de birim müdürünü ekle Imzalaması gerekli diye ImzaBej-kleyenler tablosuna kalibrasyonu yapan imzalarken düştü zaten

                    Guid birimAmiri = new System.Guid();
                    birimAmiri=ed.BirimAmiriDon(ed.kal_BolgeKoduDon(kullaniciAdi));
                    if (ImzalamasiGerekenPersonel != birimAmiri)
                    {
                        PersonelImzalamismi = false;
                        bool basarimMudurEkleme = ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), birimAmiri, PersonelImzalamismi, true, IstId);
                    }
                    DataSet ds = ed.spIsteginTumImzaIsleriTamamMi(IstId);
                    if (ds.Tables[0].Rows.Count == 0) //Yani imzalanmamış istek kalemi kalmamış
                    {
                        ed.ImzaIsleriTamamlanmisIsteklereEkle(Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["IstekNo"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["BolgeKodu"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["YIL"].ToString()));
                    }
                }
                else
                {
                    lblError.Text = response.ResponseInfo.ResultMessage;
                    sonuc = false;
                }

            }
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
            sonuc = false;
        }
        return sonuc;
    }
Пример #2
0
    protected bool CmsCompleteProcess()
    {
        EFDal  ed  = new EFDal();
        string tut = Session["ImzalanacakBelgelerinIdleri"].ToString();

        string[] ImzalanacakDosyaIdler = tut.Split(',');

        bool sonuc = true;

        try
        {
            string   detachedAllDataB64 = hidDetached64Data.Value;
            string[] detachedSigned     = detachedAllDataB64.Split('é');

            for (int i = 0; i < detachedSigned.Length; i++)
            {
                ServiceCMS client = new ServiceCMS();
                CmsSignatureRequestType request = new CmsSignatureRequestType();

                decimal evrakBelgeID = EgaTransIdler.Keys.ElementAt(i);
                string  egatransid   = string.Empty;
                EgaTransIdler.TryGetValue(evrakBelgeID, out egatransid);
                request.EgaTransId = egatransid;
                request.ReqAppId   = "12345";

                byte[] bytedata = File.ReadAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])));

                request.OriginalDataSha1Hash    = SHA1Managed.Create().ComputeHash(bytedata);
                request.ArchiveType             = ImzaTipi.ESXLONG;
                request.ArchiveTypeSpecified    = true;
                request.SignedData              = detachedSigned[i];
                request.ZdParameters            = new GeneralTypesZamanDamgasiType();
                request.ZdParameters.ZdUrl      = ConfigurationManager.AppSettings["ZdUrl"].ToString();
                request.ZdParameters.ZdUserName = ConfigurationManager.AppSettings["ZdUserName"].ToString();
                request.ZdParameters.ZdPassword = ConfigurationManager.AppSettings["ZdPassword"].ToString();
                request.ZdParameters.ZdProvider = ConfigurationManager.AppSettings["ZdProvider"].ToString();
                CmsSignatureResponseType response = client.ProcessSignature(request);
                if (response.ResponseInfo.ResultCode == GeneralTypesResultCodeType.Successful)
                {
                    Byte[] bak = response.SignedCms;
                    File.WriteAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])), bak);


                    //Burada mutlaka verştabanını ilgili personel imzaladı olarak update etmek gerekiyor..kapak ve veri dosyalarınının birleştirilmesi sırasında imza bekliyor olarak eklenmişti personel
                    //Burada mutlaka verştabanına bir işaret atmak gerekli kimler imzalamış, belki nereyi imzalmış bilgisi de olmalı
                    int    ImzaliDosyalarId          = 0;
                    string kullaniciAdi              = Context.User.Identity.Name;
                    Guid   ImzalamasiGerekenPersonel = new Guid();
                    ImzalamasiGerekenPersonel = ed.UserNamedenPersonelUNDon(kullaniciAdi);
                    bool PersonelImzalamismi = true;
                    ImzaliDosyalarId = Convert.ToInt32(ImzalanacakDosyaIdler[i]);
                    int IstId = ed.imzaliDosyalarIddenIstIdDon(Convert.ToInt32(ImzalanacakDosyaIdler[i]));

                    //Bir kalibrasyonu yapanı  dah once ekelimişti onu imzaladı olarak güncelle, imza tarihini de güncelle
                    //bool basarimKalYapanEkleme=ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), ImzalamasiGerekenPersonel, PersonelImzalamismi,true,IstId);
                    bool basarimImzaBekleyenDokumaniGuncelle = ed.ImzaBekleyenDokumaniGuncelle(ImzaliDosyalarId, ImzalamasiGerekenPersonel);

                    //Bir de birim müdürünü ekle Imzalaması gerekli diye ImzaBej-kleyenler tablosuna kalibrasyonu yapan imzalarken düştü zaten

                    Guid birimAmiri = new System.Guid();
                    birimAmiri = ed.BirimAmiriDon(ed.kal_BolgeKoduDon(kullaniciAdi));
                    if (ImzalamasiGerekenPersonel != birimAmiri)
                    {
                        PersonelImzalamismi = false;
                        bool basarimMudurEkleme = ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), birimAmiri, PersonelImzalamismi, true, IstId);
                    }
                    DataSet ds = ed.spIsteginTumImzaIsleriTamamMi(IstId);
                    if (ds.Tables[0].Rows.Count == 0) //Yani imzalanmamış istek kalemi kalmamış
                    {
                        ed.ImzaIsleriTamamlanmisIsteklereEkle(Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["IstekNo"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["BolgeKodu"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["YIL"].ToString()));
                    }
                }
                else
                {
                    lblError.Text = response.ResponseInfo.ResultMessage;
                    sonuc         = false;
                }
            }
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
            sonuc         = false;
        }
        return(sonuc);
    }