public ActionResult DataSetDeleted(int id)
        {
            DataSets dataSet     = _context.DataSets.FirstOrDefault(x => x.Id == id);
            var      dataSetList = _context.DataSetFileDetail.Where(x => x.DataSetId == id).ToList();

            foreach (var item in dataSetList)
            {
                DataSetFileDetail fileDetail = _context.DataSetFileDetail.FirstOrDefault(x => x.FileDataId == item.FileDataId);


                _context.DataSetFileDetail.Remove(fileDetail);
                _context.SaveChanges();

                var path = Path.Combine(Server.MapPath("~/App_Data/Upload/"), fileDetail.FileDataId + fileDetail.Extension);
                if (System.IO.File.Exists(path))
                {
                    System.IO.File.Delete(path);
                }
            }

            _context.DataSets.Remove(dataSet);
            _context.SaveChanges();

            return(RedirectToAction("All"));
        }
        public ActionResult DataSetCreated(DataSets dataSet)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Something went wrong!");
                return(View("CreateDataSet"));
            }

            List <DataSetFileDetail> fileDetails = new List <DataSetFileDetail>();

            for (int i = 0; i < Request.Files.Count; i++)
            {
                var file = Request.Files[i];

                if (file != null && file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    DataSetFileDetail fileDetail = new DataSetFileDetail()
                    {
                        FileName   = fileName,
                        Extension  = Path.GetExtension(fileName),
                        FileDataId = Guid.NewGuid().ToString()
                    };
                    fileDetails.Add(fileDetail);

                    var path = Path.Combine(Server.MapPath("~/App_Data/Upload/"), fileDetail.FileDataId + fileDetail.Extension);
                    file.SaveAs(path);
                }
            }
            dataSet.DataSetFileDetail = fileDetails;
            _context.DataSets.Add(dataSet);
            _context.SaveChanges();
            return(RedirectToAction("All"));
        }
        public ActionResult DataSetEdited(DataSets newDataSet)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Something went wrong!");
                return(View("EditDataSet", newDataSet));
            }

            DataSets oldDataSet = _context.DataSets.FirstOrDefault(x => x.Id == newDataSet.Id);

            oldDataSet.Title          = newDataSet.Title;
            oldDataSet.Description    = newDataSet.Description;
            oldDataSet.CategoryId     = newDataSet.CategoryId;
            oldDataSet.OrganizationId = newDataSet.OrganizationId;
            oldDataSet.FormatId       = newDataSet.FormatId;
            oldDataSet.LabelId        = newDataSet.LabelId;
            oldDataSet.LicenseId      = newDataSet.LicenseId;
            //New Files
            for (int i = 0; i < Request.Files.Count; i++)
            {
                var file = Request.Files[i];

                if (file != null && file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    DataSetFileDetail fileDetail = new DataSetFileDetail()
                    {
                        FileName   = fileName,
                        Extension  = Path.GetExtension(fileName),
                        FileDataId = Guid.NewGuid().ToString(),
                        DataSetId  = oldDataSet.Id
                    };
                    var path = Path.Combine(Server.MapPath("~/App_Data/Upload/"), fileDetail.FileDataId + fileDetail.Extension);
                    file.SaveAs(path);
                    _context.Entry(fileDetail).State = EntityState.Added;
                }
            }

            _context.Entry(oldDataSet).State = EntityState.Modified;
            _context.SaveChanges();

            return(RedirectToAction("All"));
        }
        public ActionResult DeleteFile(string id)
        {
            DataSetFileDetail fileDetail = _context.DataSetFileDetail.FirstOrDefault(x => x.FileDataId == id);

            if (fileDetail == null)
            {
                ModelState.AddModelError("", "Something went wrong!");
                return(RedirectToAction("All"));
            }

            //Remove from database
            _context.DataSetFileDetail.Remove(fileDetail);
            _context.SaveChanges();

            //Delete file from the file system
            var path = Path.Combine(Server.MapPath("~/App_Data/Upload/"), fileDetail.FileDataId + fileDetail.Extension);

            if (System.IO.File.Exists(path))
            {
                System.IO.File.Delete(path);
            }
            return(RedirectToAction("EditDataSet", "Dashboard", new { id = fileDetail.DataSetId }));
        }