Beispiel #1
0
        static void DocumentStatus(string transactionId, string docType, string docNumber)
        {
            #region Variables de trabajo

            string   errorMessage = string.Empty;
            string   statusCode   = string.Empty;
            string   fechaText    = string.Empty;
            string   fileResp     = string.Empty;
            string   xmlContent   = string.Empty;
            string   methodName   = "DocumentStatus";
            string   pathData     = ConfigurationManager.AppSettings["pathData"];
            string   url          = ConfigurationManager.AppSettings["urlSoap"];
            string   user         = ConfigurationManager.AppSettings["username"];
            string   pwd          = ConfigurationManager.AppSettings["password"];
            string   company      = ConfigurationManager.AppSettings["company"];
            string   account      = ConfigurationManager.AppSettings["account"];
            string   connection   = ConfigurationManager.AppSettings["connection"];
            DateTime fechaHoy     = DateTime.Now;
            Dictionary <string, string> dictResult = null;

            #endregion

            fechaText    = fechaHoy.ToString("yyyyMMdd");
            pathData     = Path.Combine(pathData, fechaText);
            errorMessage = FileHelper.CreateDirectory(pathData);

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                if (IsConected())
                {
                    EmailHelper.SendEmailDBExperts(emailHCEError, emailSubject, errorMessage);
                }
            }
            else
            {
                #region Llamado al WS

                using (WSClient ws = new WSClient(url, user, pwd, company, account))
                {
                    dictResult = ws.DocumentStatus(transactionId);
                }

                statusCode   = dictResult["statusCode"];
                errorMessage = dictResult["errorMessage"];

                #endregion

                #region Archivo XML de respuesta

                fileResp   = Path.Combine(pathData, string.Format("{0}_{1}_{2}.xml", docType, docNumber, methodName));
                xmlContent = XmlHelper.ToXml(methodName, dictResult);

                xmlContent = string.Format(@"<?xml version=""1.0"" encoding=""iso-8859-1""?>{0}{1}", Environment.NewLine, xmlContent);
                FileHelper.PutFileContent(fileResp, xmlContent);

                #endregion

                #region Mensaje de error

                if (!string.IsNullOrWhiteSpace(errorMessage))
                {
                    if (IsConected())
                    {
                        if (statusCode.Equals("901"))
                        {
                            EmailHelper.SendEmailDBExperts(emailDBEError, emailSubject, xmlContent);
                        }
                        else
                        {
                            EmailHelper.SendEmailDBExperts(emailHCEError, emailSubject, xmlContent);
                        }
                    }
                }

                #endregion

                #region Acceso a DB

                string    plantilla = "EXEC [wsc].[FilesDetailStatusXml] @companyId='{0}', @accountId='{1}', @xmlContent='{2}';";
                DataSet   dsDatos   = new DataSet();
                DataTable dtStatus  = new DataTable("dtStatus");

                dsDatos.ExtendedProperties["Conexion"] = connection;
                dtStatus.ExtendedProperties["Metodo"]  = string.Format(plantilla, company, account, xmlContent);
                dsDatos.Tables.Add(dtStatus);

                dsDatos      = DataHelper.GetData(dsDatos);
                errorMessage = dsDatos.ExtendedProperties["Error"].ToString();
                if (string.IsNullOrWhiteSpace(errorMessage))
                {
                    errorMessage = dtStatus.ExtendedProperties["Error"].ToString();
                }

                #endregion
            }
        }