Esempio n. 1
0
 //構造体コンストラクタ
 public SMorseAtom(char argChar)
     : this()
 {
     this.CharForMorse = argChar;
     this.MorseType    = !char.IsWhiteSpace(argChar) ? EMrsType.normal : EMrsType.spaceBtwnWords;
     this.Lang         = getLang(argChar);
     this.MorseCodes   = GetMorseFromChar(argChar);
 }
Esempio n. 2
0
 public SMorseAtom(Morse.EMrsType argMrsType)
     : this()
 {
     this.CharForMorse = argMrsType == EMrsType.spaceBtwnChars ? new char() :
                         argMrsType == EMrsType.spaceBtwnWords ? ' ' :
                         argMrsType == EMrsType.bracketStart ? m.EN_START :
                         argMrsType == EMrsType.bracketEnd ? m.EN_END : new char();
     this.MorseType  = argMrsType;
     this.Lang       = ELang.NonLang;
     this.MorseCodes = GetMorseFromChar(argMrsType);
 }
Esempio n. 3
0
        /// <summary>
        /// 下载订单的PDF文件
        /// </summary>
        /// <param name="outFile">输出文件名</param>
        /// <param name="showPrice">是否显示价格</param>
        /// <param name="lang">语言版本</param>
        /// <param name="erpId">ERPID,默认1</param>
        /// <param name="poNums">待输出的PO行 PoLineToDownload</param>
        /// <returns></returns>
        public bool DownloadPoPdf(string outFile, bool showPrice, ELang lang = ELang.zh_CN, EInstanceId erpId = EInstanceId.Huawei, params string[] poNums)
        {
            List <PoLineToDownload> poLines = new List <PoLineToDownload>();

            foreach (var p in poNums)
            {
                poLines.Add(new PoLineToDownload {
                    instanceId = erpId, poNumber = p
                });
            }

            bool          ret   = false;
            GenPoPdfInput input = new GenPoPdfInput
            {
                lang           = lang.ToString(),
                queryHistoryDB = 0,
                showPriceFlag  = showPrice,
                lines          = poLines.ToArray()
            };
            var res = dal.GenPoPdfDAL(input);

            if (res != null)
            {
                if (res.Success)
                {
                    string            fileKey       = res.PreUrl;
                    DownloadBLL       downloadBLL   = new DownloadBLL();
                    FileDownloadInput downLoadParam = new FileDownloadInput
                    {
                        downloadType = "1",
                        downloadKey  = res.PreUrl
                    };
                    ret = downloadBLL.DownloadToFile(outFile, downLoadParam);
                }
            }
            return(ret);
        }
Esempio n. 4
0
 public HeadLinksAndTemplates(ELang lang)
 {
     Lang = lang;
 }
Esempio n. 5
0
        /// <summary>
        /// モールス符号用文字列に変換
        /// </summary>
        /// <param name="argChar"></param>
        /// <returns></returns>
        /// <example>'が' -> "カ゛"  </example>
        public static string GetStringForMorse(char argChar, bool argIsEnglishMode, out char outNGChar)
        {
            outNGChar = new char();
            char rtnChar = argChar;

            // 英字
            ELang elang = ELang.NonLang;

            if ((elang = getLang(argChar)) == ELang.En || elang == ELang.Num)
            {
                rtnChar = Strings.StrConv(rtnChar.ToString(), VbStrConv.Narrow)[0];    //半角
                rtnChar = Strings.StrConv(rtnChar.ToString(), VbStrConv.Uppercase)[0]; //大文字
                return(rtnChar.ToString());
            }
            ;
            if (argIsEnglishMode)
            {
                //欧文モードのときは英数字以外を不正文字として扱う
                outNGChar = argChar;
                return("");
            }

            // 特殊ケース
            switch (argChar)
            {
            case '゙': return("゛");

            case '゚': return("゜");

            case '‐': return("-");

            case 'ヰ': return("ヰ");

            case 'ヱ': return("ヱ");

            case '(': return(m.EN_START.ToString());

            case ')': return(m.EN_END.ToString());

            default: break;
            }

            //全角カタカナ
            rtnChar = Strings.StrConv(rtnChar.ToString(), VbStrConv.Wide)[0];
            rtnChar = Strings.StrConv(rtnChar.ToString(), VbStrConv.Katakana)[0];

            //濁点、半濁点分割カタカナ
            // ex) ガパ => カ゛ハ゜
            //※ 正規表現では [ガ-ゴ] = [ガキギクグケゲコゴ] らしいから濁音のところだけを取り出す
            if (Regex.IsMatch(rtnChar.ToString(), @"[ガギグゲゴザジズゼゾダヂヅデドバビブベボ]"))
            {
                const int INT_DAKUTEN = (int)'ガ' - (int)'カ'; //濁点文字との文字コード差
                return(((char)((int)rtnChar - INT_DAKUTEN)) + "゛");
            }
            if (Regex.IsMatch(rtnChar.ToString(), @"[パピプペポ]"))
            {
                const int INT_HAN_DAKUTEN = (int)'パ' - (int)'ハ';
                return(((char)((int)rtnChar - INT_HAN_DAKUTEN)) + "゜");
            }
            //カタカナ特殊ケース
            switch (rtnChar)
            {
            case 'ッ': return("ツ");

            case 'ァ': return("ア");

            case 'ィ': return("イ");

            case 'ゥ': return("ウ");

            case 'ェ': return("エ");

            case 'ォ': return("オ");

            case 'ヵ': return("カ");

            case 'ャ': return("ヤ");

            case 'ュ': return("ユ");

            case 'ョ': return("ヨ");

            default: break;
            }
            //カタカナ一般
            if (Regex.IsMatch(rtnChar.ToString(), "^[" + PTN_JPN + "]+$", RegexOptions.IgnoreCase))
            {
                return(rtnChar.ToString());
            }

            //変換できなかった場合は不正文字として返す
            outNGChar = argChar;
            return("");
        }