MT4 manager gRPC API dot net client example
Table of Contents
Install dot net 6 SDK to run an example
This example has a dynamic client libraries generation provided by grpc tools nuget.
Once you run a dotnet build command, libraries would be generated in the bin/debug/net6.0 folder.
You can use a reference to it in you code.
Input your credentials for server, before runnig
using Grpc.Net.Client;
using Mng4Grpc;
var channel = GrpcChannel.ForAddress("https://mng4grpc.mtapi.io:443");
var mainControllerClient = new MainController.MainControllerClient(channel);
var connectionResponse = mainControllerClient.Connect(new ConnectRequest()
{
Password = "",
User = 1,
Server = "",
});
if (connectionResponse.Error != null)
throw new Exception(connectionResponse.Error.Message);
Console.WriteLine("Connect response: " + connectionResponse.Result);
var accountsListReply = mainControllerClient.AccountsList(new AccountsRequest()
{
Id = connectionResponse.Result
});
if (accountsListReply.Error != null)
throw new Exception(accountsListReply.Error.Message);
var accountIds = accountsListReply.Result;
Console.WriteLine($"Accounts found: {accountIds?.Count.ToString() ?? 0.ToString()}");
if (accountIds != null)
foreach (var accountId in accountIds)
{
Console.WriteLine($"Account id: {accountId.ToString()}");
var accountDetailsReply = mainControllerClient.AccountDetails(new AccountDetailsRequest()
{
Id = connectionResponse.Result,
Login = accountId
});
if (accountDetailsReply.Error != null)
throw new Exception(accountDetailsReply.Error.Message);
var accountDetails = accountDetailsReply.Result;
if (accountDetails != null)
{
Console.WriteLine($"Account name: {accountDetails.Name}");
Console.WriteLine($"Account credit: {accountDetails.Credit}");
Console.WriteLine($"Account balance: {accountDetails.Balance}");
Console.WriteLine($"Account status: {accountDetails.Status}");
}
}
channel.ShutdownAsync().Wait();