Example #1
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);
        }