Ejemplo n.º 1
0
        /// <summary>
        /// error mesaj varsa doner yoksa null donup getırılen lısteyı db ye kaydeder
        /// </summary>
        public string getArchiveListOnServiceAndSaveDb()
        {
            using (new OperationContextScope(eArchiveInvoicePortClient.InnerChannel))
            {
                var req = new GetEArchiveInvoiceListRequest(); //sistemdeki gelen efatura listesi için request parametreleri
                req.REQUEST_HEADER            = RequestHeader.getRequestHeaderArchive;
                req.REQUEST_HEADER.COMPRESSED = EI.ActiveOrPasive.Y.ToString();
                req.PERIOD          = getThisMonth() + DateTime.Now.Year.ToString();
                req.REPORT_INCLUDED = true;
                req.LIMIT           = 100;
                req.REPORT_FLAG     = EI.ActiveOrPasive.Y.ToString(); //raporlananaları alıyor
                req.HEADER_ONLY     = EI.ActiveOrPasive.N.ToString();
                req.CONTENT_TYPE    = EI.DocumentType.XML.ToString();

                var response = eArchiveInvoicePortClient.GetEArchiveInvoiceList(req);

                if (response.ERROR_TYPE != null)  //error message varsa
                {
                    return(response.ERROR_TYPE.ERROR_SHORT_DES);
                }
                else //servisten arsıv getırme islemi basarılıysa
                {
                    if (response.INVOICE != null && response.INVOICE.Length > 0) //getırılen arsiv varsa
                    {
                        var archiveArrContentNotNull = response.INVOICE.Where(arc => arc.CONTENT != null).ToArray();
                        if (archiveArrContentNotNull.Length > 0)
                        {
                            string markErrorMessage = archiveMarkRead(archiveArrContentNotNull); //mark arsiv yapıldı
                            if (markErrorMessage != null)                                        //mark arsıv dan donen error message varsa
                            {
                                return(markErrorMessage);
                            }
                            //getirilen faturaları db ye kaydetme basarılı mı ... hepsı kaydedıldı mı
                            if (Singl.archiveInvoiceDalGet.addArchiveToDbAndSaveContentOnDisk(archiveArrContentNotNull) != archiveArrContentNotNull.Length)
                            {
                                return("DataBase'e kaydetme işlemi başarısız");
                            }
                        }

                        return(null); //hiçbir hata yoksa null don
                    }
                    return(null);     //arsıv sayısı 0 ancak hata yok
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// EGER DİSKE YAZDIGIM XML DOSYASI SILINMIS ISE SILINEN ARCHİVEİN CONTENTINI DISKE YAZMAK ICIN TEKRAR CAGIRIRIM
        /// </summary>
        public string getArchiveWithUuidOnService(string uuid)
        {
            using (new OperationContextScope(eArchiveInvoicePortClient.InnerChannel))
            {
                var req = new GetEArchiveInvoiceListRequest();
                req.REQUEST_HEADER            = RequestHeader.getRequestHeaderArchive;
                req.REQUEST_HEADER.COMPRESSED = EI.ActiveOrPasive.Y.ToString();
                req.UUID          = uuid;
                req.HEADER_ONLY   = EI.ActiveOrPasive.N.ToString();
                req.CONTENT_TYPE  = EI.DocumentType.XML.ToString();
                req.READ_INCLUDED = true.ToString();  //daha onceden cektıgımız ıcın mark ınv yapılmıstır o yuzden true

                EARCHIVEINV[] archiveArray = eArchiveInvoicePortClient.GetEArchiveInvoiceList(req).INVOICE;

                if (archiveArray != null && archiveArray.Length != 0 && archiveArray[0].CONTENT != null)
                {
                    //getirilen faturanın contentını zipten cıkar,string halınde dondur
                    return(Encoding.UTF8.GetString(Compress.UncompressFile(archiveArray[0].CONTENT.Value)));
                }
                return(null);
            }
        }