Ejemplo n.º 1
0
        /// <summary>
        /// this function only add accounts based on user request
        /// </summary>
        public async Task <NewAccountResponse> SetAccountsByUser(
            IReadOnlyList <NewAccountDetails> accountDetails, MasterUser user, CancellationToken cancellationToken)
        {
            m_ptrLogger.LogOk("START");
            Debug.Assert(user != null);
            NewAccountResponse response = new NewAccountResponse()
            {
                _usrDetails = user,
                _retCode    = RC_OK
            };

            foreach (NewAccountDetails details in accountDetails)
            {
                MT4Request ptrMT4Req = (MT4Request) new MT4Request();
                ptrMT4Req.accType       = eAccountType.ACC_TYPE_STANDARD_DEMO;
                ptrMT4Req.group         = details.Group;
                ptrMT4Req.leverage      = details.Leverage;
                ptrMT4Req.deposit       = details.Deposit;
                ptrMT4Req.masterLogin   = user._login;
                ptrMT4Req.reqType       = MT4REQ.MT4REQ_NEW_ACCOUNT;
                ptrMT4Req.requestMode   = MT4REQMODE.NEW_ACCOUNT;
                ptrMT4Req.status        = ORD_STAT_RECVD;
                ptrMT4Req.serverTransID = TransactionService.NewTransactionId();
                ptrMT4Req.ptrData       = user;
                _mt4Manager.Demo.insertMT4Request(ptrMT4Req);
                response.MT4Requests.Add(ptrMT4Req);
            }

            m_ptrLogger.LogOk("END");
            Debug.Assert(response._usrDetails._login > 0);
            return(response);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// this function only add a master user into the db; u
        /// </summary>
        public async Task <NewAccountResponse> RegistrationByUser(
            NewAccountRequest ptr, CancellationToken cancellationToken)
        {
            m_ptrLogger.LogOk("START");
            Debug.Assert(ptr._usrDetails != null);
            await _masterUserService.InsertMasterAccount(ptr._usrDetails, cancellationToken);

            NewAccountResponse response = new NewAccountResponse()
            {
                _usrDetails = ptr._usrDetails,
                _retCode    = RC_OK
            };

            m_ptrLogger.LogOk("END");
            Debug.Assert(response._usrDetails._login > 0);
            return(response);
        }
Ejemplo n.º 3
0
 static GeneratedAccount ToGeneratedAccount(NewAccountResponse response, byte[] certificatePublicPart) => new(
Ejemplo n.º 4
0
        /// <summary>
        /// handleNewAccountRequest; used only by WitFX; old name was CreateAccount
        /// </summary>
        public async Task <NewAccountResponse> SetAccountsByProduct(
            NewAccountRequest ptr, CancellationToken cancellationToken)
        {
            m_ptrLogger.LogOk("START");
            Debug.Assert(ptr._usrDetails != null);
            await _masterUserService.InsertMasterAccount(ptr._usrDetails, cancellationToken);

            bool ret = true;
            NewAccountResponse response;

            if (ret)
            {
                NewAccountResponse ptrResp = new NewAccountResponse(); //MT_NewAccountResponse_ID
                ptrResp._usrDetails = ptr._usrDetails;
                ptrResp._retCode    = RC_OK;
                response            = ptrResp; //m_connectionMgr.SendResponseToQueue(ptr._header._socketID, ptrResp, MT_NewAccountResponse_ID);

                var ptrproductDetails = await _productService.GetProductDetails(ptr._productid, cancellationToken);

                var cnt = ptrproductDetails.Count;
                for (int it = 0; it < cnt; it++)
                {
                    MT4Request ptrMT4Req = (MT4Request) new MT4Request();
                    //memset(ptrMT4Req, 0, sizeof(MT4Request));
                    ptrMT4Req.accType     = ptrproductDetails[it]._accounttype;
                    ptrMT4Req.group       = ptrproductDetails[it]._group;
                    ptrMT4Req.deposit     = ptrproductDetails[it]._deposit;
                    ptrMT4Req.leverage    = ptr._leverage;
                    ptrMT4Req.masterLogin = ptr._usrDetails._login;
                    ptrMT4Req.reqType     = MT4REQ.MT4REQ_NEW_ACCOUNT;
                    ptrMT4Req.requestMode = MT4REQMODE.NEW_ACCOUNT;
                    //ptrMT4Req.socketID = ptr._header._socketID;
                    ptrMT4Req.status        = ORD_STAT_RECVD;
                    ptrMT4Req.serverTransID = TransactionService.NewTransactionId();
                    //ptrMT4Req.ptrData = new MasterUser();
                    ptrMT4Req.ptrData = ptr._usrDetails;
                    if (ptrproductDetails[it]._serverid == SRV_TYPE_DEMO)
                    {
                        _mt4Manager.Demo.insertMT4Request(ptrMT4Req);
                    }
                    else
                    {
                        _mt4Manager.Live.insertMT4Request(ptrMT4Req);
                    }

                    ptrResp.MT4Requests.Add(ptrMT4Req);
                }

                /*MT4Request ptrMT4Req1 = (MT4Request)new MT4Request();
                 * //memset(ptrMT4Req1, 0, sizeof(MT4Request));
                 * ptrMT4Req1.accType = ACC_TYPE_FOLLOWER_DEMO;
                 * ptrMT4Req1.masterLogin = ptr._usrDetails._login;
                 * ptrMT4Req1.reqType = MT4REQ_NEW_ACCOUNT;
                 * ptrMT4Req1.requestMode = MT4REQMODE.NEW_ACCOUNT;
                 * ptrMT4Req1.socketID = ptr._header._socketID;
                 * ptrMT4Req1.status = ORD_STAT_RECVD;
                 * ptrMT4Req1.serverTransID = getUniqueRequestID();
                 * ptrMT4Req1.ptrData = new MasterUser();
                 * memcpy(out ptrMT4Req1.ptrData, &ptr._usrDetails, sizeof(MasterUser));
                 * m_ptrDemoMT4Manager.insertMT4Request(ptrMT4Req1);
                 *
                 * MT4Request ptrMT4Req2 = (MT4Request)new MT4Request();
                 * //memset(ptrMT4Req2, 0, sizeof(MT4Request));
                 * ptrMT4Req2.accType = ACC_TYPE_FOLLOWER_LIVE;
                 * ptrMT4Req2.masterLogin = ptr._usrDetails._login;
                 * ptrMT4Req2.reqType = MT4REQ_NEW_ACCOUNT;
                 * ptrMT4Req2.requestMode = MT4REQMODE.NEW_ACCOUNT;
                 * ptrMT4Req2.socketID = ptr._header._socketID;
                 * ptrMT4Req2.status = ORD_STAT_RECVD;
                 * ptrMT4Req2.serverTransID = getUniqueRequestID();
                 * ptrMT4Req2.ptrData = new MasterUser();
                 * memcpy(out ptrMT4Req2.ptrData, &ptr._usrDetails, sizeof(MasterUser));
                 * m_ptrLiveMT4Manager.insertMT4Request(ptrMT4Req2);
                 *
                 * MT4Request ptrMT4Req3 = (MT4Request)new MT4Request();
                 * //memset(ptrMT4Req3, 0, sizeof(MT4Request));
                 * ptrMT4Req3.accType = ACC_TYPE_REBATE;
                 * ptrMT4Req3.masterLogin = ptr._usrDetails._login;
                 * ptrMT4Req3.reqType = MT4REQ_NEW_ACCOUNT;
                 * ptrMT4Req3.requestMode = MT4REQMODE.NEW_ACCOUNT;
                 * ptrMT4Req3.socketID = ptr._header._socketID;
                 * ptrMT4Req3.status = ORD_STAT_RECVD;
                 * ptrMT4Req3.serverTransID = getUniqueRequestID();
                 * ptrMT4Req3.ptrData = new MasterUser();
                 * memcpy(out ptrMT4Req3.ptrData, &ptr._usrDetails, sizeof(MasterUser));
                 * m_ptrDemoMT4Manager.insertMT4Request(ptrMT4Req3); */
            }//if (ret)
            else
            {
                NewAccountResponse ptrResp = new NewAccountResponse(); // MT_NewAccountResponse_ID
                //memcpy(ref ptrResp._usrDetails, ptr._usrDetails);
                ptrResp._usrDetails = ptr._usrDetails;
                ptrResp._retCode    = RC_ERROR;
                response            = ptrResp; //  m_connectionMgr.SendResponseToQueue(ptr._header._socketID, ptrResp, MT_NewAccountResponse_ID);
            }//else of if (ret)
            m_ptrLogger.LogOk("END");
            Debug.Assert(response._usrDetails._login > 0);
            //TODO: insertDBTransmitData(response._usrDetails._login, FDMT_MasterUser_ID);
            //send email to user
            //sendRegistrationEmail(ptr->_usrDetails._login, ptr->_usrDetails._password, ptr-
            return(response);
        }