Beispiel #1
0
 public static EETService.TrzbaHlavickaType Convert(IEETHeader hlavicka)
 {
     return(new EETService.TrzbaHlavickaType
     {
         overeni = hlavicka.Check.HasValue ? true : false,
         overeniSpecified = hlavicka.Check.HasValue,
         prvni_zaslani = hlavicka.FirstSend,
         dat_odesl = new DateTime(hlavicka.SendDate.Year, hlavicka.SendDate.Month, hlavicka.SendDate.Day, hlavicka.SendDate.Hour, hlavicka.SendDate.Minute, hlavicka.SendDate.Second, DateTimeKind.Local),
         uuid_zpravy = hlavicka.UUID
     });
 }
Beispiel #2
0
        /// <summary>
        /// Create EET xml
        /// </summary>
        /// <param name="data">body data</param>
        /// <param name="header">header data</param>
        /// <param name="control">control data - pkp and bkp</param>
        /// <param name="certificatePath">path to certificate</param>
        /// <param name="serviceNamespace">service namespace</param>
        /// <returns></returns>
        public string CreateXml(IEETData data, IEETHeader header, EETControl control, string serviceNamespace)
        {
            var          trzba = new Trzba(Converters.HeaderConverter.Convert(header), Converters.DataConverter.Convert(data), Converters.ControlConverter.Convert(control));
            XmlDocument  doc   = new XmlDocument();
            MemoryStream ms    = new MemoryStream();

            new XmlSerializer(typeof(Trzba)).Serialize(ms, trzba);
            ms.Position = 0;
            using (StreamReader rd = new StreamReader(ms))
            {
                doc.LoadXml(rd.ReadToEnd());
            }
            XmlNode      node = doc.SelectSingleNode("//*[local-name()='Trzba']");
            XmlAttribute xa   = doc.CreateAttribute("xmlns");

            xa.Value = serviceNamespace;
            node.Attributes.Append(xa);
            var xmlRequest = node.OuterXml;

            return(SignMessage(xmlRequest, signatureManager.GetCertificate()));
        }
Beispiel #3
0
        public IEETResponse SendRequest(IEETHeader header, IEETData data, string certificatePath = null, string certificatePassword = null)
        {
            certificatePath     = certificatePath ?? ConfigurationManager.AppSettings["eet.net.certificatePath"];
            certificatePassword = certificatePassword ?? ConfigurationManager.AppSettings["eet.net.certificatePass"];

            var signatureManager = new EETSignature(certificatePath, certificatePassword);

            var xmlCreator  = new XmlCreator(signatureManager);
            var request     = new WebRequestProvider();
            var serviceInfo = ServiceInfo.GetServiceInfo();

            var pkp     = signatureManager.CreatePKP(data);
            var bkp     = signatureManager.CreateBKP(pkp);
            var control = new EETControl {
                PKP = new PkpElement {
                    Text = new string[] { pkp }
                }, BKP = new BkpElement {
                    Text = new string[] { bkp }
                }
            };
            EETResponse eetResponse;

            try
            {
                var xml      = xmlCreator.CreateXml(data, header, control, serviceInfo.ServiceNamespace);
                var response = request.CallWebService(ConfigurationManager.AppSettings["eet.net.url"], serviceInfo.Action, xml);

                eetResponse = new EETResponse {
                    Response = response, Request = xml, BKP = bkp, PKP = pkp
                };
                var confirm = response.XmlDeserializeFromString <EETResponseModel>();
                if (confirm == null)
                {
                    eetResponse.Message  = "Nevalidní zpráva ze serveru";
                    eetResponse.HasError = true;
                }
                else
                {
                    eetResponse.ResponseModel = confirm;
                    if (confirm.Body.Odpoved.Chyba == null)
                    {
                        eetResponse.HasError = false;
                        eetResponse.Fik      = confirm.Body.Odpoved.Potvrzeni.fik;
                        eetResponse.EETDate  = confirm.Body.Odpoved.Hlavicka.dat_prij;
                        eetResponse.Message  = string.Format("FIK {0}, BKP {1}, PKP {2}", eetResponse.Fik, eetResponse.BKP, eetResponse.PKP);
                    }
                    else
                    {
                        eetResponse.HasError = true;
                        eetResponse.Message  = string.Format("{0} ({1})", confirm.Body.Odpoved.Chyba.Value, confirm.Body.Odpoved.Chyba.kod);
                    }
                    if (confirm.Body.Odpoved.Varovani != null)
                    {
                        eetResponse.Warning = string.Format("{0} ({1})", confirm.Body.Odpoved.Varovani.Value, confirm.Body.Odpoved.Varovani.kod_varov);
                    }
                }
            }
            catch (WebException ex)
            {
                Trace.WriteLine(ex.ToString());
                eetResponse          = new EETResponse();
                eetResponse.HasError = true;
                eetResponse.Message  = "Nepodařilo se připojit k serveru";
            }
            catch (Exception ex)
            {
                eetResponse          = new EETResponse();
                eetResponse.HasError = true;
                eetResponse.Message  = "Chyba při zpracování odpovědi. " + ex.Message;
            }

            return(eetResponse);
        }