public ActionResult Index(int id)
        {
            var proposal = _context.Proposals.SingleOrDefault(m => m.Id == id);

            if (proposal == null || proposal.Submitted)
            {
                return(HttpNotFound());
            }
            if (!proposal.IsEditable(User.Identity.GetUserId()))
            {
                return(HttpNotFound());
            }
            var ie         = _context.IncomeExpenditures.SingleOrDefault(m => m.Id == proposal.IncomeExpenditureId);
            var statements = ie.GetStatements();

            proposal.IsInEdit    = true;
            proposal.UserEditing = User.Identity.GetUserId();
            _context.SaveChanges();
            var viewModel = new IncomeExpenditureIndexViewModel
            {
                Proposal   = proposal,
                Statements = statements
            };

            return(View(viewModel));
        }
        public ActionResult Index(int id)
        {
            var proposal = _context.Proposals.SingleOrDefault(m => m.Id == id);

            if (proposal == null || proposal.Submitted)
            {
                return(HttpNotFound());
            }
            var ie         = _context.IncomeExpenditures.SingleOrDefault(m => m.Id == proposal.IncomeExpenditureId);
            var statements = ie.GetStatements();

            var viewModel = new IncomeExpenditureIndexViewModel
            {
                Proposal   = proposal,
                Statements = statements
            };

            return(View(viewModel));
        }
Beispiel #3
0
        public ActionResult Submit(int id)
        {
            var    proposal     = _context.Proposals.SingleOrDefault(m => m.Id == id);
            string errorMessage = null;

            if (proposal == null)
            {
                return(HttpNotFound());
            }

            if (proposal.GeneralId == null)
            {
                errorMessage = "Section A not filled in yet.";
            }
            else if (proposal.ProgrammeRationaleId == null)
            {
                errorMessage = "Section B not filled in yet.";
            }
            else if (proposal.ExternalReviewId == null)
            {
                errorMessage = "Section C not filled in yet.";
            }
            else if (proposal.IncomeExpenditureId == null)
            {
                errorMessage = "Section D not filled in yet.";
            }
            else
            {
                var general = proposal.General;
                var pr      = proposal.ProgrammeRationale;
                var er      = proposal.ExternalReview;
                var ie      = proposal.IncomeExpenditure;
                if (general.GetErrorMessage() != null)
                {
                    errorMessage = general.GetErrorMessage();
                }
                else if (pr.GetErrorMessage() != null)
                {
                    errorMessage = pr.GetErrorMessage();
                }
                else if (er.GetErrorMessage() != null)
                {
                    errorMessage = er.GetErrorMessage();
                }
                else if (ie.GetErrorMessage() != null)
                {
                    errorMessage = ie.GetErrorMessage();
                }
            }

            if (errorMessage != null)
            {
                // an error is present
                var ie         = _context.IncomeExpenditures.SingleOrDefault(m => m.Id == proposal.IncomeExpenditureId);
                var statements = ie.GetStatements();

                var viewModel = new IncomeExpenditureIndexViewModel
                {
                    Proposal     = proposal,
                    Statements   = statements,
                    ErrorMessage = errorMessage
                };
                return(View("../IncomeExpenditure/Index", viewModel));
            }
            else
            {
                proposal.Submitted = true;
                _context.SaveChanges();
                return(RedirectToAction("Index", "Proposal"));
            }
        }