public async Task <ActionResult <VideoFileModel> > GenerateThumbnails([FromBody] ThumbnailDTO thumbnailDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data model"));
            }
            var result = await _videoConverterService.GenerateThumbnails(thumbnailDTO);

            return(Ok(result));
        }
Пример #2
0
        public async Task <VideoFileModel> GenerateThumbnails(ThumbnailDTO thumbnailDTO)
        {
            try
            {
                var videoFile = await GetVideo(thumbnailDTO.VideoId);

                string inputFile       = Path.Combine(videoFile.FileDirectory, videoFile.Filename);
                var    addedThumbnails = await _ffmpeg.GetVideoThumbails(inputFile, thumbnailDTO.TimestampOfScreenshots);

                addedThumbnails.ForEach(t => t.ParentVideoFileId = videoFile.Id);
                await _dbContext.Thumbnails.AddRangeAsync(addedThumbnails);

                await _dbContext.SaveChangesAsync();

                return(_mapper.Map <VideoFileModel>(videoFile));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                throw new Exception("Internal server error");
            }
        }
Пример #3
0
        public async Task UploadProfilePicture(string _appEnvironment, IFormFile image, string Email)
        {
            var    mapper   = new Mapper(config);
            var    fileName = ContentDispositionHeaderValue.Parse(image.ContentDisposition).FileName.Trim('"');
            string path     = "/Images/" + fileName;

            using (var fileStream = new FileStream(_appEnvironment + path, FileMode.Create))
            {
                await image.CopyToAsync(fileStream);
            }
            var user = await unit.Users.Find(d => d.Email == Email);

            ThumbnailDTO uploadedImage = new ThumbnailDTO {
                Link = "https://localhost:44340" + path
            };
            Thumbnail pic = mapper.Map <Thumbnail>(uploadedImage);

            pic.UserId = user;
            await unit.Thumbnails.Create(pic);

            unit.Save();
        }
Пример #4
0
        public async Task UpdateProfilePicture(string _appEnviroment, IFormFile newImage, ThumbnailDTO oldImage, string user)
        {
            var mapper  = new Mapper(config);
            var imgName = oldImage.Link.Split('/')[4];

            File.Delete(_appEnviroment + "\\Images\\" + imgName);
            var    fileName = ContentDispositionHeaderValue.Parse(newImage.ContentDisposition).FileName.Trim('"');
            string path     = "/Images/" + fileName;

            using (var fileStream = new FileStream(_appEnviroment + path, FileMode.Create))
            {
                await newImage.CopyToAsync(fileStream);
            }
            oldImage.Link = "https://localhost:44340" + path;
            unit.Thumbnails.Update(mapper.Map <Thumbnail>(oldImage));
            unit.Save();
        }