Ejemplo n.º 1
0
        public DataTable GetTicketTableData(string bankName, DateTime date)
        {
            string tableName = $"{bankName} ticket for {date.ToShortDateString()}";
            Ticket ticket    = _context.Ticket.FirstOrDefault(
                x => x.BankShortName == bankName && x.Date.Year == date.Year && x.Date.Month == date.Month && x.Date.Day == date.Day
                );

            if (ticket == null)
            {
                return(ErrorTable(tableName, "There is no ticket for this date"));
            }
            DataTable table = new DataTable(tableName);

            table.Columns.Add(new DataColumn("Currency", typeof(string)));
            table.Columns.Add(new DataColumn("Name", typeof(string)));
            table.Columns.Add(new DataColumn("Country", typeof(string)));
            table.Columns.Add(new DataColumn("Quantity", typeof(string)));
            table.Columns.Add(new DataColumn("Buy", typeof(string)));
            table.Columns.Add(new DataColumn("Sell", typeof(string)));
            Dictionary <string, CurrencyMetadata> metadata = _context.CurrencyMetadata.ToDictionary(k => k.IsoName, v => v);
            List <Currency> currencies = _context.Currency.Where(x => x.TicketId == ticket.Id).ToList();

            foreach (Currency currency in currencies)
            {
                object[]         rowData = new object[table.Columns.Count];
                CurrencyMetadata meta    = metadata[currency.IsoName];
                rowData[0] = currency.IsoName;
                rowData[1] = meta.Name ?? "X";
                rowData[2] = meta.Country ?? "X";
                rowData[3] = meta.Quantity;
                rowData[4] = currency.Buy;
                rowData[5] = currency.Sell.HasValue ? currency.Sell.Value.ToString() : "X";

                table.Rows.Add(rowData);
            }
            table.AcceptChanges();
            return(table);
        }
Ejemplo n.º 2
0
        private void SaveBankCurrencyMetada(BCCContext context, ICurrencyMetada metaData)
        {
            CurrencyMetadata ret = context.CurrencyMetadata.Where(x => x.IsoName == metaData.ISOName).FirstOrDefault();

            if (ret == null)
            {
                if (string.IsNullOrWhiteSpace(metaData.ISOName))
                {
                    return;
                }
                if (metaData.Quantity < 1)
                {
                    return;
                }
                ret = new CurrencyMetadata()
                {
                    IsoName  = metaData.ISOName,
                    Name     = metaData.Name,
                    Quantity = metaData.Quantity,
                    Country  = metaData.Country
                };
                context.CurrencyMetadata.Add(ret);
                context.SaveChanges();
            }
            else
            {
                if (string.IsNullOrWhiteSpace(ret.Name) && !string.IsNullOrWhiteSpace(metaData.Name))
                {
                    ret.Name = metaData.Name;
                }
                if (string.IsNullOrWhiteSpace(ret.Country) && !string.IsNullOrWhiteSpace(ret.Country))
                {
                    ret.Country = metaData.Country;
                }
            }
        }