Esempio n. 1
0
        public IActionResult Post([FromBody] Financial financial)
        {
            financial.Period = 7;

            _context.FinancialSet.Add(financial);

            _context.SaveChanges();

            return(Ok());
        }
        public bool Delete(int id)
        {
            var result = false;
            var x      = Find(id);

            if (x != null)
            {
                _xcontext.Set <T>().Remove(x);
                _xcontext.SaveChanges();
                result = true;
            }
            return(result);
        }
Esempio n. 3
0
        public IActionResult Post([FromBody] Quote quote)
        {
            quote.lastUpdate = DateTime.Now;

            _context.QuoteSet.Update(quote);

            _context.SaveChanges();

            return(Ok());
        }
Esempio n. 4
0
        public async Task <IActionResult> Post()
        {
            MicexISSClient micexClient = new MicexISSClient(new CommonLib.WebApiClient());

            var           apiClient     = new CommonLib.WebApiClient();
            TinkoffClient tinkoffClient = new TinkoffClient(apiClient);

            apiClient.addHeader("Authorization", "Bearer t.FwRjwQy5LHo3uXE0iQ6D4VGVFRvccr1_PItEHgLIOt4sc7QkQkBzd_eDACB0TTfnBBOWi_mtg84cPbvKwD4gpQ");

            string tinkoff_stocks = await tinkoffClient.GetStocks();

            string moex_json = await micexClient.GetSecurityList("shares", "TQBR");

            JObject obj     = JObject.Parse(tinkoff_stocks);
            JObject moexObj = JObject.Parse(moex_json);

            JArray instruments = (JArray)obj["payload"]["instruments"];
            JArray moex_data   = (JArray)moexObj["securities"]["data"];

            IList <string> moex_columns = moexObj["securities"]["columns"].Select(c => (string)c).ToList();

            int            isin_column = moex_columns.IndexOf("ISIN");
            IList <string> moex_isin   = moex_data.Select(t => (string)t[isin_column]).ToList();


            foreach (var jtoken in instruments)
            {
                SecurityRaw raw = jtoken.ToObject <SecurityRaw>();
                raw.Board = moex_isin.Contains(raw.isin) ? "TQBR" : "SPBMX";

                Security sec = _context.SecuritySet.Include(s => s.Emitent).SingleOrDefault(c => c.ISIN == raw.isin);
                if (sec != null)
                {
                    raw.Processed = true;
                    raw.Emitent   = sec.Emitent.Code;
                }
                ;

                if (!_context.SecurityRawSet.Any(r => r.isin == raw.isin))
                {
                    _context.SecurityRawSet.Add(raw);
                }
            }

            _context.SaveChanges();



            return(Ok());
        }
Esempio n. 5
0
        public IActionResult Post([FromBody] Deal deal)
        {
            //TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time");
            TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Europe/Moscow");

            deal.Date         = TimeZoneInfo.ConvertTimeFromUtc(deal.Date, cstZone);
            deal.DeliveryDate = TimeZoneInfo.ConvertTimeFromUtc(deal.DeliveryDate, cstZone);

            _context.DealSet.Add(deal);

            _context.SaveChanges();

            return(Ok());
        }
Esempio n. 6
0
        //Create and Edit
        public static ResponseResult Update(PeminjamanViewModel entity)
        {
            ResponseResult result = new ResponseResult();

            try
            {
                using (var db = new XContext())
                {
                    #region Create New / Insert
                    if (entity.Id == 0)
                    {
                        x_peminjaman peminjaman = new x_peminjaman();

                        peminjaman.biodata_id      = entity.BiodataId;
                        peminjaman.book_id         = entity.BookId;
                        peminjaman.pegawai         = entity.Pegawai;
                        peminjaman.tanggal_pinjam  = entity.TanggalPinjam;
                        peminjaman.tanggal_kembali = entity.TanggalKembali;

                        peminjaman.status = "Dipinjam";

                        peminjaman.created_by = 1;
                        peminjaman.created_on = DateTime.Now;

                        db.x_peminjaman.Add(peminjaman);
                        db.SaveChanges();

                        result.Entity = entity;
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
Esempio n. 7
0
        public static ResponseResult Pengembalian(long id, string button)
        {
            ResponseResult result = new ResponseResult();

            try
            {
                using (var db = new XContext())
                {
                    x_peminjaman permission = db.x_peminjaman
                                              .Where(o => o.id == id)
                                              .FirstOrDefault();

                    if (id != 0)
                    {
                        permission.status = button;

                        permission.modified_by = 1;
                        permission.modified_on = DateTime.Now;

                        permission.tanggal_dikembalikan = DateTime.Now;

                        db.SaveChanges();
                        //result.Entity = entity;
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = "Not Found ! ";
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
Esempio n. 8
0
        //Delete
        public static ResponseResult Delete(CategoryViewModel entity)
        {
            ResponseResult result = new ResponseResult();

            try
            {
                using (var db = new XContext())
                {
                    x_category category = db.x_category
                                          .Where(o => o.Id == entity.Id)
                                          .FirstOrDefault();

                    if (category != null)
                    {
                        category.delete_by = 1;
                        category.delete_on = DateTime.Now;

                        category.is_delete = true;

                        db.SaveChanges();

                        result.Entity = entity;
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = "Category Not Found ! ";
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
Esempio n. 9
0
        //Delete
        public static ResponseResult Delete(PeminjamanViewModel entity)
        {
            ResponseResult result = new ResponseResult();

            try
            {
                using (var db = new XContext())
                {
                    x_peminjaman peminjaman = db.x_peminjaman
                                              .Where(o => o.id == entity.Id)
                                              .FirstOrDefault();

                    if (peminjaman != null)
                    {
                        peminjaman.deleted_by = 1;
                        peminjaman.deleted_on = DateTime.Now;

                        peminjaman.is_delete = true;

                        db.SaveChanges();

                        result.Entity = entity;
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = "Data Not Found ! ";
                    }
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
Esempio n. 10
0
        //Create and Update
        public static ResponseResult Update(CategoryViewModel entity)
        {
            ResponseResult result = new ResponseResult();

            try
            {
                using (var db = new XContext())
                {
                    #region Create New / Insert
                    if (entity.Id == 0)
                    {
                        x_category category = new x_category();
                        category.initial     = entity.Initial;
                        category.name        = entity.Name;
                        category.description = entity.Description;

                        category.is_delete = false;

                        category.created_by = 1;
                        category.created_on = DateTime.Now;

                        db.x_category.Add(category);
                        db.SaveChanges();

                        result.Entity = entity;
                    }
                    #endregion
                    #region Edit
                    else
                    {
                        x_category category = db.x_category
                                              .Where(o => o.Id == entity.Id)
                                              .FirstOrDefault();

                        if (category != null)
                        {
                            category.initial     = entity.Initial;
                            category.name        = entity.Name;
                            category.description = entity.Description;

                            category.modified_by = 1;
                            category.modified_on = DateTime.Now;

                            db.SaveChanges();

                            result.Entity = entity;
                        }
                        else
                        {
                            result.Success = false;
                            result.Message = "Category Not Found ! ";
                        }
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
Esempio n. 11
0
        public async Task <IActionResult> Post([FromBody] YahooRequest request)
        {
            if (request.Type == "process")
            {
                foreach (string code in request.Codes)
                {
                    var raw = _context.YahooFinanceRawSet.FirstOrDefault(y => y.Code == code && y.Status == FinanceProcessEnum.Loaded);

                    JObject obj = JObject.Parse(raw.Data);

                    System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);

                    IList <CommonLib.Objects.FinanceAnnual> _reports = obj["timeSeries"]["timestamp"]
                                                                       .Select(s => new CommonLib.Objects.FinanceAnnual()
                    {
                        Id         = Guid.NewGuid(),
                        Code       = code,
                        CreateDate = DateTime.Now,
                        Data       = "",
                        Year       = dateTime.AddSeconds((int)s).Year
                    })
                                                                       .OrderByDescending(r => r.Year)
                                                                       .ToList();

                    for (int i = 0; i < _reports.Count; i++)
                    {
                        JObject report = new JObject();
                        report["financialsTemplate"] = obj["financialsTemplate"];
                        report["incomeStatement"]    = obj["incomeStatementHistory"]["incomeStatementHistory"][i];
                        report["balanceSheet"]       = obj["balanceSheetHistory"]["balanceSheetStatements"][i];
                        report["cashflowStatement"]  = obj["cashflowStatementHistory"]["cashflowStatements"][i];
                        _reports[i].Data             = report.ToString();
                    }

                    foreach (var rep in _reports)
                    {
                        if (_context.FinanceAnnualSet.Count(f => f.Code == rep.Code && f.Year == rep.Year) == 0)
                        {
                            _context.FinanceAnnualSet.Add(rep);
                        }
                    }

                    raw.Status = FinanceProcessEnum.Processed;
                    _context.SaveChanges();
                }
            }

            if (request.Type == "financial")
            {
                var         apiClient   = new CommonLib.WebApiClient();
                YahooClient yahooClient = new YahooClient(apiClient);

                apiClient.addHeader("x-rapidapi-host", "apidojo-yahoo-finance-v1.p.rapidapi.com");
                apiClient.addHeader("x-rapidapi-key", "d8c3e2c892msh13cac0704b75eb0p115a47jsn5be47ce5097d");

                foreach (string code in request.Codes)
                {
                    string resp = await yahooClient.GetFinancial(code);

                    JObject obj = JObject.Parse(resp);

                    int max_timestamp = obj["timeSeries"]["timestamp"].Select(s => (int)s).Max();

                    System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);

                    var raw = _context.YahooFinanceRawSet.FirstOrDefault(y => y.Code == code && y.Status == FinanceProcessEnum.Init);

                    raw.Data        = resp;
                    raw.LoadDate    = DateTime.Now;
                    raw.Status      = FinanceProcessEnum.Loaded;
                    raw.LastFinance = dateTime.AddSeconds(max_timestamp);

                    _context.SaveChanges();
                }
            }

            if (request.Type == "init")
            {
                foreach (string code in request.Codes)
                {
                    _context.YahooFinanceRawSet.Add(new CommonLib.Objects.YahooFinanceRaw()
                    {
                        Id     = Guid.NewGuid(),
                        Status = FinanceProcessEnum.Init,
                        Code   = code,
                    });
                }

                _context.SaveChanges();
            }


            return(Ok());
        }
Esempio n. 12
0
        public IActionResult Post()
        {
            //calculate all

            _context.Database.ExecuteSqlCommand("TRUNCATE TABLE \"SnapshootSet\"");
            _context.SaveChanges();

            List <PortfolioSnapshoot>   snapshoots     = new List <PortfolioSnapshoot>();
            IDictionary <DateTime, int> snapshootIndex = new Dictionary <DateTime, int>();

            Func <PortfolioSnapshoot, PortfolioSnapshoot> copySnap = (snap) =>
            {
                PortfolioSnapshoot result = new PortfolioSnapshoot();

                string json = snap.toJson();

                result.read(json);
                //result.PositionItems = snap.PositionItems.ToList();

                return(result);
            };

            Func <DateTime, PortfolioSnapshoot> getSnap = (dt) =>
            {
                var _dt = dt.Date;

                PortfolioSnapshoot result = null;

                if (snapshootIndex.ContainsKey(_dt))
                {
                    result = snapshoots[snapshootIndex[_dt]];
                }

                if (!snapshootIndex.ContainsKey(_dt))
                {
                    int lastIndex = snapshootIndex.Values.Max();
                    result = copySnap(snapshoots[lastIndex]);

                    snapshootIndex.Add(_dt, lastIndex + 1);
                    snapshoots.Add(result);
                }

                return(result);
            };

            Action <PortfolioSnapshoot, Deal> increase = (snap, deal) =>
            {
                snap.increse(deal.accountId, deal.security.Code, deal.Date.Date, deal.Count);
            };

            Action <PortfolioSnapshoot, Deal> decrease = (snap, deal) =>
            {
                snap.decrease(deal.accountId, deal.security.Code, deal.Date.Date, deal.Count);
            };

            var deals = _context.DealSet.Include(d => d.security)
                        //.Where(d => (d.Date > new DateTime(2017, 01, 18)) && (d.security.Code == "LKOH"))
                        //.OrderBy(d => d.Number).ToList();
                        .OrderBy(d => d.Date).ThenBy(d => d.security.Region).ThenBy(d => d.Number);

            var dates = deals.Select(d => d.Date.Date).Distinct().OrderBy(d => d).ToList();

            snapshoots.Add(new PortfolioSnapshoot());
            snapshootIndex.Add(dates.First(), 0);

            foreach (Deal deal in deals)
            {
                var snap = getSnap(deal.Date);

                if (deal.Operation == OrderOperationEnum.Buy)
                {
                    increase(snap, deal);
                }

                if (deal.Operation == OrderOperationEnum.Sell)
                {
                    decrease(snap, deal);
                }
            }

            foreach (int index in snapshootIndex.Values)
            {
                SnapshootData snapshootData = new SnapshootData()
                {
                    Id         = Guid.NewGuid(),
                    ChangeDate = snapshootIndex.Single(kv => kv.Value == index).Key,
                    Data       = snapshoots[index].toJson()
                };

                _context.SnapshootSet.Add(snapshootData);
            }

            _context.SaveChanges();

            string last = snapshoots.Last().toJson();

            return(Ok());
        }
Esempio n. 13
0
 public int Complete()
 {
     return(_xContext.SaveChanges());
 }
Esempio n. 14
0
        public IActionResult Post([FromBody] ImportRequest requestModel)
        {
            if (requestModel.Object == "deal")
            {
                var dealRaws = _context.DealRawSet.ToList();
                var accounts = _context.AccountSet.ToList();

                foreach (DealRaw rawItem in dealRaws)
                {
                    var security = _context.SecuritySet.Single(s => s.Code == rawItem.symbol);

                    Deal deal = new Deal()
                    {
                        Number       = rawItem.number,
                        Operation    = rawItem.operation == "Купля" ? OrderOperationEnum.Buy : OrderOperationEnum.Sell,
                        securityId   = security.Id,
                        accountId    = accounts.Single(a => a.Client == rawItem.client).Id,
                        Board        = rawItem.board,
                        Date         = DateTime.ParseExact($"{rawItem.date} {rawItem.time}", "dd.MM.yyyy HH:mm:ss", CultureInfo.InvariantCulture),
                        DeliveryDate = DateTime.ParseExact(rawItem.delivery_date, "dd.MM.yyyy", CultureInfo.InvariantCulture),
                        Count        = rawItem.count,
                        Price        = rawItem.price,
                        Volume       = rawItem.volume,
                        NKD          = security.Market == "bonds" ? rawItem.nkd : null
                    };

                    _context.DealSet.Add(deal);
                }

                _context.SaveChanges();
            }

            if (requestModel.Object == "stock")
            {
                foreach (string isin in requestModel.ISIN)
                {
                    Emitent emitent = null;

                    SecurityRaw rawItem = _context.SecurityRawSet.Single(s => s.isin == isin);

                    if (string.IsNullOrEmpty(rawItem.Emitent))
                    {
                        emitent = new Emitent()
                        {
                            Code          = rawItem.ticker,
                            Name          = rawItem.name,
                            FinancialPage = rawItem.Board == "SPBMX" ? rawItem.ticker : $"{rawItem.ticker}.ME"
                        };
                    }
                    else
                    {
                        emitent = _context.EmitentSet.Single(e => e.Code == rawItem.Emitent);
                    }

                    Share stock = new Share()
                    {
                        Emitent  = emitent,
                        ISIN     = rawItem.isin,
                        Code     = rawItem.ticker,
                        Name     = rawItem.name,
                        Region   = rawItem.Board == "SPBMX" ? "United States" : "Moscow",
                        Currency = rawItem.currency,
                        Market   = "shares",
                        Board    = rawItem.Board
                    };

                    Quote quote = new Quote()
                    {
                        Id     = Guid.NewGuid(),
                        figi   = rawItem.figi,
                        symbol = rawItem.ticker,
                        Board  = rawItem.Board
                    };

                    _context.ShareSet.Add(stock);
                    _context.QuoteSet.Add(quote);


                    rawItem.Processed = true;
                    rawItem.Emitent   = emitent.Code;

                    _context.SecurityRawSet.Update(rawItem);

                    _context.SaveChanges();
                }
            }

            return(Ok());
        }
Esempio n. 15
0
        //Create and Update
        public static ResponseResult Update(BiodataViewModel entity)
        {
            ResponseResult result = new ResponseResult();

            try
            {
                using (var db = new XContext())
                {
                    #region Create New / Insert
                    if (entity.Id == 0)
                    {
                        x_biodata biodata = new x_biodata();
                        biodata.identity_number = entity.NPM;
                        biodata.fullname        = entity.FullName;
                        biodata.pob             = entity.Pob;
                        biodata.dob             = entity.Dob;
                        biodata.gender          = entity.Gender;
                        biodata.religion        = entity.Religion;
                        biodata.email           = entity.Email;
                        biodata.phone_number1   = entity.Phone_number;
                        biodata.faculty         = entity.Faculty;
                        biodata.major           = entity.Major;

                        biodata.is_delete = false;

                        biodata.created_by = 1;
                        biodata.created_on = DateTime.Now;

                        db.x_biodata.Add(biodata);
                        db.SaveChanges();

                        result.Entity = entity;
                    }
                    #endregion
                    #region Edit
                    else
                    {
                        x_biodata biodata = db.x_biodata
                                            .Where(o => o.id == entity.Id)
                                            .FirstOrDefault();

                        if (biodata != null)
                        {
                            biodata.identity_number = entity.NPM;
                            biodata.fullname        = entity.FullName;
                            biodata.pob             = entity.Pob;
                            biodata.dob             = entity.Dob;
                            biodata.gender          = entity.Gender;
                            biodata.religion        = entity.Religion;
                            biodata.email           = entity.Email;
                            biodata.phone_number1   = entity.Phone_number;
                            biodata.faculty         = entity.Faculty;
                            biodata.major           = entity.Major;

                            biodata.modified_by = 1;
                            biodata.modified_on = DateTime.Now;

                            db.SaveChanges();

                            result.Entity = entity;
                        }
                        else
                        {
                            result.Success = false;
                            result.Message = "Data Not Found ! ";
                        }
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
 public void Add(T model)
 {
     _xContext.Set <T>().Add(model);
     _xContext.SaveChanges();
 }
Esempio n. 17
0
        public static ResponseResult Update(BookViewModel entity)
        {
            ResponseResult result = new ResponseResult();

            try
            {
                using (var db = new XContext())
                {
                    #region Create New / Insert
                    if (entity.Id == 0)
                    {
                        x_book book = new x_book();

                        book.category_id = entity.CategoryId;
                        book.judul       = entity.Judul;
                        book.penerbit    = entity.Penerbit;
                        book.pengarang   = entity.Pengarang;
                        book.tahun       = entity.Tahun;
                        book.lokasi_rak  = entity.LokasiRak;
                        book.deskripsi   = entity.Deskripsi;

                        book.created_by = 1;
                        book.created_on = DateTime.Now;

                        db.x_book.Add(book);
                        db.SaveChanges();

                        result.Entity = entity;
                    }
                    #endregion

                    #region Edit
                    else
                    {
                        x_book book = db.x_book
                                      .Where(o => o.id == entity.Id)
                                      .FirstOrDefault();

                        if (book != null)
                        {
                            book.category_id = entity.CategoryId;
                            book.judul       = entity.Judul;
                            book.penerbit    = entity.Penerbit;
                            book.pengarang   = entity.Pengarang;
                            book.tahun       = entity.Tahun;
                            book.lokasi_rak  = entity.LokasiRak;
                            book.deskripsi   = entity.Deskripsi;

                            book.modified_by = 1;
                            book.modified_on = DateTime.Now;

                            db.SaveChanges();

                            result.Entity = entity;
                        }
                        else
                        {
                            result.Success = false;
                            result.Message = "Data Not Found !";
                        }
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
 public int Clean()
 {
     return(_xcontext.SaveChanges());
 }
Esempio n. 19
0
 public int Flush()
 {
     return(_xcontext.SaveChanges());
 }
Esempio n. 20
0
 public void Commit()
 {
     dataContext.SaveChanges();
 }