public void BulkInsertCurrencyIndicatorTable()
        {
            using (var ctx = new ntpContext())
            {
                var recs = (from r in ctx.IndicatorData
                            select new ReleaseDto()
                {
                    Id = 0,
                    Currency = r.Currency,
                    Indicator = r.Indicator
                }).Distinct().OrderBy(r => r.Currency).ThenBy(d => d.Indicator).ToList();

                foreach (var rec in recs)
                {
                    var dto = new IndicatorDataCcyName()
                    {
                        CreateDate = DateTime.Now,
                        Currency   = rec.Currency,
                        Indicator  = rec.Indicator,
                        IsActive   = true,
                    };

                    Console.WriteLine(dto.Currency + " " + dto.Indicator);
                    ctx.IndicatorDataCcyName.Add(dto);
                }

                ctx.SaveChanges();
            }
        }
        public async Task <IActionResult> PutIndicatorDataCcyName(int id, IndicatorDataCcyName indicatorDataCcyName)
        {
            if (id != indicatorDataCcyName.Id)
            {
                return(BadRequest());
            }

            _context.Entry(indicatorDataCcyName).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!IndicatorDataCcyNameExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public List <IndicatorDataCcyName> BulkUpdateCcyNames()
        {
            // ccy indicator table
            var ccyRecs = (from r in this.dbContext.Set <IndicatorData>()
                           select new ReleaseDto()
            {
                Currency = r.Currency,
                Indicator = r.Indicator
            }).Distinct().OrderBy(r => r.Currency).ThenBy(d => d.Indicator).ToList();

            List <IndicatorDataCcyName> updateRecs = new List <IndicatorDataCcyName>();

            foreach (var rec in ccyRecs)
            {
                var exist = this.dbContext.Set <IndicatorDataCcyName>()
                            .Where(r => r.Currency == rec.Currency && r.Indicator == rec.Indicator)
                            .FirstOrDefault();

                if (exist == null)
                {
                    var newRec = new IndicatorDataCcyName
                    {
                        Id         = 0,
                        CreateDate = DateTime.Now,
                        Currency   = rec.Currency,
                        Indicator  = rec.Indicator,
                        IsActive   = true
                    };
                    this.dbContext.Set <IndicatorDataCcyName>().Add(newRec);
                }
                else
                {
                    exist.ModifyDate = DateTime.Now;
                    exist.Currency   = rec.Currency;
                    exist.Indicator  = rec.Indicator;

                    this.dbContext.Entry(exist).State = EntityState.Modified;
                    updateRecs.Add(exist);
                }
            }
            try
            {
                this.dbContext.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(this.dbContext.Set <IndicatorDataCcyName>().ToList());
        }
        public async Task <ActionResult <IndicatorDataCcyName> > PostIndicatorDataCcyName(IndicatorDataCcyName indicatorDataCcyName)
        {
            _context.IndicatorDataCcyName.Add(indicatorDataCcyName);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetIndicatorDataCcyName", new { id = indicatorDataCcyName.Id }, indicatorDataCcyName));
        }