Exemple #1
0
 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);
     }
 }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
 /// <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));
 }