コード例 #1
0
        public ActionResult EditCourse(int?id, double buy, double sell)
        {
            CurrencyContext context = new CurrencyContext();
            Courses         course  = context.Courses.FirstOrDefault(cor => cor.currency_id == id);

            if (course != null)
            {
                course.buy  = buy;
                course.sell = sell;

                context.SaveChanges();
            }
            else
            {
                course = new Courses
                {
                    currency_id = (int)id,
                    buy         = buy,
                    sell        = sell,
                };

                context.Courses.Add(course);
                context.SaveChanges();
            }

            return(RedirectToAction("Index"));
        }
コード例 #2
0
        public static void RecreateCleanDatabase()
        {
            using var context = new CurrencyContext(quiet: true);

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();
        }
コード例 #3
0
 public IEnumerable <RequestHistory> Find(Func <RequestHistory, bool> predicate)
 {
     using (CurrencyContext context = new CurrencyContext())
     {
         return(context.RequestHistory.Where(predicate).ToList());
     }
 }
コード例 #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Spinning CurrencyDatabaseGenerator");

            try
            {
                var optionsBuilder = new DbContextOptionsBuilder <CurrencyContext>();

                //TODO: dev config
                optionsBuilder.UseSqlServer("Server=DESKTOP-CNCHB79\\SQLEXPRESS;Database=Currency;Trusted_Connection=True;MultipleActiveResultSets=true");

                //TODO: prod config
                //options.UseSqlServer("Server=DESKTOP-CNCHB79\\SQLEXPRESS;Database=Currency;Trusted_Connection=True;MultipleActiveResultSets=true");

                CurrencyContext context = new CurrencyContext(optionsBuilder.Options);

                Initialize(context);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.WriteLine("Generated");
        }
コード例 #5
0
        private Dictionary <string, decimal> FillRatesRelations()
        {
            using (CurrencyContext db = new CurrencyContext())
            {
                //ExchangeRate exchangeRate = new ExchangeRate() { Dollar = 73.71m, Euro = 80.67m, DollarToEuro = 1.06m };

                //db.DbExchangeRates.Add(exchangeRate);
                //db.SaveChanges();

                ExchangeRate exchangeRates = db.DbExchangeRates.FirstOrDefault();
                if (exchangeRates != null)
                {
                    var ratesRelations = new Dictionary <string, decimal>
                    {
                        [$"{Constants.Rub}:{Constants.Dollar}"]  = exchangeRates.Dollar,
                        [$"{Constants.Dollar}:{Constants.Rub}"]  = exchangeRates.Dollar,
                        [$"{Constants.Rub}:{Constants.Euro}"]    = exchangeRates.Euro,
                        [$"{Constants.Euro}:{Constants.Rub}"]    = exchangeRates.Euro,
                        [$"{Constants.Dollar}:{Constants.Euro}"] = exchangeRates.DollarToEuro,
                        [$"{Constants.Euro}:{Constants.Dollar}"] = exchangeRates.DollarToEuro
                    };

                    return(ratesRelations);
                }
            }
            throw  new ArgumentException("Отсутствуют данные в базе данных");
        }
コード例 #6
0
ファイル: Custommeme.cs プロジェクト: Not-Solid/VJEmmy_v2
        public async Task ListMemes()
        {
            if (!CommandHandler.IsPostedInCorrectChannel(Context.Message, GetType().Name))
            {
                return;
            }

            using (var db = new CurrencyContext())
            {
                var memes = db.Memes.AsQueryable().Where(m => m.Owner == Context.Message.Author.Id).ToList();
                if (memes.Count <= 0)
                {
                    await ReplyAsync("You dont have any memes yet!");
                }
                else
                {
                    var memeNames = "";
                    foreach (Meme meme in memes)
                    {
                        memeNames += (memes.First() == meme) ? meme.Id : ", " + meme.Id;
                    }

                    await ReplyAsync($"Your memes: {memeNames}");
                }
            }
        }
コード例 #7
0
 public ExchangeRateRepository(CurrencyContext dbContext,
                               IMapper mapper)
 {
     this.dbContext          = dbContext;
     this.mapper             = mapper;
     this.exchangeRatesDbSet = dbContext.Set <Database.Entities.ExchangeRate>();
 }
コード例 #8
0
ファイル: Custommeme.cs プロジェクト: Not-Solid/VJEmmy_v2
        public async Task CreateNewMeme(string name, [Remainder] string content)
        {
            if (!CommandHandler.IsPostedInCorrectChannel(Context.Message, GetType().Name))
            {
                return;
            }

            using (var db = new CurrencyContext())
            {
                var meme = db.Memes.Find(name);
                if (meme == null)
                {
                    await db.AddAsync(new Meme
                    {
                        Id      = name,
                        Content = content,
                        Owner   = Context.Message.Author.Id
                    });

                    await db.SaveChangesAsync();

                    await ReplyAsync($"Meme {name} created!");
                }
                else
                {
                    await ReplyAsync($"The name: {name} already exists, pick a different one!");
                }
            }
        }
コード例 #9
0
        public async Task CreateAccount()
        {
            if (!CommandHandler.IsPostedInCorrectChannel(Context.Message, GetType().Name))
            {
                return;
            }
            using (var db = new CurrencyContext())
            {
                await db.UserAccounts.AddAsync(new UserAccount
                {
                    Id        = Context.User.Id,
                    Balance   = 1000,
                    Inventory = new Dictionary <string, int>()
                });

                await db.Cooldowns.AddAsync(new Cooldowns
                {
                    Id       = Context.User.Id,
                    Collect  = new DateTime(),
                    Work     = new DateTime(),
                    Rob      = new DateTime(),
                    Robbed   = new DateTime(),
                    Roulette = new DateTime(),
                    Trivia   = new DateTime()
                });

                await db.SaveChangesAsync();
                await ReplyAsync("Account created!");
            }
        }
コード例 #10
0
ファイル: Shop.cs プロジェクト: Not-Solid/VJEmmy_v2
        public async Task ListShop()
        {
            if (!CommandHandler.IsPostedInCorrectChannel(Context.Message, GetType().Name))
            {
                return;
            }

            using (var db = new CurrencyContext())
            {
                var items = db.Items.ToList();
                if (items.Count == 0)
                {
                    await ReplyAsync("The shop is empty right now, come back later!");
                }
                string stock = "";
                foreach (Item item in items)
                {
                    stock += "**" + item.Id + ":** " + item.Description + "\n **Price:** " + item.Price + "\n **Max quantity:** " + item.MaxQuantity + "\n \n";
                }

                var embed = new EmbedBuilder();
                embed.WithColor(new Color(0, 255, 0));
                embed.WithTitle("Item shop");
                embed.WithDescription(stock);
                await ReplyAsync("", false, embed.Build());
            }
        }
コード例 #11
0
 public RefreshCurrencyListHandler(ICurrencyApi currencyApi, CurrencyContext db, ILogger <RefreshCurrencyListHandler> logger, IMapper mapper)
 {
     this.currencyApi = currencyApi;
     this.db          = db;
     this.logger      = logger;
     this.mapper      = mapper;
 }
コード例 #12
0
        public static void RestToDB(DateTime someDaysAgo)
        {
            var    client  = new RestClient(@"http://data.fixer.io/api/");
            string key     = "96067c8c5fb4cd025c5edec854c44316";
            var    request = new RestRequest(MakeResponceFixer_io(key, someDaysAgo), Method.GET);

            request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
            var queryResult = client.Execute(request);

            if (queryResult.StatusCode == HttpStatusCode.OK)

            {
                string  rawResponse  = queryResult.Content;
                JObject jsonResponce = JObject.Parse(rawResponse);
                //using (StreamWriter file = File.CreateText(@"C:\1\currency.json"))
                //using (JsonTextWriter writer = new JsonTextWriter(file))
                //{
                //    jsonResponce.WriteTo(writer);
                //}


                using (CurrencyContext db = new CurrencyContext())
                {
                    Currency currencyRate = JsonConvert.DeserializeObject <Currency>(rawResponse);

                    var dt = currencyRate.Date;
                    Console.WriteLine("Add infofmation for date -- " + dt);

                    db.Currencies.Add(currencyRate);
                    db.SaveChanges();
                }
            }
        }
コード例 #13
0
        public async Task Ranking()
        {
            if (!CommandHandler.IsPostedInCorrectChannel(Context.Message, GetType().Name))
            {
                return;
            }

            using (var db = new CurrencyContext())
            {
                var accounts = db.UserAccounts.AsQueryable().OrderByDescending(a => a.Balance).Take(5).ToList();
                var message  = "";
                var nr       = 1;
                foreach (UserAccount account in accounts)
                {
                    message += nr + ". <@" + account.Id + ">: " + account.Balance + " Kredits \n";
                    nr++;
                }

                var embed = new EmbedBuilder();
                embed.WithColor(new Color(0, 0, 255));
                embed.WithTitle("Ranking");
                embed.WithDescription(message);

                await ReplyAsync("", false, embed.Build());
            }
        }
コード例 #14
0
        public ActionResult EditCurrency(int?id, string code, string name, string name_lat, int order_index)
        {
            CurrencyContext context = new CurrencyContext();

            if (id != null && id > 0)
            {
                Currency currency = context.Currency.Single(cur => cur.id == id);

                currency.code        = code;
                currency.name        = name;
                currency.name_lat    = name_lat;
                currency.order_index = order_index;

                context.SaveChanges();
            }
            else
            {
                Currency currency = new Currency
                {
                    code        = code,
                    name        = name,
                    name_lat    = name_lat,
                    order_index = order_index,
                };

                context.Currency.Add(currency);
                context.SaveChanges();
            }

            return(RedirectToAction("Index"));
        }
コード例 #15
0
        public static void DBUpdate(DateTime date)
        {
            CurrencyContext db;


            for (int i = 0; i < 10; i++)
            {
                DateTime someDaysAgo = date.AddDays(-i);

                using (CurrencyContext context = new CurrencyContext())
                {
                    db = context;
                    string dbDateFrmat = someDaysAgo.ToString("yyyy-MM-dd");
                    var    currRes     = db.Currencies;
                    if (currRes.Any(x => x != null))
                    {
                        var result = currRes.FirstOrDefault(rec => rec.Date == dbDateFrmat);
                        if (result != null)
                        {
                            continue;
                        }
                    }
                }

                RestToDB(someDaysAgo);
            }
        }
コード例 #16
0
    public CurrencyContext currency()
    {
        CurrencyContext _localctx = new CurrencyContext(Context, State);

        EnterRule(_localctx, 16, RULE_currency);
        int _la;

        try {
            EnterOuterAlt(_localctx, 1);
            {
                State = 65;
                _la   = TokenStream.LA(1);
                if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__4) | (1L << T__5) | (1L << T__6))) != 0)))
                {
                    ErrorHandler.RecoverInline(this);
                }
                else
                {
                    ErrorHandler.ReportMatch(this);
                    Consume();
                }
            }
        }
        catch (RecognitionException re) {
            _localctx.exception = re;
            ErrorHandler.ReportError(this, re);
            ErrorHandler.Recover(this, re);
        }
        finally {
            ExitRule();
        }
        return(_localctx);
    }
コード例 #17
0
 public async Task Inventory(IUser user)
 {
     if (!CommandHandler.IsPostedInCorrectChannel(Context.Message, GetType().Name))
     {
         return;
     }
     using (var db = new CurrencyContext())
     {
         var account = db.UserAccounts.AsQueryable().Where(a => a.Id == user.Id).FirstOrDefault();
         if (account != null)
         {
             if (account.Inventory != null)
             {
                 var inventory = "";
                 foreach (KeyValuePair <string, int> item in account.Inventory)
                 {
                     inventory += "[" + item.Value + "] " + item.Key + " \n";
                 }
                 var embed = new EmbedBuilder();
                 embed.WithColor(new Color(0, 255, 0));
                 embed.WithTitle(user.Username + "'s inventory");
                 embed.WithDescription(inventory);
                 await ReplyAsync("", false, embed.Build());
             }
             else
             {
                 await ReplyAsync("Your inventory is empty!");
             }
         }
         else
         {
             await ReplyAsync("You dont have an account yet, type $acc to create one!");
         }
     }
 }
コード例 #18
0
ファイル: EnsureSeedData.cs プロジェクト: simhaonline/CPM
        public void EnsurFiatSeedData(string filePath)
        {
            CurrencyContext currencyContext = new CurrencyContext();

            if (!currencyContext.Fiat.Any())
            {
                dynamic jsonData = ReadJsonFile(filePath);
                if (jsonData != null)
                {
                    foreach (dynamic d in jsonData)
                    {
                        currencyContext.Fiat.Add(new FiatEntity()
                        {
                            Id          = d.Id,
                            Code        = d.Code,
                            Description = d.Description,
                            Name        = d.Name,
                            Symbol      = d.Symbol,
                            DisplayName = d.DisplayName,
                            FlagId      = d.FlagId,
                            ImageId     = d.ImageId
                        });
                    }
                    currencyContext.SaveChanges();
                }
            }
        }
コード例 #19
0
        public Rate AddRate(Rate rate)
        {
            using (CurrencyContext dbContext = new CurrencyContext())
            {
                var dateToUse = GetDate(rate, dbContext);

                var currencyToUse = GetCurrency(rate, dbContext);

                Rate dbRate = dbContext.Rates.AsEnumerable().FirstOrDefault(r => r.Currency == currencyToUse &&
                                                                            r.Date == dateToUse);
                if (dbRate != null)
                {
                    return(dbRate);
                }


                var newRate = dbContext.Rates.Add(new Rate
                {
                    Price       = rate.Price,
                    Currency    = currencyToUse,
                    Date        = dateToUse,
                    TableNumber = rate.TableNumber
                });
                dbContext.SaveChanges();


                return(newRate);
            }
        }
コード例 #20
0
 public async Task AddHistory(RequestHistory history)
 {
     using (CurrencyContext context = new CurrencyContext())
     {
         context.RequestHistory.Add(history);
         await context.SaveChangesAsync();
     }
 }
コード例 #21
0
 public IHttpActionResult GetT()
 {
     using (CurrencyContext currencyDb = new CurrencyContext())
     {
         var currencies = currencyDb.Currency.ToList().AsQueryable();
         return(Ok(new { data = currencies }));
     }
 }
コード例 #22
0
 public IHttpActionResult GetC(int id)
 {
     using (CurrencyContext currencyDb = new CurrencyContext())
     {
         var currency = currencyDb.Currency.FirstOrDefault(cur => cur.currencyId == id);
         return(Ok(new { data = currency }));
     }
 }
コード例 #23
0
 public HttpResponseMessage Get()
 {
     using (CurrencyContext currencyDb = new CurrencyContext())
     {
         var currencies = currencyDb.Currency.ToList().AsQueryable();
         return(Request.CreateResponse(HttpStatusCode.OK, new { data = currencies.AsQueryable() }));
     }
 }
コード例 #24
0
        public ActionResult Index()
        {
            var model = new ExchangeRateDTO();

            using (CurrencyContext context = new CurrencyContext())
            {
                model.ExchangeRateDataList = context.ExchangeRate.Where(m => m.Id > 0).Include(m => m.Currency).ToList();
            }
            return(View(model));
        }
コード例 #25
0
ファイル: Shop.cs プロジェクト: Not-Solid/VJEmmy_v2
        public async Task Buy(string itemname, int quantity = 1)
        {
            if (!CommandHandler.IsPostedInCorrectChannel(Context.Message, GetType().Name))
            {
                return;
            }

            using (var db = new CurrencyContext())
            {
                var account   = db.UserAccounts.AsQueryable().Where(u => u.Id == Context.User.Id).FirstOrDefault();
                var cooldowns = db.Cooldowns.AsQueryable().Where(c => c.Id == Context.User.Id).FirstOrDefault();
                if (account != null && cooldowns != null)
                {
                    var item = db.Items.AsQueryable().Where(i => i.Id.ToLower() == itemname.ToLower()).FirstOrDefault();
                    if (item != null)
                    {
                        if (account.AddToInventory(item, quantity))
                        {
                            if (account.SubtractBalance(item.Price * quantity))
                            {
                                if (item.Id.ToLower() == "bitcoin_miner")
                                {
                                    cooldowns.Collect = new DateTime();
                                    db.Update(cooldowns);
                                }

                                db.Update(account);
                                await ReplyAsync("Item purchased!");
                            }
                            else
                            {
                                account.RemoveFromInventory(item, quantity);
                                db.Update(account);
                                await ReplyAsync("You can't afford that item!");
                            }

                            await db.SaveChangesAsync();
                        }
                        else
                        {
                            await ReplyAsync("You have reached the item limit for that item!");
                        }
                    }
                    else
                    {
                        await ReplyAsync("Item was not found!");
                    }
                }
                else
                {
                    await ReplyAsync("You dont have an account yet, type $acc to create one!");
                }
            }
        }
コード例 #26
0
        // GET: Currencies / Index
        public ActionResult Index()
        {
            CurrencyContext context = new CurrencyContext();

            var viewModel = new CurrenciesViewModel
            {
                Currencies = context.Currency.ToList()
            };

            return(View(viewModel));
        }
コード例 #27
0
ファイル: dal.cs プロジェクト: gadnandev/Material-Currency
        /// <summary>
        /// get currency info a number of days back
        /// </summary>
        /// <param name="days">number of days to go back</param>
        /// <returns>list of currency info in the requested range</returns>
        public async Task <List <HistoricalCurrencyEntity> > GetTimeSpanCurrency(int days)
        {
            await UpdateDataBaseAsync(DateTime.Today.AddDays(-days), DateTime.Today); //make sure db is updated

            List <HistoricalCurrencyEntity> ret;

            using (var db = new CurrencyContext()) {
                ret = (from hentinity in db.HistoricalCurrency
                       select hentinity).ToList();
            }
            return(ret.GetRange(ret.Count - days, days));//the last days
        }
コード例 #28
0
ファイル: ValuesController.cs プロジェクト: vinay1988/Ang6API
        public SalesOrder Get(int id)
        {
            var             model = _salesorderRepository.GetSalesOrderById(id);
            CurrencyContext db    = new CurrencyContext();

            Currency cu = db.Currencies.Find(model.CurrencyNo);

            if (cu != null)
            {
                model.CurrencyDesc = db.Currencies.Find(model.CurrencyNo).CurrencyDescription;
            }
            return(model);
        }
コード例 #29
0
ファイル: Global.asax.cs プロジェクト: Kor440/CurrencyApp
        protected void Application_Start()
        {
            Database.SetInitializer(new CurrencyDbInitializer());
            CurrencyContext context = new CurrencyContext();

            context.Database.Initialize(true);
            Database.SetInitializer <ApplicationDbContext>(new AppSecurityDbInitializer());
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
コード例 #30
0
        public JsonResult GetExchangeRates(string currencyName)
        {
            using var scope = _scopeFactory.CreateScope();
            var dbContext =
                new CurrencyContext(scope.ServiceProvider
                                    .GetRequiredService <DbContextOptions <CurrencyContext> >());

            var maxDate = dbContext.Currency.Max(c => c.RatesDate.Date);
            var model   = dbContext.Currency.FirstOrDefault(c => c.CurrencyName == currencyName && c.RatesDate.Date == maxDate);

            var jsonData = JsonConvert.SerializeObject(model.Rates);

            return(Json(jsonData));
        }