Exemplo n.º 1
0
        public async Task <bool> StoreMedia(MediaEntity m, Status x, long hash, string blurhash)
        {
            var cmd = new MySqlCommand(@"INSERT IGNORE 
INTO media (media_id, source_tweet_id, dcthash) 
VALUES(@media_id, @source_tweet_id, @dcthash) 
ON DUPLICATE KEY UPDATE
source_tweet_id = if (EXISTS (SELECT * FROM tweet WHERE tweet_id = @source_tweet_id), @source_tweet_id, source_tweet_id),
dcthash = @dcthash;");

            cmd.Parameters.Add("@media_id", MySqlDbType.Int64).Value        = m.Id;
            cmd.Parameters.Add("@source_tweet_id", MySqlDbType.Int64).Value = m.SourceStatusId ?? x.Id;
            cmd.Parameters.Add("@dcthash", MySqlDbType.Int64).Value         = hash;

            var cmdText = new MySqlCommand(@"INSERT IGNORE
INTO media_text (media_id, type, media_url, blurhash)
VALUES (@media_id, @type, @media_url, @blurhash);");

            cmdText.Parameters.Add("@media_id", MySqlDbType.Int64).Value   = m.Id;
            cmdText.Parameters.Add("@type", MySqlDbType.VarChar).Value     = m.Type;
            cmdText.Parameters.Add("@media_url", MySqlDbType.Text).Value   = m.MediaUrlHttps ?? m.MediaUrl;
            cmdText.Parameters.Add("@blurhash", MySqlDbType.VarChar).Value = blurhash;

            var cmdDownload = new MySqlCommand(@"INSERT IGNORE
INTO media_downloaded_at
VALUES(@media_id, @downloaded_at)");

            cmdDownload.Parameters.Add("@media_id", MySqlDbType.Int64).Value      = m.Id;
            cmdDownload.Parameters.Add("@downloaded_at", MySqlDbType.Int64).Value = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

            return(await ExecuteNonQuery(new[] { cmd, cmdText, cmdDownload }).ConfigureAwait(false) >= 0 | await Storetweet_media(x.Id, m.Id).ConfigureAwait(false) > 0);
        }
Exemplo n.º 2
0
        public void ProcessResults_Populates_Entity_Media()
        {
            var searchProc = new SearchRequestProcessor <Search> {
                BaseUrl = "https://api.twitter.com/1.1/search/"
            };

            List <Search> results = searchProc.ProcessResults(SearchJson);

            List <MediaEntity> media = results.First().Statuses[0].Entities.MediaEntities;

            Assert.IsNotNull(media);
            Assert.AreEqual(1, media.Count);
            MediaEntity firstMedia = media.First();

            Assert.AreEqual(155683816676134913ul, firstMedia.ID);
            Assert.AreEqual("http://p.twimg.com/AikZmz5CEAESBHD.jpg", firstMedia.MediaUrl);
            Assert.AreEqual("https://p.twimg.com/AikZmz5CEAESBHD.jpg", firstMedia.MediaUrlHttps);
            Assert.AreEqual("http://t.co/36MZIOyW", firstMedia.Url);
            Assert.AreEqual("pic.twitter.com/36MZIOyW", firstMedia.DisplayUrl);
            Assert.AreEqual("http://twitter.com/rschu/status/155683816671940609/photo/1", firstMedia.ExpandedUrl);
            Assert.AreEqual("photo", firstMedia.Type);
            Assert.IsNotNull(firstMedia.Sizes);
            Assert.AreEqual(5, firstMedia.Sizes.Count);
            PhotoSize firstSize = firstMedia.Sizes.First();

            Assert.AreEqual("orig", firstSize.Type);
            Assert.AreEqual(1161, firstSize.Width);
            Assert.AreEqual(925, firstSize.Height);
            Assert.AreEqual("fit", firstSize.Resize);
            Assert.AreEqual(59, firstMedia.Start);
            Assert.AreEqual(79, firstMedia.End);
        }
        public void EntityIsComparedBasedOnId()
        {
            // Arrange
            var comp = new MediaEntityComparer();
            var a    = new MediaEntity
            {
                ID = 123
            };
            var b = new MediaEntity
            {
                ID = 123
            };
            var c = new MediaEntity
            {
                ID = 111
            };

            // Act
            var ab = comp.Equals(a, b);
            var ba = comp.Equals(b, a);
            var ac = comp.Equals(a, c);

            // Assert
            Assert.IsTrue(ab);
            Assert.IsTrue(ba);
            Assert.IsFalse(ac);
        }
Exemplo n.º 4
0
 public void DeleteMedia(MediaEntity media)
 {
     this._baseUnitOfWork.ExecuteAndCommit(uow => uow.BaseWorkArea.Media.Delete(media));
     //this._factory.GetAndReleaseAfterExecuteAndCommit<IUnitOfWorkFactory, IBaseUnitOfWork, MediaEntity>(
     //      uow => uow.BaseWorkArea.Media.Delete(media));
     DeleteMedia(media.FileName);
 }
        /// <summary>
        /// Returns a memory and differentiates between videos/gifs and everything else.
        ///
        /// Steps:
        /// * Creates a local memory and sets the id and media type
        /// * sets the media url
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        private Memory GetMemory(MediaEntity media)
        {
            var tempMemory = new Memory()
            {
                id        = media.Id,
                mediaType = media.MediaType
            };

            if (tempMemory.mediaType.ToLower().Contains("video") ||
                tempMemory.mediaType.ToLower().Contains("gif"))
            {
                foreach (var vid in media.VideoDetails.Variants)
                {
                    if (vid.ContentType.ToLower().Contains("video"))
                    {
                        tempMemory.url = vid.URL;
                        break;
                    }
                }
            }
            else
            {
                tempMemory.url = media.MediaURLHttps;
            }
            return(tempMemory);
        }
Exemplo n.º 6
0
        public ImageFrame(MediaEntity mediaEntity)
        {
            InitializeComponent();

            this.mediaEntity = mediaEntity;
            pause            = false;
        }
Exemplo n.º 7
0
        private void ProcessMedia(SaveMediaMessage message)
        {
            if (!Directory.Exists("medias"))
            {
                Directory.CreateDirectory("medias");
            }
            if (!Directory.Exists("thumbnails"))
            {
                Directory.CreateDirectory("thumbnails");
            }

            var media = new MediaEntity();

            media.Type     = message.MediaType;
            media.UserId   = message.UserId;
            media.Size     = message.FileSize;
            media.DateTime = DateTime.Now;
            media.ArtId    = message.ArtId;

            mainContext.Medias.Add(media);
            mainContext.SaveChanges();

            string filename      = media.Id.ToString();
            string saveImagePath = ("medias/") + filename;

            File.WriteAllBytes(saveImagePath, message.Data);

            string saveThumbnPath = ("thumbnails/") + filename + ".jpg";

            File.WriteAllBytes(saveThumbnPath, message.Data);
        }
Exemplo n.º 8
0
        /// <summary>
        ///     更新Media信息
        /// </summary>
        /// <param name="dto">ViewModel</param>
        public void UpdateMedia(MediaEntity dto)
        {
            MediaDO info = dto.ConvertToModel();

            new MediaRepository().UpdateMedia(info);
            MediaCommon.cache_Media.Remove(info.MediaID);
        }
Exemplo n.º 9
0
 public MediaEntityInfo(Account account, StatusItem item)
 {
     Account       = account;
     Item          = item;
     Entities      = Item.Status.ExtendedEntities.Media;
     CurrentEntity = Entities.First();
 }
Exemplo n.º 10
0
 public MediaEntityInfo(Account account, StatusItem item, MediaEntity currentEntity)
 {
     Account       = account;
     Item          = item;
     Entities      = Item.Status.ExtendedEntities.Media;
     CurrentEntity = currentEntity;
 }
Exemplo n.º 11
0
        public async Task Add(Event viewModel, ICollection <IFormFile> files)
        {
            string subPath = @"wwwroot\uploaded_files";


            if (files.Count > 0 && files != null)
            {
                foreach (var file in files)
                {
                    if (file != null && file.Length > 0)
                    {
                        DirectoryInfo di       = Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), subPath));
                        var           filePath = Path.Combine(Directory.GetCurrentDirectory(), subPath, file.FileName);

                        using (var uploadedFile = new FileStream(filePath, FileMode.Create))
                        {
                            await file.CopyToAsync(uploadedFile);
                        }

                        var media = new MediaEntity {
                            MediaPath = file.FileName, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now
                        };
                        _context.Media.Add(media);
                        await _context.SaveChangesAsync();

                        int id = media.Id;
                        viewModel.EventMedia.Add(new EventMedia {
                            MediaId = id, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now
                        });
                    }
                }
            }
        }
Exemplo n.º 12
0
        /// <summary>
        ///     Generates a collection of inlines from a tweet.
        /// </summary>
        /// <param name="tweet">The tweet to generate inlines from.</param>
        /// <returns>The generated inlines.</returns>
        private static IEnumerable <Inline> GenerateInlines(Status tweet)
        {
            var allEntities = ExtractEntities(tweet).ToArray();

            if (allEntities.Any())
            {
                int lastEnd = 0;

                foreach (EntityBase entity in allEntities)
                {
                    if (entity.Start > lastEnd)
                    {
                        string text = tweet.Text.Substring(lastEnd, entity.Start - lastEnd);
                        yield return(new Run(PrepareText(text)));
                    }

                    var tagEntity = entity as HashTagEntity;
                    if (tagEntity != null)
                    {
                        yield return(GenerateHashTag(tagEntity));
                    }
                    else if (entity is UrlEntity)
                    {
                        if (entity is MediaEntity)
                        {
                            if (!Config.Visual.InlineMedia)
                            {
                                MediaEntity mediaEnttiy = entity as MediaEntity;
                                yield return(GenerateMedia(mediaEnttiy));
                            }
                        }
                        else
                        {
                            UrlEntity urlEntity = entity as UrlEntity;
                            if (!TwitterHelper.IsTweetUrl(urlEntity.ExpandedUrl))
                            {
                                yield return(GenerateLink(urlEntity));
                            }
                        }
                    }
                    else if (entity is UserMentionEntity)
                    {
                        yield return(GenerateMention((UserMentionEntity)entity));
                    }

                    lastEnd = entity.End;
                }

                if (lastEnd < tweet.Text.Length)
                {
                    yield return(new Run(PrepareText(tweet.Text.Substring(lastEnd))));
                }
            }
            else
            {
                yield return(new Run(PrepareText(tweet.Text)));
            }
        }
Exemplo n.º 13
0
        public string GetMediaUrl(MediaEntity media)
        {
            if (media != null)
            {
                return($"/{MediaRootFoler}/{media.FileName}");
            }

            return($"/{MediaRootFoler}/no-image.png");
        }
Exemplo n.º 14
0
        public IPage <T> NextEntities <T>(MediaEntity entityType, IPage <T> currentPage)
        {
            IPage <T> entities = null;

            if (!string.IsNullOrEmpty(currentPage.NextPageLink))
            {
                switch (entityType)
                {
                case MediaEntity.Asset:
                    entities = (IPage <T>)_media.Assets.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.Transform:
                    entities = (IPage <T>)_media.Transforms.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.TransformJob:
                    entities = (IPage <T>)_media.Jobs.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.ContentKeyPolicy:
                    entities = (IPage <T>)_media.ContentKeyPolicies.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.StreamingPolicy:
                    entities = (IPage <T>)_media.StreamingPolicies.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.StreamingEndpoint:
                    entities = (IPage <T>)_media.StreamingEndpoints.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.StreamingLocator:
                    entities = (IPage <T>)_media.StreamingLocators.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.FilterAccount:
                    entities = (IPage <T>)_media.AccountFilters.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.FilterAsset:
                    entities = (IPage <T>)_media.AssetFilters.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.LiveEvent:
                    entities = (IPage <T>)_media.LiveEvents.ListNext(currentPage.NextPageLink);
                    break;

                case MediaEntity.LiveEventOutput:
                    entities = (IPage <T>)_media.LiveOutputs.ListNext(currentPage.NextPageLink);
                    break;
                }
            }
            return(entities);
        }
Exemplo n.º 15
0
        //source_tweet_idを更新するためだけ
        public async ValueTask <int> UpdateMedia_source_tweet_id(MediaEntity m, Status x)
        {
            using (MySqlCommand cmd = new MySqlCommand(@"UPDATE IGNORE media SET
source_tweet_id = if (EXISTS (SELECT * FROM tweet WHERE tweet_id = @source_tweet_id), @source_tweet_id, source_tweet_id)
WHERE media_id = @media_id;"))
            {
                cmd.Parameters.Add("@media_id", MySqlDbType.Int64).Value        = m.Id;
                cmd.Parameters.Add("@source_tweet_id", MySqlDbType.Int64).Value = m.SourceStatusId ?? x.Id;
                return(await ExecuteNonQuery(cmd).ConfigureAwait(false));
            }
        }
Exemplo n.º 16
0
 private static void DeleteEntities <T>(MediaClient mediaClient, MediaEntity entityType) where T : Resource
 {
     T[] entities = mediaClient.GetAllEntities <T>(entityType);
     foreach (T entity in entities)
     {
         if (!entity.Name.StartsWith(Constant.Media.PredefinedPrefix, StringComparison.OrdinalIgnoreCase))
         {
             mediaClient.DeleteEntity(entityType, entity.Name);
         }
     }
 }
Exemplo n.º 17
0
        public static bool IsObsoleted(
            this MediaEntity media,
            int threshold)
        {
            if (media == null)
            {
                return(true);
            }

            return((DateTime.UtcNow - media.CreatedAt).TotalDays > threshold);
        }
Exemplo n.º 18
0
        public T[] GetAllEntities <T>(MediaEntity entityType, string queryFilter = null, string parentName = null) where T : Resource
        {
            List <T>  allEntities = new List <T>();
            IPage <T> entities    = GetEntities <T>(entityType, queryFilter, parentName);

            while (entities != null)
            {
                allEntities.AddRange(entities);
                entities = NextEntities(entityType, entities);
            }
            return(allEntities.ToArray());
        }
Exemplo n.º 19
0
        public T1[] GetAllEntities <T1, T2>(MediaEntity entityType, MediaEntity parentType) where T1 : Resource where T2 : Resource
        {
            List <T1>  allEntities    = new List <T1>();
            IPage <T2> parentEntities = GetEntities <T2>(parentType);

            foreach (T2 parentEntity in parentEntities)
            {
                T1[] entities = GetAllEntities <T1>(entityType, null, parentEntity.Name);
                allEntities.AddRange(entities);
            }
            return(allEntities.ToArray());
        }
Exemplo n.º 20
0
        public T GetEntity <T>(MediaEntity entityType, string entityName, string parentName = null) where T : Resource
        {
            T entity = default(T);

            switch (entityType)
            {
            case MediaEntity.Asset:
                entity = _media.Assets.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.Transform:
                entity = _media.Transforms.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.TransformJob:
                entity = _media.Jobs.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, parentName, entityName) as T;
                break;

            case MediaEntity.ContentKeyPolicy:
                entity = _media.ContentKeyPolicies.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.StreamingPolicy:
                entity = _media.StreamingPolicies.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.StreamingEndpoint:
                entity = _media.StreamingEndpoints.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.StreamingLocator:
                entity = _media.StreamingLocators.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.FilterAccount:
                entity = _media.AccountFilters.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.FilterAsset:
                entity = _media.AssetFilters.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, parentName, entityName) as T;
                break;

            case MediaEntity.LiveEvent:
                entity = _media.LiveEvents.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, entityName) as T;
                break;

            case MediaEntity.LiveEventOutput:
                entity = _media.LiveOutputs.Get(MediaAccount.ResourceGroupName, MediaAccount.Name, parentName, entityName) as T;
                break;
            }
            return(entity);
        }
Exemplo n.º 21
0
        /// <summary>
        ///  Generates an inline from a media entity.
        /// </summary>
        /// <param name="entity"> The entity to generate the inline from. </param>
        /// <returns> The generated inline. </returns>
        private static Inline GenerateMedia(MediaEntity entity)
        {
            Hyperlink link = new Hyperlink();

            link.Inlines.Add(entity.DisplayUrl);
            link.NavigateUri      = new Uri(entity.MediaUrlHttps);
            link.CommandParameter = entity.MediaUrlHttps;
            link.Command          = GlobalCommands.OpenUrlCommand;
            link.ToolTip          = entity.MediaUrlHttps;
            link.SetResourceReference(TextElement.ForegroundProperty, "LinkBrush");

            return(link);
        }
Exemplo n.º 22
0
 public MediaEntityModel(MediaEntity entity)
     : base(entity)
 {
     Id             = entity.Id;
     MediaUrl       = entity.MediaUrl;
     MediaUrlHttps  = entity.MediaUrlHttps;
     SourceStatusId = entity.SourceStatusId;
     Type           = entity.Type;
     if (entity.Sizes != null)
     {
         Sizes = new MediaSizesModel(entity.Sizes);
     }
 }
Exemplo n.º 23
0
        public MediaEntityViewModel(MediaEntity mediaEntity, bool possiblySensitive = false)
        {
            Model = mediaEntity;

            MediaThumbnailUrl = SettingService.Setting.ShowHighQualityImageResolution && !string.IsNullOrWhiteSpace(mediaEntity.MediaUrl)
                ? mediaEntity.MediaUrl
                : mediaEntity.MediaThumbnailUrl;

            PossibilySensitiveBlur = SettingService.Setting.EnableNsfwFilter && possiblySensitive ? 4.0 : 0.0;

            Notice  = Notice.Instance;
            Setting = SettingService.Setting;
        }
Exemplo n.º 24
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            item = (MediaEntity)e.Parameter;
            var         mediaurl    = new Uri(item.MediaUrl);
            BitmapImage imageSource = new BitmapImage(mediaurl);

            imageview.Source = imageSource;

            /*
             *           var mediaurl = new Uri(status.ExtendedEntities.Media[n].MediaUrl);
             *
             *    BitmapImage imageSource = new BitmapImage(mediaurl);
             */
        }
Exemplo n.º 25
0
        public MediaTableEntity(MediaEntity entity)
        {
            PartitionKey = entity.Id;
            RowKey       = RowKeyValue;

            CreatedDate = entity.CreatedDate.ToString("O");
            State       = entity.State.StringValue();
            MediaUrl    = entity.MediaUrl.AbsoluteUri;
            Type        = entity.Type.StringValue();

            Title       = entity.Title;
            ImageB64    = entity.ImageB64;
            DownloadUrl = JsonSerializer.Serialize(entity.DownloadFormats);
        }
Exemplo n.º 26
0
        public MediaEntity GetMediaEntity(string txt)
        {
            //            Metadata:
            //            major_brand: isom
            //       minor_version   : 512
            //    compatible_brands: isomiso2avc1mp41
            //    title           : EV褰曞睆3.8.4杞欢褰曞埗
            //    encoder         : Lavf56.38.102
            //    comment: 鏈棰戠敱婀栧崡涓€鍞俊鎭鎶€寮€鍙戠殑EV褰曞睆杞欢褰曞埗锛寃ww.ieway.cn
            //Duration: 00:09:12.24, start: 0.014125, bitrate: 415 kb / s
            //    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080, 284 kb/s, 14.68 fps, 15 tbr, 15360 tbn, 30 tbc (default)
            //    Metadata:
            //      handler_name: VideoHandler
            //Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
            //    Metadata:
            //            handler_name: SoundHandler


            MediaEntity entity = new MediaEntity();

            //从视频信息中解析时长
            string regexDuration = "Duration: (.*?), start: (.*?), bitrate: (\\d*) kb\\/s";

            Regex r = new Regex(regexDuration);

            var result = r.Match(txt);

            var arr = result.Value.Split(',');

            entity.Duration = arr[0].Remove(0, arr[0].IndexOf(':') + 1);
            entity.Start    = arr[1].Split(':')[1];
            entity.Bitrate  = arr[2].Split(':')[1].Trim().Split(' ')[0];

            string regexVideo = "Video: (.*?), (.*?), (.*?), (.*?), (.*?)[,\\s]";

            Regex r1 = new Regex(regexVideo);

            result = r1.Match(txt);


            arr = result.Value.Substring(result.Value.IndexOf(':') + 1).Split(',');

            entity.MediaCode   = arr[0].Trim().Split(' ')[0];
            entity.MediaType   = entity.MediaCode;
            entity.Resoluction = arr[1].Trim();
            entity.Aspect      = arr[2].Trim();
            entity.Rate        = arr[4].Trim().Split(' ')[0];
            return(entity);
        }
Exemplo n.º 27
0
        public string Create(MediaEntity media)
        {
            var guid = Guid.NewGuid().ToString("N");

            var mediaInfo = new FileInfo(media.FileName);

            var destination = Path.Combine(_locationOptions.Path, $"{guid}{mediaInfo.Extension}");

            using var stream = new FileStream(destination, FileMode.Create);

            media.Content.CopyTo(stream);
            media.Content.Close();

            return(guid);
        }
Exemplo n.º 28
0
        public void HashCodeForObjectIsCalculatedCorrectly()
        {
            // Arrange
            var comp   = new MediaEntityComparer();
            var entity = new MediaEntity
            {
                ID = 123
            };

            // Act
            var hash = comp.GetHashCode(entity);

            // Assert
            Assert.AreEqual(entity.ID.GetHashCode(), hash);
        }
Exemplo n.º 29
0
        public MediaProperties(MediaEntity media, int suffix)
        {
            this.MediaNumber = suffix;

            this.PlayCommand     = new RelayCommand <object>(this.PlayCommandEntity);
            this.LoopPlayCommand = new RelayCommand <object>(this.LoopPlayCommandEntity);
            if (media == null)
            {
                return;
            }

            this.Image = new ImageProperties(media.MediaUrlHttps, true, media.Sizes.Large.Width, media.Sizes.Large.Height);

            // 画像のとき
            if (media.Type == "photo")
            {
                this.Url  = new Uri(media.MediaUrlHttps);
                this.Type = StatusMediaType.Image;
            }

            if (media.VideoInfo == null || media.VideoInfo.Variants == null || media.VideoInfo.Variants.Count() == 0)
            {
                return;
            }

            var url = media.VideoInfo.Variants.Where(x => x.Bitrate == media.VideoInfo.Variants.Max(y => y.Bitrate)).First().Url;

            this.Url = new Uri(url);

            // アニメーションGIFのとき
            if (media.Type == "animated_gif")
            {
                this.Image.IsLoad = false;
                this.Type         = StatusMediaType.AnimationGif;
            }
            // 動画の時
            else if (media.Type == "video")
            {
                this.Type = StatusMediaType.Video;
                if (media.VideoInfo.DurationMillis == null)
                {
                    return;
                }

                this.Time = new TimeSpan((int)media.VideoInfo.DurationMillis * TimeSpan.TicksPerMillisecond);
            }
        }
Exemplo n.º 30
0
        public async Task <UploadProductImageResponse> UploadProductImageAsync(UploadProductImageRequest request, string path)
        {
            var product = await _db.Products.FindAsync(request.ProductId);

            if (product != null)
            {
                MediaEntity media = new MediaEntity()
                {
                    Path = path
                };
                product.Media = media;
                await _db.SaveChangesAsync();

                return(new UploadProductImageResponse(true, path));
            }
            return(new UploadProductImageResponse(false, path));
        }