예제 #1
0
        private void NewBroadcast()
        {
            AudioFileReader reader;
            var             file = GetFilename();

            if (file == null)
            {
                return;
            }
            else
            {
                reader = new AudioFileReader(file);
            }

            var duration = (rbLiveBroadcast.Checked) ? dtpDuration.Value.TimeOfDay : reader.TotalTime;

            var broadcast    = new BroadcastInfo(currentUser.Username, StartTime, duration, BroadcastType, MediaType, txtDescription.Text);
            var planRequest  = new PlanBroadcastRequest(currentUser, broadcast);
            var planResponse = client.SendAndRecieve <PlanBroadcastResponse>(planRequest);

            if (planRequest != null)
            {
                switch (planResponse.Result)
                {
                case PlanBroadcastResult.CanUpload:
                    break;

                case PlanBroadcastResult.CannotUpload:
                    MessageBox.Show("Hlášení koliduje s jiným(i) hlášením(i), zvolte, prosím, jiný čas.");
                    return;

                case PlanBroadcastResult.CanUploadIfAdmin:
                    var result = MessageBox.Show("Hlášení koliduje s jiným(i) hlášením(i), chcete tato hlášení odstranit?", "Otázka", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (result == DialogResult.Yes)
                    {
                        break;
                    }
                    else
                    {
                        return;
                    }
                }
            }
            else
            {
                return;
            }

            if (!rbLiveBroadcast.Checked)
            {
                var settings       = Settings.Default;
                var uploadRequest  = new UploadBroadcastRequest(currentUser, broadcast, MediaType.MP3, settings.BROADCAST_PORT, settings.TRANSFER_BUFFER_SIZE); //TODO: Media file detection
                var uploadResponse = client.SendAndRecieve <UploadBroadcastResponse>(uploadRequest);
                if (uploadResponse != null)
                {
                    switch (uploadResponse.Result)
                    {
                    case UploadBroadcastResult.Success:
                        FileStreamer streamer = new FileStreamer(file, settings.TRANSFER_BUFFER_SIZE, settings.SERVER_IP, settings.BROADCAST_PORT);     //TODO: From settings...
                        streamer.Start();
                        MessageBox.Show("Vaše hlášení bylo úspěšně naplánováno.", "Oznámení", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                        break;

                    case UploadBroadcastResult.CollissionBlocked:
                        MessageBox.Show("Hlášení koliduje s jiným(i) hlášením(i), zvolte, prosím, jiný čas.", "Upozornění", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        break;
                    }
                }
                else
                {
                    return;
                }
            }
        }