// GET: SubmissionFiles/ResubmissionFiles
        public IActionResult ResubmissionFiles(int sid)
        {
            var submission = _context.Submissions.SingleOrDefault(a => a.Id == sid);
            var mid        = submission.ManuscriptId;

            ViewData["sid"] = sid;
            ViewData["mid"] = mid;
            var manuscript = _context.Manuscripts.SingleOrDefault(a => a.Id == mid);
            var jid        = manuscript.JournalId;

            ViewData["jid"] = jid;
            if (manuscript.CurrentStatus != ManuscriptCurrentStatus.SubmissionsBeingProcessed)
            {
                return(NotFound());
            }


            SubmissionFileViewModel SubmissionFileVM = new SubmissionFileViewModel()
            {
                SubmissionFiles  = _context.SubmissionFiles.Include(a => a.Submission).Include(a => a.JournalFileType).Include(a => a.JournalFileType.FileType).Where(a => a.SubmissionId == sid),
                Submissions      = _context.Submissions.Where(a => a.ManuscriptId == mid),
                JournalFileTypes = _context.JournalFileTypes.Where(a => a.JournalId == jid)
            };

            ViewData["JournalArticleTypeId"] = new SelectList(_context.JournalArticleTypes.Include(a => a.ArticleType).Where(a => a.JournalId == jid), "Id", "ArticleType.Type");

            ViewData["JournalFileTypeId"] = new SelectList(_context.JournalFileTypes.Include(a => a.FileType).Where(a => a.JournalId == jid), "Id", "FileType.FileName");
            ViewData["SubmissionId"]      = new SelectList(_context.Submissions, "Id", "CoverLetter");
            return(View(SubmissionFileVM));
        }
        // GET: SubmissionFiles/Create
        public IActionResult TechnicalCreate(int sid)
        {
            var submission = _context.Submissions.SingleOrDefault(a => a.Id == sid);
            var mid        = submission.ManuscriptId;

            ViewData["sid"] = sid;
            ViewData["mid"] = mid;
            var manuscript = _context.Manuscripts.SingleOrDefault(a => a.Id == mid);
            var jid        = manuscript.JournalId;

            ViewData["jid"] = jid;

            SubmissionFileViewModel SubmissionFileVM = new SubmissionFileViewModel()
            {
                manuscript         = _context.Manuscripts.SingleOrDefault(a => a.Id == mid),
                SubmissionFiles    = _context.SubmissionFiles.Include(a => a.Submission).Include(a => a.JournalFileType).Include(a => a.JournalFileType.FileType).Where(a => a.SubmissionId == sid),
                SuggestedReviewers = _context.SuggestedReviewers.Where(a => a.ManuscriptId == mid),
                Manuscripts        = _context.Manuscripts.Where(a => a.Id == mid),
                ArticleAuthorships = _context.ArticleAuthorships.Where(a => a.ManuscriptId == mid),
                Submissions        = _context.Submissions.Where(a => a.ManuscriptId == mid),
                JournalFileTypes   = _context.JournalFileTypes.Where(a => a.JournalId == jid)
            };

            ViewData["JournalArticleTypeId"] = new SelectList(_context.JournalArticleTypes.Include(a => a.ArticleType).Where(a => a.JournalId == jid), "Id", "ArticleType.Type");
            ViewData["JournalFileTypeId"]    = new SelectList(_context.JournalFileTypes.Include(a => a.FileType).Where(a => a.FileTypeId == 3 || a.FileTypeId == 4).Where(a => a.IsDeleted == false && a.JournalId == jid && _context.SubmissionFiles.Where(m => m.SubmissionId == sid && m.JournalFileType.FileType.FileName == a.FileType.FileName).Count() == 0), "Id", "FileType.FileName");
            ViewData["SubmissionId"]         = new SelectList(_context.Submissions, "Id", "CoverLetter");
            return(View(SubmissionFileVM));
        }
        // GET: SubmissionFiles/Create
        public IActionResult Create(int sid)
        {
            var submission = _context.Submissions.SingleOrDefault(a => a.Id == sid);
            var mid        = submission.ManuscriptId;

            ViewData["sid"] = sid;
            ViewData["mid"] = mid;
            var manuscript = _context.Manuscripts.SingleOrDefault(a => a.Id == mid);
            var jid        = manuscript.JournalId;

            ViewData["jid"] = jid;
            if ((manuscript.CurrentStatus != ManuscriptCurrentStatus.InComplete && manuscript.CurrentStatus != ManuscriptCurrentStatus.SubmissionSentBackToAuthor) || manuscript.CorrespondingAuthorId != _userManager.GetUserId(User))
            {
                return(NotFound());
            }

            var requiredjournaliles     = _context.JournalFileTypes.Where(a => a.JournalId == jid && a.IsRequired == true && a.IsDeleted == false);
            var requiredsubmissionfiles = _context.SubmissionFiles.Where(a => a.SubmissionId == sid && requiredjournaliles.Where(m => m.FileTypeId == a.JournalFileType.FileTypeId).Count() > 0);

            if (requiredjournaliles.Count() == requiredsubmissionfiles.Count())
            {
                ViewData["subfiles"] = "true";
            }
            else
            {
                ViewData["subfiles"] = "false";
            }

            SubmissionFileViewModel SubmissionFileVM = new SubmissionFileViewModel()
            {
                manuscript         = _context.Manuscripts.SingleOrDefault(a => a.Id == mid),
                Submission         = _context.Submissions.SingleOrDefault(a => a.Id == submission.Id),
                SubmissionFiles    = _context.SubmissionFiles.Include(a => a.Submission).Include(a => a.JournalFileType).Include(a => a.JournalFileType.FileType).Where(a => a.SubmissionId == sid),
                SuggestedReviewers = _context.SuggestedReviewers.Where(a => a.ManuscriptId == mid),
                Manuscripts        = _context.Manuscripts.Where(a => a.Id == mid),
                ArticleAuthorships = _context.ArticleAuthorships.Where(a => a.ManuscriptId == mid),
                Submissions        = _context.Submissions.Where(a => a.ManuscriptId == mid),
                JournalFileTypes   = _context.JournalFileTypes.Where(a => a.JournalId == jid)
            };

            ViewData["JournalArticleTypeId"] = new SelectList(_context.JournalArticleTypes.Include(a => a.ArticleType).Where(a => a.JournalId == jid), "Id", "ArticleType.Type");

            ViewData["JournalFileTypeId"] = new SelectList(_context.JournalFileTypes.Include(a => a.FileType).Where(a => a.FileTypeId != 3 && a.FileTypeId != 4 && a.IsDeleted == false && a.JournalId == jid && _context.SubmissionFiles.Where(m => m.SubmissionId == sid && m.JournalFileType.FileType.FileName == a.FileType.FileName).Count() == 0), "Id", "FileType.FileName");
            ViewData["SubmissionId"]      = new SelectList(_context.Submissions, "Id", "CoverLetter");
            return(View(SubmissionFileVM));
        }