public override void Run() { while (true) { CloudQueueMessage message = _queue.GetMessage(); if (message != null) { string[] messageArray = message.AsString.Split(','); string bloburl = messageArray[0]; string partitionKey = messageArray[1]; string rowKey = messageArray[2]; ChannelPerformingRepository<Media> repository = new ChannelPerformingRepository<Media>(); Media media = repository.Find(partitionKey, rowKey); media.MediaProgressStateType = Utils.MediaProgressStateTypeProgress; repository.Update(media); repository.SubmitChange(); string dowlandpath = string.Format("{0}\\{1}", Environment.GetEnvironmentVariable("RdRoleRoot"), Utils.MediaDownloadFilePath); if (!Directory.Exists(dowlandpath)) { Directory.CreateDirectory(dowlandpath); } string dowlandfilepath = Helpers.DownloadAssetToLocal(bloburl, dowlandpath); string thumbnailPath = WrappedMedia.CreateThumbnailTask(dowlandfilepath); string mediaEncodePath = WrappedMedia.CreateEncodingJob(dowlandfilepath); media.MediaProgressStateType = Utils.MediaProgressStateTypeComplete; media.ThumbnailImageUrl = thumbnailPath; media.MediaUrl = mediaEncodePath; try { repository.Update(media); repository.SubmitChange(); _queue.DeleteMessage(message); } catch (Exception e) { Trace.Write(e); } } } }
protected void ButtonSave_Click(object sender, EventArgs e) { if (VideoUpload.HasFiles & Page.IsValid) { ChannelPerformingRepository<Media> mediaRepository = new ChannelPerformingRepository<Media>(); ChannelPerformingRepository<Tag> tagRepository = new ChannelPerformingRepository<Tag>(); string uniqueBobName = string.Format("{0}/ShowVideo_{1}{2}", Utils.CloudBlobKey, Guid.NewGuid().ToString(), Path.GetExtension(VideoUpload.FileName)); CloudBlockBlob blob = blobClient.GetBlockBlobReference(uniqueBobName); blob.Properties.ContentType = VideoUpload.PostedFile.ContentType; blob.UploadFromStream(VideoUpload.FileContent); Media media = new Media { Description = TextBoxVideoDescription.Text, Title = TextBoxVideoName.Text }; string[] tagArray = TextBoxTags.Text.Split(';'); foreach (string t in tagArray) { if (!string.IsNullOrEmpty(t)) { Tag tag = new Tag { TagName = t, MediaPartitionKey = media.PartitionKey, MediaRowKey = media.RowKey, RecordDate = DateTime.Now }; tagRepository.Create(tag); tagRepository.SubmitChange(); } } media.MediaProgressStateType = Utils.MediaProgressStateTypeWait; mediaRepository.Create(media); mediaRepository.SubmitChange(); CloudQueue queue = queueClient.GetQueueReference(Utils.CloudQueueKey); CloudQueueMessage message = new CloudQueueMessage(string.Format("{0},{1},{2}", blob.Uri, media.PartitionKey, media.RowKey)); queue.AddMessage(message); LabelResult.Text = "Video Uploaded"; Response.Redirect("/Manager/VideoProgressListPage.aspx"); } }