//TODO: handleSMFollowerRequest public async Task <AddSMFollowerResponse> AddSMFollower( AddSMFollowerRequest ptr, CancellationToken cancellationToken) { AddSMFollowerResponse ptrResp = null; m_ptrLogger.LogOk("START"); if (ptr._dataTransMode == DT_TRANS_ADD) { await _followerService.InsertSMFollower(ptr._smfollower, cancellationToken); bool ret = true; ptrResp = new AddSMFollowerResponse(); // MT_AddSMFollowerResponse_ID ptrResp._retCode = ret == true ? RC_OK : RC_ERROR; ptrResp._dataTransMode = ptr._dataTransMode; CppHelper.memcpy(ref ptrResp._smfollower, ptr._smfollower); //SentDataUsingSocketID(ptrResp, MT_AddSMFollowerResponse_ID, ptr._header._socketID); if (ret) { //await AddFollowerAsync(ptr._smfollower._smMT4Login, ptr._smfollower._followerMT4Login, // ptr._smfollower._followerMT4ServerIndex, cancellationToken); //await AddFollowerVolumeAsync(ptr._smfollower._smSignalIndex, ptr._smfollower._followerMT4ServerIndex, // ptr._smfollower._followerMT4Login, ptr._smfollower._followervolume, cancellationToken); m_ptrLogger.LogInfo( "SM follower added Follower master login: %d SM master login : %d SignalIndex: %d", ptr._smfollower._followerMasterLogin, ptr._smfollower._smMasterLogin, ptr._smfollower._smSignalIndex); } else { m_ptrLogger.LogError( "Unable to add SM follower added Follower master login: %d SM master login : %d SignalIndex: %d", ptr._smfollower._followerMasterLogin, ptr._smfollower._smMasterLogin, ptr._smfollower._smSignalIndex); } } else if (ptr._dataTransMode == DT_TRANS_MODIFY) { await _followerService.ModifySMFollower(ptr._smfollower, cancellationToken); bool ret = true; ptrResp = new AddSMFollowerResponse(); //MT_AddSMFollowerResponse_ID ptrResp._retCode = ret == true ? RC_OK : RC_ERROR; ptrResp._dataTransMode = ptr._dataTransMode; CppHelper.memcpy(ref ptrResp._smfollower, ptr._smfollower); //SentDataUsingSocketID(ptrResp, MT_AddSMFollowerResponse_ID, ptr._header._socketID); if (ret) { //await UpdateFollowerVolumeAsync(ptr._smfollower._smSignalIndex, // ptr._smfollower._followerMT4ServerIndex, ptr._smfollower._followerMT4Login, // ptr._smfollower._followervolume, cancellationToken); m_ptrLogger.LogInfo( "SM follower modified. Follower master login: %d SM master login : %d SignalIndex: %d", ptr._smfollower._followerMasterLogin, ptr._smfollower._smMasterLogin, ptr._smfollower._smSignalIndex); } else { m_ptrLogger.LogError( "Unable to modify SM follower. Follower master login: %d SM master login : %d SignalIndex: %d", ptr._smfollower._followerMasterLogin, ptr._smfollower._smMasterLogin, ptr._smfollower._smSignalIndex); } } else if (ptr._dataTransMode == DT_TRANS_DELETE) { await _followerService.DeleteSMFollower(ptr._smfollower, cancellationToken); bool ret = true; ptrResp = new AddSMFollowerResponse(); //MT_AddSMFollowerResponse_ID ptrResp._retCode = ret == true ? RC_OK : RC_ERROR; ptrResp._dataTransMode = ptr._dataTransMode; CppHelper.memcpy(ref ptrResp._smfollower, ptr._smfollower); //SentDataUsingSocketID(ptrResp, MT_AddSMFollowerResponse_ID, ptr._header._socketID); if (ret) { //await RemoveFollowerAsync(ptr._smfollower._smMT4Login, ptr._smfollower._followerMT4Login, // ptr._smfollower._followerMT4ServerIndex, cancellationToken); //await RemoveFollowerVolumeAsync(ptr._smfollower._smSignalIndex, // ptr._smfollower._followerMT4ServerIndex, ptr._smfollower._followerMT4Login, // ptr._smfollower._followervolume, cancellationToken); m_ptrLogger.LogInfo( "SM follower deleted Follower master login: %d SM master login : %d SignalIndex: %d", ptr._smfollower._followerMasterLogin, ptr._smfollower._smMasterLogin, ptr._smfollower._smSignalIndex); } else { m_ptrLogger.LogError( "Unable to delete SM follower added Follower master login: %d SM master login : %d SignalIndex: %d", ptr._smfollower._followerMasterLogin, ptr._smfollower._smMasterLogin, ptr._smfollower._smSignalIndex); } } m_ptrLogger.LogOk("END"); return(ptrResp); }