public static void HostMessageRevieveHandler(object sender, MessageReceievedArgs arguments) { if (arguments.Data != null) { string commandJsonString = arguments.Data.ToString(); BaseCommand baseCommand = JsonConvert.DeserializeObject <BaseCommand>(commandJsonString); if (baseCommand != null) { if (baseCommand.Command == ZC_Command.CONFIRM_CONNECT_HOST) { ConfirmConnectedHost response = JsonConvert.DeserializeObject <ConfirmConnectedHost>(commandJsonString); if (response != null) { if ((!response.IsSuccess ? false : clientPipe == null)) { clientPipe = new ClientPipe(".", "Test", (BasicPipe p) => p.StartStringReaderAsync()); clientPipe.DataReceived += new EventHandler <PipeEventArgs>(AppMessageRecieveHandler); clientPipe.Connect(); } } } if (clientPipe != null) { clientPipe.WriteString(commandJsonString); } } } }
public void DataRecievedHandler(ServerPipe serverPipe, PipeEventArgs arguments) { var commandJsonString = arguments.String; BaseCommand baseCommand = JsonConvert.DeserializeObject <BaseCommand>(commandJsonString); if (baseCommand == null) { return; } switch (baseCommand.Command) { case ZC_Command.CONFIRM_CONNECT_HOST: { ConfirmConnectedHost response = JsonConvert.DeserializeObject <ConfirmConnectedHost>(commandJsonString); if (response != null && response.IsSuccess) { Profile selectedObject = profile; List <string> ByPassListPattern = selectedObject.ByPassProxySites.Select(p => { return($"*{p}*"); }).ToList(); SetProfileRequest request = new SetProfileRequest() { Command = ZC_Command.SET_PROFILE_REQUEST, Profile = new BrowserProfile() { Id = selectedObject.Id, Email = selectedObject.Email, CPU = selectedObject.CPU, Battery = selectedObject.Battery, EnableAudioApi = selectedObject.EnableAudioApi, EnablePlugins = selectedObject.EnablePlugins, EnableMediaPlugins = selectedObject.EnableMediaPlugins, Fonts = selectedObject.Fonts, RandomTimersEnabled = selectedObject.RandomTimersEnabled, UserAgent = selectedObject.UserAgent, Screen = selectedObject.Screen, HistoryLength = selectedObject.HistoryLength, WebGL = selectedObject.WebGL, FakeClientRects = true, Canvas = selectedObject.Canvas, EnableNetwork = selectedObject.EnableNetwork, Language = selectedObject.Language, GeoIpEnabled = selectedObject.GeoIpEnabled, ProxyEnabled = selectedObject.ProxyEnabled, Proxies = selectedObject.Proxies.Where(p => p.Enabled).ToList(), ByPassProxySites = ByPassListPattern, } }; serverPipe.WriteString(JsonConvert.SerializeObject(request)); } break; } case ZC_Command.NOTIFICATION: { Notification response = JsonConvert.DeserializeObject <Notification>(commandJsonString); if (response != null && response.IsSuccess) { Notification request = new Notification() { Type = NotificationType.INFOR, IsSuccess = true, Message = "Hello from zchanger application" }; serverPipe.WriteString(JsonConvert.SerializeObject(request)); } break; } case ZC_Command.DISCONNECT: { DissposeHostConnection(serverPipe.Id); break; } } }