//TODO: handleSSPFollowerRequest public async Task <AddSSPFollowerResponse> AddSSPFollower( AddSSPFollowerRequest ptr, CancellationToken cancellationToken) { AddSSPFollowerResponse ptrResp = null; m_ptrLogger.LogOk("START"); if (ptr._dataTransMode == DT_TRANS_ADD) { await _followerService.InsertSSPFollower(ptr._sspfollower, cancellationToken); bool ret = true; ptrResp = new AddSSPFollowerResponse(); //MT_AddSSPFollowerResponse_ID ptrResp._retCode = ret == true ? RC_OK : RC_ERROR; ptrResp._dataTransMode = ptr._dataTransMode; CppHelper.memcpy(ref ptrResp._sspfollower, ptr._sspfollower); //SentDataUsingSocketID(ptrResp, MT_AddSSPFollowerResponse_ID, ptr._header._socketID); if (ret) { //await AddFollowerAsync(ptr._sspfollower._sspMT4Login, ptr._sspfollower._followerMT4Login, // ptr._sspfollower._followerMT4ServerIndex, cancellationToken); //await AddFollowerVolumeAsync(ptr._sspfollower._sspSignalIndex, // ptr._sspfollower._followerMT4ServerIndex, ptr._sspfollower._followerMT4Login, // ptr._sspfollower._followervolume, cancellationToken); m_ptrLogger.LogInfo( "SSP follower added. Follower master login: %d SSP master login : %d SignalIndex: %d", ptr._sspfollower._followerMasterLogin, ptr._sspfollower._sspMasterLogin, ptr._sspfollower._sspSignalIndex); } else { m_ptrLogger.LogError( "Unable to add SSP follower. Follower master login: %d SSP master login : %d SignalIndex: %d", ptr._sspfollower._followerMasterLogin, ptr._sspfollower._sspMasterLogin, ptr._sspfollower._sspSignalIndex); } } else if (ptr._dataTransMode == DT_TRANS_MODIFY) { await _followerService.ModifySSPFollower(ptr._sspfollower, cancellationToken); bool ret = true; ptrResp = new AddSSPFollowerResponse(); // MT_AddSSPFollowerResponse_ID ptrResp._retCode = ret == true ? RC_OK : RC_ERROR; ptrResp._dataTransMode = ptr._dataTransMode; CppHelper.memcpy(ref ptrResp._sspfollower, ptr._sspfollower); //SentDataUsingSocketID(ptrResp, MT_AddSSPFollowerResponse_ID, ptr._header._socketID); if (ret) { //await UpdateFollowerVolumeAsync(ptr._sspfollower._sspSignalIndex, ptr._sspfollower._followerMT4ServerIndex, // ptr._sspfollower._followerMT4Login, ptr._sspfollower._followervolume, cancellationToken); m_ptrLogger.LogInfo( "SSP follower modified. Follower master login: %d SSP master login : %d SignalIndex: %d", ptr._sspfollower._followerMasterLogin, ptr._sspfollower._sspMasterLogin, ptr._sspfollower._sspSignalIndex); } else { m_ptrLogger.LogError( "Unable to modify SSP follower. Follower master login: %d SSP master login : %d SignalIndex: %d", ptr._sspfollower._followerMasterLogin, ptr._sspfollower._sspMasterLogin, ptr._sspfollower._sspSignalIndex); } } else if (ptr._dataTransMode == DT_TRANS_DELETE) { await _followerService.DeleteSSPFollower(ptr._sspfollower, cancellationToken); bool ret = true; ptrResp = new AddSSPFollowerResponse(); // MT_AddSSPFollowerResponse_ID ptrResp._retCode = ret == true ? RC_OK : RC_ERROR; ptrResp._dataTransMode = ptr._dataTransMode; CppHelper.memcpy(ref ptrResp._sspfollower, ptr._sspfollower); //SentDataUsingSocketID(ptrResp, MT_AddSSPFollowerResponse_ID, ptr._header._socketID); if (ret) { //await RemoveFollowerAsync(ptr._sspfollower._sspMT4Login, // ptr._sspfollower._followerMT4Login, // ptr._sspfollower._followerMT4ServerIndex, cancellationToken); //await RemoveFollowerVolumeAsync(ptr._sspfollower._sspSignalIndex, // ptr._sspfollower._followerMT4ServerIndex, ptr._sspfollower._followerMT4Login, // ptr._sspfollower._followervolume, cancellationToken); m_ptrLogger.LogInfo( "SSP follower deleted. Follower master login: %d SSP master login : %d SignalIndex: %d", ptr._sspfollower._followerMasterLogin, ptr._sspfollower._sspMasterLogin, ptr._sspfollower._sspSignalIndex); } else { m_ptrLogger.LogError( "Unable to delete SSP follower. Follower master login: %d SSP master login : %d SignalIndex: %d", ptr._sspfollower._followerMasterLogin, ptr._sspfollower._sspMasterLogin, ptr._sspfollower._sspSignalIndex); } } m_ptrLogger.LogOk("END"); return(ptrResp); }