コード例 #1
0
        static void Main(string[] args)
        {
            DetailedSender senderDetail = new DetailedSender();
            QuickSender    senderShort  = new QuickSender();

            ConsoleReciever consoleReciever = new ConsoleReciever();

            consoleReciever.Subscribe(senderDetail);

            FileReciever spam = new FileReciever("C:\\Temp\\spam.txt");

            spam.Subscribe(senderShort);

            senderDetail.Sent(new Email("emailOne", "First email", "Lorem ipsum"));
            senderDetail.Sent(new Email("emailTwo", "Second email", "Lorem ipsum lorem"));
            senderShort.Sent(new Email("quick", "Pictures", "Lorem ipsum"));
        }
コード例 #2
0
        private void ReceiveFileThread(int id, string path)
        {
            var port = GetRandomPort();

            Message fileRequest = new FileRequest
            {
                ID = id,
                RecieverEndPoint = new MessageTransfer.EndPoint {
                    IP = "127.0.0.1", Port = port
                }
            };

            SendMessage(fileRequest);

            FileReciever fileReciever = new FileReciever(port);

            fileReciever.RecieveFile(messageClient.RemoteEndPoint, new DirectoryInfo(path));

            filesList[id] = fileReciever.File;
        }
コード例 #3
0
    public override Response Execute()
    {
        var db         = MasterContainer.GetService <IBroadcastDatabase>();
        var collisions = db.GetInterval(Broadcast.StartTime, Broadcast.EndTime);

        UploadBroadcastResult result;

        if (collisions.Length > 0)
        {
            var authorizator = MasterContainer.GetService <IAuthorizator>();
            if (authorizator.HasPermission(User, Permission.AdminBroadcasts))
            {
                foreach (var collision in collisions)
                {
                    db.Remove(collision.Id);
                }
                result = UploadBroadcastResult.Success;
            }
            else
            {
                result = UploadBroadcastResult.CollissionBlocked;
            }
        }
        else
        {
            result = UploadBroadcastResult.Success;
        }

        if (result == UploadBroadcastResult.Success)
        {
            var          store    = MasterContainer.GetService <FileStore>();
            string       fullPath = store.GenerateFullFilename(Broadcast);
            FileReciever reciever = new FileReciever(Session.Host, Port, BufferSize, fullPath);
            reciever.Start();

            Broadcast.Filename = store.GetFilename(Broadcast);
            db.Add(Broadcast);
        }

        return(new UploadBroadcastResponse(result));
    }