Пример #1
0
        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);
                    }
                }
            }
        }