Esempio n. 1
0
        /// <summary>
        /// CSVファイル読み込みを開始する
        /// </summary>
        /// <param name="path">CSVファイルパス</param>
        /// <param name="rule">CSVルール</param>
        public void startReading(string path, CsvRule rule)
        {
            mRule = rule;

            // 銀行IDなどを設定
            //mIdent = mRule.ident;
            mBankId = mRule.bankId;
            //mBranchId = branchId;
            //mAccountId = accountId;

            mSr = new StreamReader(path, System.Text.Encoding.Default);
        }
        public void setUp()
        {
            mManager = new CsvAccountManager();

            mRule = new CsvRule();
            mRule.firstLine = "FIRST_LINE";
            mRule.SetFormat("Date,Income,Balance,Desc,Memo");
            mManager.addRule(mRule);

            mTempFileName = Path.GetTempFileName();
            mSw = new StreamWriter(mTempFileName, false, System.Text.Encoding.Default);
        }
        /// <summary>
        /// CSVアカウントを選択
        /// </summary>
        /// <param name="path">CSVファイルパス</param>
        /// <returns>CSVアカウント</returns>
        public CsvAccount SelectAccount(string path)
        {
            // CSVファイルに合致するルール⇒アカウントを探す
            CsvRule    rule    = findMatchingRuleForCsv(path);
            CsvAccount account = null;

            if (rule != null)
            {
                foreach (CsvAccount acc in mAccounts)
                {
                    if (acc.ident == rule.ident)
                    {
                        account = acc;
                        break;
                    }
                }
            }

            // 資産選択ダイアログを出す
            CsvAccountDialog dlg = new CsvAccountDialog(this);

            dlg.SelectAccount(account);
            if (dlg.ShowDialog() == DialogResult.Cancel)
            {
                return(null);
            }

            // 選択されたアカウントを取り出す
            account = dlg.SelectedAccount();
            if (account == null)
            {
                MessageBox.Show(Properties.Resources.NoCsvAccountSelected, Properties.Resources.Error);
                return(null);
            }

            // アカウントに対応するルールを選択する
            rule = mRules.FindRuleWithIdent(account.ident);
            if (rule == null)
            {
                MessageBox.Show(Properties.Resources.NoMatchingCsvRule, Properties.Resources.Error);
                return(null);
            }

            account.startReading(path, rule);
            return(account);
        }
Esempio n. 4
0
 /// <summary>
 /// 指定したルールのインデックスを返す
 /// </summary>
 /// <param name="rule">ルール</param>
 /// <returns>インデックス</returns>
 public int IndexOf(CsvRule rule)
 {
     return(mRules.IndexOf(rule));
 }
Esempio n. 5
0
        private String LoadFromXml(XmlDocument doc)
        {
            XmlElement root = doc.DocumentElement;

            // Version 取得
            String      version     = null;
            XmlNodeList versionList = root.GetElementsByTagName("Version");

            if (versionList.Count > 0)
            {
                version = versionList[0].FirstChild.Value;
            }

            // Rule 子要素について処理
            XmlNodeList list = root.GetElementsByTagName("Rule");

            for (int i = 0; i < list.Count; i++)
            {
                // rule 生成
                CsvRule rule = new CsvRule();

                // rule の各メンバを設定
                foreach (XmlElement e in list[i].ChildNodes)
                {
                    string value = "";
                    if (e.FirstChild == null)
                    {
                        // 空要素
                    }
                    else
                    {
                        value = e.FirstChild.Value;
                    }

                    switch (e.Name)
                    {
                    case "Ident":
                        rule.ident = value;
                        break;

                    case "Name":
                        rule.name = value;
                        break;

                    case "BankId":
                        rule.bankId = value;
                        break;

                    case "FirstLine":
                        rule.firstLine = value;
                        break;

                    case "Format":
                        rule.format = value;
                        break;

                    case "Order":
                        rule.order = value;
                        break;

                    case "Separator":
                        rule.separator = value;
                        break;

                    default:
                        // ignore
                        break;
                    }
                }

                mRules.Add(rule);
            }

            return(version);
        }
Esempio n. 6
0
 /// <summary>
 /// ルール追加(単体テスト用)
 /// </summary>
 /// <param name="rule">ルール</param>
 public void Add(CsvRule rule)
 {
     mRules.Add(rule);
 }
Esempio n. 7
0
 public void TearDown()
 {
     rule = null;
 }
Esempio n. 8
0
 public void Setup()
 {
     rule = new CsvRule();
 }
 /// <summary>
 /// ルールを追加する (単体テスト用)
 /// </summary>
 /// <param name="rule">ルール</param>
 public void addRule(CsvRule rule)
 {
     mRules.Add(rule);
 }
Esempio n. 10
0
        public void setUp()
        {
            mAccount = new CsvAccount();
            mAccount.branchId = "0";
            mAccount.accountId = "0";

            mRule = new CsvRule();
            mRule.firstLine = "FIRST_LINE";
            mRule.SetFormat("Date,Income,Balance,Desc,Memo");

            mTempFileName = Path.GetTempFileName();
            mSw = new StreamWriter(mTempFileName, false, System.Text.Encoding.Default);
        }
Esempio n. 11
0
 /// <summary>
 /// ルールを追加する (単体テスト用)
 /// </summary>
 /// <param name="rule">ルール</param>
 public void addRule(CsvRule rule)
 {
     mRules.Add(rule);
 }
Esempio n. 12
0
        /// <summary>
        /// CSVファイル読み込みを開始する
        /// </summary>
        /// <param name="path">CSVファイルパス</param>
        /// <param name="rule">CSVルール</param>
        public void startReading(string path, CsvRule rule)
        {
            mRule = rule;

            // 銀行IDなどを設定
            //mIdent = mRule.ident;
            mBankId = mRule.bankId;
            //mBranchId = branchId;
            //mAccountId = accountId;

            mSr = new StreamReader(path, System.Text.Encoding.Default);
        }
Esempio n. 13
0
        private String LoadFromXml(XmlDocument doc)
        {
            XmlElement root = doc.DocumentElement;

            // Version 取得
            String version = null;
            XmlNodeList versionList = root.GetElementsByTagName("Version");
            if (versionList.Count > 0)
            {
                version = versionList[0].FirstChild.Value;
            }

            // Rule 子要素について処理
            XmlNodeList list = root.GetElementsByTagName("Rule");

            for (int i = 0; i < list.Count; i++)
            {
                // rule 生成
                CsvRule rule = new CsvRule();

                // rule の各メンバを設定
                foreach (XmlElement e in list[i].ChildNodes)
                {
                    string value = "";
                    if (e.FirstChild == null)
                    {
                        // 空要素
                    }
                    else
                    {
                        value = e.FirstChild.Value;
                    }

                    switch (e.Name)
                    {
                        case "Ident":
                            rule.ident = value;
                            break;
                        case "Name":
                            rule.name = value;
                            break;
                        case "BankId":
                            rule.bankId = value;
                            break;
                        case "FirstLine":
                            rule.firstLine = value;
                            break;
                        case "Format":
                            rule.format = value;
                            break;
                        case "Order":
                            rule.order = value;
                            break;
                        case "Separator":
                            rule.separator = value;
                            break;
                        default:
                            // ignore
                            break;
                    }
                }

                mRules.Add(rule);
            }

            return version;
        }
Esempio n. 14
0
 /// <summary>
 /// 指定したルールのインデックスを返す
 /// </summary>
 /// <param name="rule">ルール</param>
 /// <returns>インデックス</returns>
 public int IndexOf(CsvRule rule)
 {
     return mRules.IndexOf(rule);
 }
Esempio n. 15
0
 /// <summary>
 /// ルール追加(単体テスト用)
 /// </summary>
 /// <param name="rule">ルール</param>
 public void Add(CsvRule rule)
 {
     mRules.Add(rule);
 }