private void Dtm_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { if (dataType == DataType.Uri) { try { args.Request.Data.Properties.Title = "Native Share URI"; args.Request.Data.SetWebLink(new Uri(data)); } catch (UriFormatException) { InvalidData?.Invoke(this, null); } } else if (dataType == DataType.Text) { args.Request.Data.Properties.Title = "Native Share Text"; args.Request.Data.SetText(data); } }
private void OnClientDataRecevied(object sender, Data e) { var c = (Client)sender; Console.WriteLine(c.User.UserName + "@" + c.Id + ": " + e.Command.ToString() + ": " + e.Content); switch (e.Command) { case Command.Status: c.Send(new Data(Command.Message, "Client #" + c.Id + ", Logged as" + c.User.UserName + ", Can Send: " + c.User.CanSend + ", Can Code: " + c.User.CanCode, "root")); return; case Command.SendMsg: if (c.User.CanSend) { if (c.User.CanCode && e.Content.StartsWith("sh: ")) { RunCode(e.Content.Substring(4), c); } else { foreach (var client in Clients) { client.Send(new Data(Command.Message, e.Content, c.User.UserName)); } } } else { c.Send(new Data(Command.Message, "Dear " + c.User.UserName + ", You can't send any message because you are limited.", "root")); foreach (var client in Clients.Where(a => a.User.CanCode)) { client.Send(new Data(Command.Message, c.User.UserName + " says:\r\n\t" + e.Content, "Limited users")); } } return; case Command.Disconnect: c.Disconnect(); return; case Command.Login: if (c.User.UserName == "anonymous") { foreach (var u in Users) { if (e.Content == u.UserName + ":" + u.Password) { c.User = u; SendToAllAsRoot("#" + c.Id + " logged in as " + u.UserName); return; } } c.Send(new Data(Command.Message, "Bad User Name/Password", "root")); SendToAllAsRoot("An attempt to login from #" + c.Id); } else { c.Send(new Data(Command.Message, "You've logged in already.", "root")); } return; case Command.Message: foreach (var cl in Clients.Where(a => a.User.UserName == Users[1].UserName)) { cl.Send(new Data(Command.Message, "Message: " + e.Content, "root - Msg from Client #" + c.Id)); } break; default: InvalidData?.Invoke(c, e); return; } }
/// <summary> /// Fires the InvalidData event. /// </summary> /// <param name="propertyName">Name of the property.</param> /// <param name="message">The message.</param> protected void FireWarning(string propertyName, string message) { // TODO - Add to log InvalidData?.Invoke(this, new InvalidDataEventArgs(propertyName, message)); }