Example #1
0
        private async Task ROSASTradeAsync(SoapDocument soapDocument)
        {
            string message = string.Empty;
            string xmlStr  = soapDocument.Args.FirstOrDefault(o => o.LocalName == "serviceParas")?.Value;

            try
            {
                var xmlServiceParas = XmlConvert.DeserializeObject <HebeiESBServiceParas>(xmlStr);

                if (xmlServiceParas == null || xmlServiceParas.ProvinceData.Count() == 0)
                {
                    throw new Exception("解析serviceParas失败");
                }

                bool isSuccess = true;
                var  ftpConfig = AppSettings.FtpSection.FirstOrDefault(o => o.Provider == "HebeiESB");
                foreach (var p in xmlServiceParas.ProvinceData)
                {
                    if (string.IsNullOrWhiteSpace(p.Path))
                    {
                        continue;
                    }
                    var success = await FtpUtil.Download(new FtpConfig
                    {
                        Host           = p.Ip,
                        UserName       = p.User,
                        Password       = p.Password,
                        Port           = 21,
                        RemotePath     = p.Path,
                        BaseDirectory  = ftpConfig.BaseDirectory,
                        LocalDirectory = ftpConfig.LocalDirectory,
                        RenameFormat   = ftpConfig.RenameFormat,
                        CategoryMaps   = ftpConfig.CategoryMaps
                    });

                    isSuccess &= success;
                    string successString = success ? "成功" : "失败";
                    message += string.Format($"下载{successString}:ftp://{p.User}:{p.Password}@{p.Ip}{p.Path}", p, successString);
                }

                if (!isSuccess)
                {
                    await ErrorRequestAsync(null, message);
                }
                else
                {
                    await SuccessRequestAsync(null, message : message);
                }
            }
            catch (Exception ex)
            {
                Logger.Error($"[HBESBService]ROSASTrade异常:--{ex.Message}", ex);
                await ErrorRequestAsync(null, ex.Message);
            }
        }