Пример #1
0
        private static async Task <AccountDetails> CreateAccount(System.Net.Http.HttpClient client)
        {
            var requestData = new NewAccountRequest()
            {
                AccountName = "Test Account - " + Guid.NewGuid().ToString()
            };
            var response = await client.PostAsJsonAsync("/api/Accounts", requestData);

            response.EnsureSuccessStatusCode();
            var responseData = await response.Content.ReadAsJsonAsync <AccountDetails>();

            return(responseData);
        }
Пример #2
0
        public async Task The_Account_Starts_With_The_Correct_Opening_Balance()
        {
            var client = _factory.CreateDefaultClient();

            var requestData = new NewAccountRequest()
            {
                AccountName = "Test Account - " + Guid.NewGuid().ToString()
            };

            var response = await client.PostAsJsonAsync("/api/Accounts", requestData);

            response.EnsureSuccessStatusCode();
            var responseData = await response.Content.ReadAsJsonAsync <AccountDetails>();

            Assert.Equal(Constants.OpeningBalance, responseData.OpeningCash);
        }
Пример #3
0
        public async Task The_Account_Has_No_Money_From_Transactions()
        {
            var client = _factory.CreateDefaultClient();

            var requestData = new NewAccountRequest()
            {
                AccountName = "Test Account - " + Guid.NewGuid().ToString()
            };

            var response = await client.PostAsJsonAsync("/api/Accounts", requestData);

            response.EnsureSuccessStatusCode();
            var responseData = await response.Content.ReadAsJsonAsync <AccountDetails>();

            Assert.Equal(0, responseData.TotalFromTransactions);
        }
Пример #4
0
        public async Task The_Account_Number_Is_Generated()
        {
            var client = _factory.CreateDefaultClient();

            var requestData = new NewAccountRequest()
            {
                AccountName = "Test Account - " + Guid.NewGuid().ToString()
            };

            var response = await client.PostAsJsonAsync("/api/Accounts", requestData);

            response.EnsureSuccessStatusCode();
            var responseData = await response.Content.ReadAsJsonAsync <AccountDetails>();

            Assert.NotEqual(Guid.Empty, responseData.AccountNumber);
        }
Пример #5
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);
        }
Пример #6
0
        private static async Task <Guid> RegisterAccount(HttpClient httpClient, string account_name)
        {
            var requestData = new NewAccountRequest()
            {
                AccountName = account_name
            };

            var response = await httpClient.PostAsJsonAsync("/api/Accounts", requestData);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var responseData = await response.Content.ReadAsJsonAsync <AccountDetails>();

                return(responseData.AccountNumber);
            }

            throw new Exception(await response.Content.ReadAsStringAsync());
        }
Пример #7
0
        private void CreateNewAccount()
        {
            NewAccountRequest r = new NewAccountRequest
            {
                firstname = FirstNameBox.Text,
                age       = Int32.Parse(AgeBox.Text),
                isman     = ToggleSwitch.IsOn,
                lastname  = LastNameBox.Text,
                username  = UsernameBox.Text,
                password  = PasswordBox.Text,
                friends   = new List <User>()
            };

            Packet p = new Packet {
                PacketType = EPacketType.NewAccountRequest, Payload = JsonConvert.SerializeObject(r)
            };

            TcpClient.DoRequest(p, NewAccountCallback);
        }
Пример #8
0
        public async Task <ActionResult <AccountDetails> > Post(NewAccountRequest newAccountRequest)
        {
            var existingAccount = await _accountByNameQuery.Evaluate(newAccountRequest.AccountName);

            if (existingAccount != null)
            {
                return(new BadRequestObjectResult($"An account already exists with the name {newAccountRequest.AccountName}, please choose a different name."));
            }

            var account = new AccountDetails()
            {
                AccountName           = newAccountRequest.AccountName,
                AccountNumber         = Guid.NewGuid(),
                OpeningCash           = 10000,
                Portfolio             = new List <Investment>(),
                TotalFromTransactions = 0
            };

            await _updateAccountAction.Execute(account);

            return(account);
        }
Пример #9
0
            private void HandleNonLoggedInRequests()
            {
                while (!loggedIn)
                {
                    req = (Request)br.Read();
                    if (req.SessionID != sessionID)
                    {
                        return;
                    }

                    switch (req.Type)
                    {
                    case RequestType.NewAccount:
                        NewAccountRequest NAReq = (NewAccountRequest)req;
                        (success, reason) = server.database.AddUser(NAReq.email, NAReq.username, NAReq.password);
                        if (success)
                        {
                            resp = new SuccessResponse(sessionID);
                        }
                        else
                        {
                            resp = new FailResponse(reason, sessionID);
                        }
                        reason = null;
                        break;

                    case RequestType.SignIn:
                        SignInRequest SIReq = (SignInRequest)req;
                        (success, reason) = server.database.SignIn(SIReq.username, SIReq.password);
                        if (success)
                        {
                            resp = GetAccountInfo(SIReq.username);
                            if (server.writersPerUsername.TryAdd(SIReq.username, bw))
                            {
                                loggedUser = SIReq.username;
                                server.loggedInUsers.Add(loggedUser);
                                loggedIn = true;
                            }
                        }
                        else
                        {
                            resp = new FailResponse(reason, sessionID);
                        }
                        reason = null;
                        break;

                    default:
                        resp = new FailResponse("Unsupported request type detected.", sessionID);
                        break;
                    }

                    req = null;

                    if (resp != null)
                    {
                        bw.Write(resp);
                        //resp.Send(bw);

                        resp = null;
                        if (loggedIn)
                        {
                            return;
                        }
                    }
                }
            }
Пример #10
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);
        }
Пример #11
0
        private void createAccountBtn_Clicked(object sender, EventArgs e)
        {
            indicator.IsVisible = true;
            indicator.IsRunning = true;
            //Task.Run(() => {
            try{
                if (!client.Connected)
                {
                    client    = Connection.Connect(hostname, defaultPort, ref writer, ref reader);
                    sessionID = (long)reader.Read();
                }
                NewAccountRequest req = default;
                var email             = emailEntry.Text.Trim();
                var username          = usernameEntry.Text.Trim();
                var passwd            = passwordEntry.Text;
                //if (username.Length <= 7)
                //{
                //	DisplayAlert(FormatErrorTitle, UsernameFormatErrorMessage, ConnectionErrorCancel);
                //	return;
                //}
                //if (passwd.Length <= 7)
                //{
                //	DisplayAlert(FormatErrorTitle, PasswordFormatErrorMessage, ConnectionErrorCancel);
                //	return;
                //}
                req = new NewAccountRequest(email.ToEmail(),
                                            username.ToUsername(), passwd.ToPassword(), sessionID);
                writer.Write(req);
                //req.Send(writer);

                Response resp = (Response)reader.Read();
                if (resp.SessionID == sessionID)
                {
                    //switch ((ResponseType)Enum.Parse(typeof(ResponseType), (string)reader.Read()))
                    switch (resp.Type)
                    {
                    case ResponseType.Success:
                        loginBtn.IsVisible   = true;
                        emailEntry.IsVisible = false;
                        emailLabel.IsVisible = false;
                        btnGrid.IsVisible    = true;
                        btnStack.IsVisible   = false;

                        emailEntry.Text    = "";
                        usernameEntry.Text = "";
                        passwordEntry.Text = "";
                        DisplayAlert(AccountCreateSuccessTitle, AccountCreateSuccessMessage, DefaultCancel);
                        break;

                    case ResponseType.Fail:
                        FailResponse FResp = (FailResponse)resp;                                         //.Read(reader, sessionID);
                        DisplayAlert(AccountCreateFailTitle, FResp.Reason, DefaultCancel);
                        break;
                    }
                }
                else
                {
                    Connection.Disconnect(ref client, ref reader, ref writer);
                }
            }
            catch (SocketException)
            {
                DisplayAlert(ConnectionErrorTitle, ConnectionErrorMessage, DefaultCancel);
            }
            catch (FormatException)
            {
                DisplayAlert(FormatErrorTitle, EmailFormatErrorMessage, DefaultCancel);
            }
            //catch (InvalidSessionIDException)
            //{
            //	DisplayAlert(FormatErrorTitle, EmailFormatErrorMessage, EmailFormatErrorCancel);
            //}
            finally
            {
                indicator.IsVisible = false;
                indicator.IsRunning = false;
            }
            //});
        }