Exemplo n.º 1
0
        public async Task <IActionResult> AddCloudAssetAsync([FromForm] CloudinaryAsset cloudinaryAsset, int id, int lessonId)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var asset = await _service.AddCloudAssetAsync(cloudinaryAsset, id, lessonId);

            return(Ok(asset));
        }
Exemplo n.º 2
0
        public async Task <CloudinaryAsset> AddCloudAssetAsync(CloudinaryAsset cloudinaryAsset, int id, int lessonId)
        {
            var file         = cloudinaryAsset.File;
            var uploadResult = new VideoUploadResult();

            try
            {
                if (file.Length > 0)
                {
                    using (var stream = file.OpenReadStream())
                    {
                        var uploadParams = new VideoUploadParams()
                        {
                            File = new FileDescription(file.Name, stream)
                        };

                        uploadResult = _cloudinary.Upload(uploadParams);
                    }
                }
            }
            catch (Exception e)
            {
                string errorMessage = $"Exception - MESSAGE: {e.Message} STACK TRACE: {e.StackTrace}";
                // Exception logging code here
            }
            cloudinaryAsset.Url       = uploadResult.Uri.ToString();
            cloudinaryAsset.PublicId  = uploadResult.PublicId;
            cloudinaryAsset.AssetName = cloudinaryAsset.File.FileName;
            cloudinaryAsset.Type      = cloudinaryAsset.File.ContentType;
            cloudinaryAsset.UserId    = id;
            cloudinaryAsset.LessonId  = lessonId;

            var        assetForReturn = cloudinaryAsset;
            CloudAsset asset          = new CloudAsset()
            {
                AssetName = cloudinaryAsset.AssetName,
                Type      = cloudinaryAsset.Type,
                Url       = cloudinaryAsset.Url,
                PublicId  = cloudinaryAsset.PublicId,
                UserId    = cloudinaryAsset.UserId,
                LessonId  = cloudinaryAsset.LessonId
            };

            await _repository.AddCloudAssetAsync(asset);

            return(assetForReturn);
        }