Example #1
0
 public static string TrimBytes(this string input, int maxLength)
 {
     return(new string(input
                       .TakeWhile((c, i) =>
                                  ShiftJIS.GetByteCount(input.Substring(0, i + 1)) <= maxLength)
                       .ToArray()));
 }
Example #2
0
        public override string Csv()
        {
            SignIn();
            Reach();

            var address = FMWW.Core.Helpers.UrlBuilder.BuildContentsUrl("NA250_SALES_PRESENT_TTL/NA250_SELECT.jsp");
            //_Client.UploadValues(address, c.Translate(true));
            //_Client.AjaxForSearch(Core.Client.BuildUrl(address.AbsolutePath.Replace("faces", "facesAjax")));
            var javascript = Encoding.UTF8.GetString(_Client.UploadValues(address, PageContext.Translate(true)));

            if (!FMWW.Http.Client.IsFin(javascript))
            {
                var polling = new FMWW.Core.Polling(_Client);
                polling.Wait(FMWW.Core.Helpers.UrlBuilder.Build(address.AbsolutePath.Replace("faces", "facesAjax")),
                             () =>
                {
                    return(new System.Collections.Specialized.NameValueCollection()
                    {
                        { "form1:isAjaxMode", "1" },
                        { "form1", "form1" },
                        { "form1:execute", "execute" },
                        { "cache", FMWW.Utility.UnixEpochTime.now().ToString() },
                    });
                });
            }

            var buf = _Client.UploadValues(address, PageContext.Translate());

            return(ShiftJIS.GetString(buf));
        }
Example #3
0
        public override string Csv()
        {
            SignIn();
            Reach();
            var resData = this._Client.UploadValues(address, CreateExportQuery());

            return(ShiftJIS.GetString(resData));
        }
Example #4
0
        public override string Csv()
        {
            SignIn();
            Reach();

            var context = this.PageContext ?? new Context();
            var resData = _Client.UploadValues(UrlX024Select, context.Translate());
            var html    = ShiftJIS.GetString(resData);

            Debug.WriteLine(html);
            return(html);
        }
Example #5
0
        private void DownloadDistributeExportWithCsvAsync(Context context, Action <string> completed)
        {
            UploadValuesCompletedEventHandler onUploadValuesCompleted = null;

            onUploadValuesCompleted = (o, args) =>
            {
                this._Client.UploadValuesCompleted -= onUploadValuesCompleted;
                var csv = ShiftJIS.GetString(args.Result);
                completed(csv);
            };

            this._Client.UploadValuesAsync(
                FMWW.Core.Helpers.UrlBuilder.Build("/JMODE_ASP/faces/contents/X024_160_DISTRIBUTE_EXPORT/X024_SELECT.jsp"),
                FMWW.Http.Method.Post, context.Translate());
            this._Client.UploadValuesCompleted += onUploadValuesCompleted;
        }
Example #6
0
        public void ReachAsync()
        {
            SignIn();

            UploadValuesCompletedEventHandler onUploadValuesCompleted = null;

            onUploadValuesCompleted = new UploadValuesCompletedEventHandler(
                (o, args) =>
            {
                _Client.UploadValuesCompleted -= onUploadValuesCompleted;
                HtmlText = ShiftJIS.GetString(args.Result);
                if (null != Reached)
                {
                    Reached();
                }
            });
            _Client.UploadValuesCompleted += onUploadValuesCompleted;
            _Client.UploadValuesAsync(FMWW.Core.MainMenu.Url, "POST", MainMenuFactory.CreateInstance().Translate());
        }
Example #7
0
        public override string Csv()
        {
            SignIn();
            // メインメニュー 在庫照会->照会
            byte[] resData = this._Client.UploadValues(FMWW.Core.MainMenu.Url, MainMenuFactory.CreateInstance().Translate());
            var    _html   = ShiftJIS.GetString(resData);

            // 在庫検索
            var           nvc = PageContext.Translate();
            List <string> aa  = new List <string>();

            foreach (string key in nvc.Keys)
            {
                var enc    = Encoding.GetEncoding("shift-jis");
                var editor = new StringBuilder();
                editor.AppendFormat("{0}={1}", HttpUtility.UrlEncode(key, enc), HttpUtility.UrlEncode(nvc[key], enc));
                aa.Add(editor.ToString());
            }
            var query_ = Encoding.ASCII.GetBytes(String.Join("&", aa));

            this._Client.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
            resData = this._Client.UploadData(FMWW.Core.Helpers.UrlBuilder.Build("/JMODE_ASP/faces/contents/S300_STOCK/S300_SELECT.jsp"), query_);
            _html   = Encoding.GetEncoding("shift-jis").GetString(resData);

            // 在庫一覧
            this._Client.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
            resData = this._Client.UploadData(FMWW.Core.Helpers.UrlBuilder.Build("/JMODE_ASP/SlipList2Servlet"), Encoding.ASCII.GetBytes("mode=0&cache=" + FMWW.Core.Helpers.Ajax.TimeStamp()));
            _html   = Encoding.UTF8.GetString(resData);
            if (Regex.IsMatch(_html, "isError[^=]*=[^;]*1;"))
            {
                // サーバエラー
                throw new Exception("サーバエラー");
            }
            if (Regex.IsMatch(_html, @"maxPage[^=]*=[^\d]*0;"))
            {
                // 表示するデータがありません。
                throw new Exception("表示するデータがありません。");
            }

            // CSV出力
            string type = "cvs";//"excel"

            this._Client.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
            resData = this._Client.UploadData(FMWW.Core.Helpers.UrlBuilder.Build("/JMODE_ASP/Export"),
                                              Encoding.ASCII.GetBytes("type=" + type + "&mode=start&cache=" + FMWW.Core.Helpers.Ajax.TimeStamp()));
            _html = Encoding.UTF8.GetString(resData);

            while (!FMWW.Core.Helpers.Ajax.IsFin(_html))
            {
                this._Client.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
                resData = this._Client.UploadData(FMWW.Core.Helpers.UrlBuilder.Build("/JMODE_ASP/Export"),
                                                  Encoding.ASCII.GetBytes("mode=check&cache=" + FMWW.Core.Helpers.Ajax.TimeStamp()));
                _html = Encoding.UTF8.GetString(resData);
                System.Threading.Thread.Sleep(1000);
            }

            // CSVファイルダウンロード
            //var fname = String.Format(@"{0}_{1}_{2}.csv",
            //    filter.ShopCode,
            //    ((filter.LineCodes.Length > 0) ?
            //        String.Join("-", filter.LineCodes) :
            //        ((filter.SupplierCode.Length > 0) ?
            //            filter.SupplierCode :
            //            ((filter.ItemCodes.Length > 0) ?
            //                String.Join("-", filter.ItemCodes) :
            //                ""))),
            //    filter.Date.ToString("d"));
            var ms = new MemoryStream();
            var ub = new UriBuilder(Uri.UriSchemeHttps, FMWW.Core.Config.Instance.HostName)
            {
                Path  = "/JMODE_ASP/Export",
                Query = "mode=download&cache=" + FMWW.Utility.UnixEpochTime.now()
            };
            var url = ub.Uri.ToString();

            using (var st = this._Client.OpenRead(url))
            {
                if ("gzip" == this._Client.ResponseHeaders["Content-Encoding"])
                {
                    int    num;
                    byte[] buf = new byte[1024];           // 1Kbytesずつ処理する
                    var    decompStream                    // 解凍ストリーム
                        = new GZipStream(
                              st,                          // 入力元となるストリームを指定
                              CompressionMode.Decompress); // 解凍(圧縮解除)を指定
                    using (decompStream)
                    {
                        while ((num = decompStream.Read(buf, 0, buf.Length)) > 0)
                        {
                            ms.Write(buf, 0, num);
                        }
                    }
                }
                else
                {
                    int b;
                    while ((b = st.ReadByte()) != -1)
                    {
                        ms.WriteByte((byte)b);
                    }
                }
                st.Close();
            }
            return(Encoding.UTF8.GetString(ms.ToArray()));
        }