Beispiel #1
0
        void ISender.BroadcastFile(ClientConnection connection, JObject Args)
        {
            var transportContainer = new CommandMessageContainer(CommandType.SendFile);

            if (Args != null && Args.ContainsKey("Extension") && Args.ContainsKey("File"))
            {
                transportContainer.Args["File"]      = Args["File"].ToString();
                transportContainer.Args["Extension"] = Args["Extension"].ToString();
            }
            else
            {
                self.ServerNotification(connection, "Incorrect Args.");
                return;
            }

            if (Args.ContainsKey("Recipient"))
            {
                if (self.RecipientIsValid(Args))
                {
                    self.FileToRecipient(Args["Recipient"].ToString(), transportContainer);

                    var recipientId = connectionsService.Connections.FirstOrDefault(u => u.UserObject.Name == Args["Recipient"].ToString()).UserObject.ID;
                    dataStorage.SaveFile(connection.UserObject.ID, recipientId,
                                         Convert.FromBase64String(Args["File"].ToString()),
                                         Args["Extension"].ToString());
                }
            }
            else
            {
                self.FileToAll(connection, transportContainer);

                dataStorage.SaveFile(connection.UserObject.ID,
                                     0, Convert.FromBase64String(Args["File"].ToString()),
                                     Args["Extension"].ToString());
            }
        }