using LangGuan.Command.Model;
using LangGuan.Command.Model.EntityModel;
using LangGuan.Services;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
namespace LangGuan.Controllers
{
    [ApiVersion("1.0")]
    [Route("api/[controller]/v{version:apiVersion}")]
    [ApiController]
    public class VideoController : ControllerBase
    {
        private VideoService _videoService;
        /// 
        /// 
        /// 
        /// 
        public VideoController(VideoService videoService)
        {
            _videoService = videoService;
        }
        //[HttpPost]
        //public async Task SaveRecoredFile()
        //{
        //    if (Request.Form.Files.Any())
        //    {
        //        var file = Request.Form.Files["video-blob"];
        //        string UploadFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "UploadedFiles");
        //        string UniqueFileName = Guid.NewGuid().ToString() + "_" + file.FileName + ".webm";
        //        string UploadPath = Path.Combine(UploadFolder, UniqueFileName);
        //        await file.CopyToAsync(new FileStream(UploadPath, FileMode.Create));
        //    }
        //    return Ok(HttpStatusCode.OK);
        //}
        /// 
        /// 列表
        /// 
        /// 
        [HttpGet("list")]
        public async Task list([FromQuery] RqeustPaging request)
        {
            var result = await _videoService.GetList(request);
            return Ok(result);
        }
        /// 
        /// 新加
        /// 
        /// 
        /// 
        [HttpPost("add")]
        public async Task Add(Video request)
        {
            var result = await _videoService.Add(request);
            return Ok(result);
        }
        /// 
        /// /更新
        /// 
        /// 
        [HttpPost("update")]
        public async Task update(Video video)
        {
            var result = await _videoService.Update(video);
            return Ok(result);
        }
        /// 
        /// 批量删除,传数组
        /// 
        /// 
        /// 
        [HttpDelete("remove")]
        public async Task removoe(IEnumerable ids)
        {
            if (ids.Any())
            {
                foreach (var item in ids)
                {
                    await _videoService.RemoveAsync(item);
                }
            }
            return Ok(new ApiResult() { code = 0 });
        }
    }
}