コード例 #1
0
        public void Gains_Chart(bool change)
        {
            DateTime from_month = new DateTime();
            DateTime to_month   = new DateTime();
            string   datatype   = "";

            Dispatcher.Invoke(() =>
            {
                from_month = Convert.ToDateTime(date_month_from.SelectedDate);
                to_month   = Convert.ToDateTime(date_month_to.SelectedDate);
                datatype   = ((ComboBoxItem)(comboGain.SelectedItem)).Content.ToString();
            });
            gainformatter = "C0";

            if (datatype.Contains("Percentage"))
            {
                gainformatter = "P2";
            }
            DataTable dt = InvestmentChange.GetHistoricalGains(datatype, from_month, to_month);

            Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, (Action)(() =>
            {
                Series_Gains.Clear();
                foreach (Holder holder in HoldersItems)
                {
                    if (dt.AsEnumerable().Any(r => r["holder"].ToString() == holder.HolderName))
                    {
                        Series_Gains.Add(new LineSeries
                        {
                            Values = new ChartValues <DateModel>(dt.AsEnumerable().Where(r => r["holder"].ToString() == holder.HolderName)
                                                                 .Select(r => new DateModel {
                                DateTime = r.Field <DateTime>("date"), Value = r.Field <double?>("amount") ?? 0
                            })),
                            Title = holder.HolderName,
                            Fill = Brushes.Transparent,
                            DataLabels = (holder.HolderName == "Home" ? true : false)
                        });
                    }
                }
                if (!change)
                {
                    InvestmentGainsChart.DataContext = this;
                }
            }));
        }
コード例 #2
0
        public static void ImportFromExcel(string filename, ReportFormat bank, string holder, DateTime?date_statement)
        {
            int count_entries = 0;

            using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                using (StreamReader sr = new StreamReader(fs))
                {
                    var csv = new CsvReader(sr);

                    while (csv.Read())
                    {
                        DateTime dateField;
                        double   amount = 0;
                        if (csv.GetField(0) != "" && csv.TryGetField(0, out dateField))
                        {
                            //asset
                            if (bank is StatementReportFormat)
                            {
                                if (((StatementReportFormat)bank).NeedsStatementDate == true)
                                {
                                    if (date_statement == null)
                                    {
                                        MessageBox.Show("Please enter the date of the statement.", "Error: Date Missing on Upload");
                                        return;
                                    }
                                }
                                IAsset           new_asset         = new BrokerageAsset();
                                InvestmentChange investment_change = new InvestmentChange();
                                switch (bank.Account.FinancialInstitution.InstitutionName)
                                {
                                case "BrokerageSample":
                                    investment_change.Date   = Convert.ToDateTime(csv.GetField(0));
                                    investment_change.Amount = Convert.ToDouble(csv.GetField(7));

                                    new_asset             = new BrokerageAsset(csv.GetField(2));
                                    new_asset.AsOf        = Convert.ToDateTime(csv.GetField(0));
                                    new_asset.Description = csv.GetField(1);
                                    new_asset.Value       = Convert.ToDouble(csv.GetField(3));
                                    break;

                                default:
                                    break;
                                }
                                new_asset.Holder = holder;
                                new_asset.Bank   = bank.Account.FinancialInstitution.ShortName;
                                new_asset.Save();
                                investment_change.Holder = holder;
                                investment_change.Bank   = bank.Account.FinancialInstitution.ShortName;
                                investment_change.Save();
                            }
                            //transaction
                            else
                            {
                                ITransaction new_transaction = new BankTransaction();
                                string       description     = "";
                                if (bank.Account.AccountType == AccountType.Brokerage)
                                {
                                    switch (bank.Account.FinancialInstitution.InstitutionName)
                                    {
                                    case "BrokerageSample":
                                        string[] quantity_price = csv.GetField(4).ToString().Split(new string[] { " shares at�$", " share at�$" }, StringSplitOptions.None);
                                        new_transaction = new BrokerageTransaction(Convert.ToDouble(quantity_price[1].Replace(",", "")), Convert.ToDouble(quantity_price[0]), csv.GetField(2));
                                        description     = csv.GetField(1);
                                        break;

                                    default:
                                        break;
                                    }
                                }
                                else
                                {
                                    new_transaction = new BankTransaction(bank.Account.AccountType);
                                    switch (bank.Account.FinancialInstitution.ShortName + " " + bank.FormatName)
                                    {
                                    case "B1 Default Format":
                                        csv.TryGetField(1, out amount);
                                        description = csv.GetField(2);
                                        break;

                                    default:
                                        break;
                                    }
                                    new_transaction.Amount = amount;
                                }
                                new_transaction.Bank        = bank.Account.FinancialInstitution.ShortName;
                                new_transaction.Description = description;
                                new_transaction.Holder      = holder;
                                new_transaction.Date        = dateField;
                                new_transaction.Save();
                            }
                            count_entries++;
                        }
                    }
                }
            }

            MessageBox.Show("Detected " + count_entries + " entries and uploaded all non-duplicated entries to database.", "Upload Complete");
        }