예제 #1
0
        private void postTradesforDate(BOaccount acc, DateTime reportdate, bool sendFee, bool sendPL, string token,
                                       string conStr, string account, string Broker)
        {
            var db = new EXANTE_Entities(_currentConnection);
            DateTime nextdate = reportdate.AddDays(1);
            IQueryable<CpTrade> cptradefromDb = from Cptrade in db.CpTrades
                                                where Cptrade.valid == 1 && Cptrade.BrokerId == Broker &&
                                                      Cptrade.ReportDate >= reportdate.Date &&
                                                      Cptrade.ReportDate < (nextdate.Date)
                                                //&& Cptrade.ReconAccount == null
                                                select Cptrade;
            List<CpTrade> cptradeitem = cptradefromDb.ToList();
            int tradesqty = 0;
            foreach (CpTrade cpTrade in cptradeitem)
            {
                if (cpTrade.ReconAccount == null)
                {
                    tradesqty = BoReconPostTrade(cpTrade, acc, conStr, token, tradesqty);

                    if (sendFee)
                    {
                        BoReconPostFee(cpTrade, conStr, acc, token);
                    }
                }
            }
            //json = FeeJsonfromCpTrade(cpTrade, accountnumber, "60002000000 - Exante Trading Account");

            if (sendPL)
            {
                IQueryable<FT> FTfromDb = from ft in db.FT
                                          where ft.valid == 1 && ft.brocker == acc.DBcpName &&
                                                ft.ReportDate >= reportdate.Date && ft.ReportDate < (nextdate.Date) &&
                                                ft.account_id == acc.BOaccountId && ft.Type == "PL"
                                          select ft;
                List<FT> FTfromDbeitem = FTfromDb.ToList();
                foreach (FT ft in FTfromDbeitem)
                {
                    BoReconPostPnL(ft, conStr, acc, token);
                }
            }
            if (tradesqty > 0)
            {
                db.SaveChanges();
                db.Dispose();
                LogTextBox.AppendText("\r\n Uploaded trades for " + reportdate.ToShortDateString() + ": " +
                                      tradesqty.ToString() + "/" + cptradeitem.Count);
            }
        }
예제 #2
0
 private static BOaccount GetAccount()
 {
     var db = new EXANTE_Entities(_currentConnection);
     List<DBBORecon_mapping> brockerlist = (from rec in db.DBBORecon_mapping
                                            where rec.valid == 1 && rec.NameProcess == _currentAcc
                                            select rec).ToList();
     var result = new BOaccount
         {
             accountNameCP = brockerlist[0].accountNameCP,
             BOaccountId = brockerlist[0].boaccountid,
             DBcpName = brockerlist[0].dbcp
         };
     return result;
 }
예제 #3
0
        private void button18_Click(object sender, EventArgs e)
        {
            //   const string conStr = "https://backoffice-recon.exante.eu:443/api/v1.5/accounts/"; // "ZAM1452.001/trade";
            //var strZamTransaction = "https://backoffice-recon.exante.eu:443/api/v1.5/accounts/ZAM1452.001/transaction";
            //    var strAdsTrade = "https://backoffice-recon.exante.eu:443/api/v1.5/accounts/ADS1450.002/trade";
            const string conStr = "https://backoffice.exante.eu:443/api/v1.5/accounts/"; // "ZAM1452.001/trade";
            string token = GetToken("https://authdb.exante.eu/api/1.0/auth/session", "backoffice");
            //var token = GetToken("https://authdb.prod.ghcg.com/api/1.0/auth/session", "backoffice");

            DateTime reportdate = ABNDate.Value;
            var acc = new BOaccount
                {
                    accountNameCP = null, // "EXANTE",
                    //   BOaccountId = "FQJ5082.001", // "ELC5351.001",UGN6015.001, "FQJ5082.001"
                    //  DBcpName = "Belarta"
                };

            //        var account = "FQJ5082.001";// "ELC5351.001",
            string broker = "Belarta";
            bool sendFee = false;
            //  var token = GetToken("https://authdb-recon.exante.eu/api/1.0/auth/session", "backoffice");
            var db = new EXANTE_Entities(_currentConnection);
            DateTime nextdate = reportdate.AddDays(1);
            IQueryable<CpTrade> cptradefromDb = from Cptrade in db.CpTrades
                                                where Cptrade.valid == 1 && Cptrade.BrokerId == broker &&
                                                      Cptrade.ReportDate >= reportdate.Date &&
                                                      Cptrade.ReportDate < (nextdate.Date)
                                                      && Cptrade.ReconAccount == null
                                                select Cptrade;
            List<CpTrade> cptradeitem = cptradefromDb.ToList();
            int tradesqty = 0;

            foreach (CpTrade cpTrade in cptradeitem)
            {
                acc.BOaccountId = cpTrade.account;
                if (cpTrade.ReconAccount == null)
                {
                    tradesqty = BoReconPostTrade(cpTrade, acc, conStr, token, tradesqty);
                    if (sendFee)
                    {
                        BoReconPostFee(cpTrade, conStr, acc, token);
                    }
                }
                SaveDBChanges(ref db);
            }
            if (tradesqty > 0)
            {
                SaveDBChanges(ref db);
                db.Dispose();
                LogTextBox.AppendText("\r\n Uploaded trades for " + reportdate.ToShortDateString() + ": " +
                                      tradesqty.ToString() + "/" + cptradeitem.Count);
            }
        }
예제 #4
0
 private int BoReconPostTrade(CpTrade cpTrade, BOaccount acc, string conStr, string token, int tradesqty)
 {
     string accountnumber = null;
     if (cpTrade.BOTradeNumber != null)
     {
         int? tradenumber = Convert.ToInt32(cpTrade.BOTradeNumber.Split(';')[0]);
         accountnumber = GetAccountIdFromTradeNumber(tradenumber);
     }
     BOjson json = JsonfromCpTrade(cpTrade, accountnumber, acc.accountNameCP);
     string requestPayload = JsonConvert.SerializeObject(json);
     //      if (SendJson(requestPayload, conStr + acc.BOaccountId + "/trade", token))
     if (SendJson(requestPayload, conStr + cpTrade.account + "/trade", token))
     {
         cpTrade.ReconAccount = cpTrade.account;
         tradesqty++;
     }
     else
     {
         LogTextBox.AppendText("\r\n Error in sending to BO for fullid: " + cpTrade.FullId);
     }
     return tradesqty;
 }
예제 #5
0
 private void BoReconPostPnL(FT ft, string conStr, BOaccount acc, string token)
 {
     FTjson bjson;
     bjson = PnlLeftJsonfromFt(ft, "PNL SETTLEMENT");
     string requestFTload = JsonConvert.SerializeObject(bjson);
     if (!SendJson(requestFTload, conStr + acc.BOaccountId + "/transaction", token))
     {
         LogTextBox.AppendText("\r\n Error in sending Left side VM to BO for fullid: " + ft.fullid);
     }
     bjson = PnlRightJsonfromFt(ft, "PNL SETTLEMENT");
     requestFTload = JsonConvert.SerializeObject(bjson);
     if (!SendJson(requestFTload, conStr + acc.BOaccountId + "/transaction", token))
     {
         LogTextBox.AppendText("\r\n Error in sending Right side VM to BO for fullid: " + ft.fullid);
     }
 }
예제 #6
0
 private void BoReconPostFee(CpTrade cpTrade, string conStr, BOaccount acc, string token)
 {
     FTjson bjson = null;
     bjson = FeeJsonfromCpTrade(cpTrade);
     string requestFTload = JsonConvert.SerializeObject(bjson);
     if (!SendJson(requestFTload, conStr + acc.BOaccountId + "/transaction", token))
     {
         LogTextBox.AppendText("\r\n Error in sending to fee to BO for fullid: " + cpTrade.FullId);
     }
 }