// GET: /BMED/AssetFile/Delete/5
        public IActionResult Delete(string ano = null, int seqno = 1, int fid = 1)
        {
            AssetFileModel assetfile = _context.AssetFiles.Find(ano, seqno, fid);

            if (assetfile == null)
            {
                return(NotFound());
            }
            else
            {
                try
                {
                    string   WebRootPath = _hostingEnvironment.WebRootPath;
                    string   filePath    = Path.Combine(WebRootPath + "/Files/BMED/");
                    FileInfo ff          = new FileInfo(Path.Combine(filePath, assetfile.FileLink));
                    ff.Delete();
                    _context.AssetFiles.Remove(assetfile);
                    _context.SaveChanges();
                    //return Json(new { msg = "儲存成功!" }, JsonRequestBehavior.AllowGet);
                    return(Content(""));
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message));
                }
                //List<AssetFile> af = db.AssetFiles.Where(f => f.AssetNo == ano).ToList();
                //if (title != null)
                //    af = af.Where(f => f.Title == title).ToList();
                //return PartialView("List", af);
            }
        }
        public IActionResult CopyTo(IFormCollection fm)
        {
            // Get Login User's details.
            var ur = _userRepo.Find(usr => usr.UserName == User.Identity.Name).FirstOrDefault();
            //
            AssetFileModel        af;
            string                ano = fm["ano"];
            int                   sno = Convert.ToInt32(fm["sno"]);
            List <AssetFileModel> fs  = _context.AssetFiles.Where(f => f.AssetNo == ano && f.SeqNo == sno).ToList();

            string[] slist = this.Request.Form["IsCopy"];
            int      fid   = 0;

            if (slist != null)
            {
                foreach (string s in slist)
                {
                    fid = _context.AssetFiles.Where(f => f.AssetNo == s && f.SeqNo == sno)
                          .DefaultIfEmpty()
                          .Max(p => p == null ? 0 : p.Fid);

                    foreach (AssetFileModel a in fs)
                    {
                        string WebRootPath = _hostingEnvironment.WebRootPath;
                        string filePath    = Path.Combine(WebRootPath + "/Files/BMED/");
                        fid++;
                        FileInfo inf = new FileInfo(filePath + a.FileLink);
                        af          = new AssetFileModel();
                        af.AssetNo  = s;
                        af.SeqNo    = sno;
                        af.Fid      = fid;
                        af.Title    = a.Title;
                        af.FileLink = "Asset/" + af.AssetNo + "_" + af.SeqNo.ToString() + "_"
                                      + af.Fid.ToString() + inf.Extension;
                        af.Rtp = ur.Id.ToString();
                        af.Rtt = DateTime.Now;
                        _context.AssetFiles.Add(af);
                        try
                        {
                            inf.CopyTo(filePath + af.FileLink);
                        }
                        catch (Exception ex)
                        {
                            return(Content(ex.Message));
                        }
                    }
                }
                try
                {
                    _context.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message));
                }
            }

            return(Content(""));
        }
        public IActionResult DeleteConfirmed(string id)
        {
            AssetFileModel assetfile = _context.AssetFiles.Find(id);

            _context.AssetFiles.Remove(assetfile);
            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> Create(AssetFileModel assetfile, IEnumerable <IFormFile> file)
        {
            if (ModelState.IsValid)
            {
                string s = "/Files/BMED";
                s += "/Asset";

                var assetFile = _context.AssetFiles.Where(af => af.AssetNo == assetfile.AssetNo && af.SeqNo == assetfile.SeqNo)
                                .Select(af => af.Fid).ToList();
                int?i = null;
                if (assetFile.Count() > 0)
                {
                    i = assetFile.Max();
                }
                if (i == null)
                {
                    assetfile.Fid = 1;
                }
                else
                {
                    assetfile.Fid = Convert.ToInt32(i + 1);
                }
                string WebRootPath = _hostingEnvironment.WebRootPath;
                string path        = Path.Combine(WebRootPath + s, assetfile.AssetNo + "_"
                                                  + assetfile.SeqNo.ToString() + "_" + assetfile.Fid.ToString() + Path.GetExtension(Request.Form.Files[0].FileName));
                string filelink = assetfile.AssetNo + "_" + assetfile.SeqNo.ToString() + "_"
                                  + assetfile.Fid.ToString() + Path.GetExtension(Request.Form.Files[0].FileName);
                try
                {
                    // Upload files.
                    using (var stream = new FileStream(path, FileMode.Create))
                    {
                        await Request.Form.Files[0].CopyToAsync(stream);
                    }
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }
                assetfile.FileLink = "Asset/" + filelink;
                assetfile.Rtt      = DateTime.Now;
                _context.AssetFiles.Add(assetfile);
                try
                {
                    _context.SaveChanges();
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }
                return(View());
            }

            return(Content("錯誤!!"));
        }
        // GET: /BMED/AssetFile/Create
        public IActionResult Create(string id = null, int sno = 1, string title = null)
        {
            // Get Login User's details.
            var            ur = _userRepo.Find(usr => usr.UserName == User.Identity.Name).FirstOrDefault();
            AssetFileModel a  = new AssetFileModel();

            a.AssetNo = id;
            a.Title   = title;
            a.SeqNo   = sno;
            a.Rtp     = ur.Id.ToString();
            a.Rtt     = DateTime.Now;
            return(View(a));
        }
        // GET: /BMED/AssetFile/CopyTo
        public IActionResult CopyTo(string id, int sno = 1)
        {
            AssetModel        t  = _context.BMEDAssets.Find(id);
            List <AssetModel> at = new List <AssetModel>();

            if (t != null)
            {
                at = _context.BMEDAssets.Where(a => a.Docid == t.Docid).ToList();
                AssetFileModel af = _context.AssetFiles.Where(f => f.AssetNo == id && f.SeqNo == sno)
                                    .FirstOrDefault();
                if (af == null)
                {
                    return(Content("錯誤!!尚未上傳檔案!!"));
                }
                ViewData["ano"]   = id;
                ViewData["sno"]   = sno;
                ViewData["cname"] = t.Cname;
                ViewData["title"] = af.Title;
            }
            return(View(at));
        }