public async Task <IActionResult> DeleteVideo(string videoId) { await videoDb.Connection.OpenAsync(); var query = new VideoQuery(videoDb); var result = await query.FindVideoAsync(videoId); if (result is null) { return(new NotFoundResult()); } try { //Delet physical binary var filePath = "videos/" + result.ServerId + "/" + videoId; System.IO.File.Delete(filePath); //Delet in data base await result.DeleteAsync(); } catch (System.Exception) { return(new NotFoundResult()); } return(new OkResult()); }
public async Task <IActionResult> GetVideo(string videoId) { await videoDb.Connection.OpenAsync(); var query = new VideoQuery(videoDb); var result = await query.FindVideoAsync(videoId); if (result is null) { return(new NotFoundResult()); } return(new OkObjectResult(result)); }
public async Task <IActionResult> GetVideoBinary(string videoId) { await videoDb.Connection.OpenAsync(); var query = new VideoQuery(videoDb); var result = await query.FindVideoAsync(videoId); if (result is null) { return(new NotFoundResult()); } // Open binary video byte[] fileBytes = System.IO.File.ReadAllBytes($"videos/{result.ServerId}/{videoId}"); string fileName = videoId; return(File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName)); }