public async Task <IActionResult> Edit(long id, [Bind("Id,Risdata, ReactionId")] SustainableChemistryWeb.ViewModels.ReferenceViewModel appReference)
        {
            if (id != appReference.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var referenceToUpdate = await _context.AppReference
                                        .Include(i => i.FunctionalGroup)
                                        .Include(i => i.Reaction)
                                        .SingleOrDefaultAsync(i => i.Id == id);

                var tempReact = await _context.AppNamedreaction
                                .Include(i => i.FunctionalGroup)
                                .SingleOrDefaultAsync(i => i.Id == appReference.ReactionId);

                if (await TryUpdateModelAsync <Reference>(
                        referenceToUpdate,
                        "",
                        r => r.ReactionId, r => r.Risdata))
                {
                    if (appReference.RISFile != null)
                    {
                        referenceToUpdate.Risdata = new System.IO.StreamReader(appReference.RISFile.OpenReadStream()).ReadToEnd();
                    }
                    referenceToUpdate.FunctionalGroupId = tempReact.FunctionalGroupId;
                    referenceToUpdate.FunctionalGroup   = tempReact.FunctionalGroup;
                }
                _context.Update(referenceToUpdate);
                await _context.SaveChangesAsync();
            }
            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Details(long?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var appReference = await _context.AppReference
                               .Include(a => a.FunctionalGroup)
                               .Include(a => a.Reaction)
                               .FirstOrDefaultAsync(m => m.Id == id);

            if (appReference == null)
            {
                return(NotFound());
            }

            var referenceViewModel = new SustainableChemistryWeb.ViewModels.ReferenceViewModel
            {
                Id = appReference.Id,
                FunctionalGroupId = appReference.FunctionalGroupId,
                FunctionalGroup   = appReference.FunctionalGroup,
                ReactionId        = appReference.ReactionId,
                Reaction          = appReference.Reaction,
                Risdata           = appReference.Risdata
            };

            return(View(referenceViewModel));
        }
        // GET: AppReferences/Edit/5
        public async Task <IActionResult> Edit(long?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var appReference = await _context.AppReference.FindAsync(id);

            if (appReference == null)
            {
                return(NotFound());
            }
            var referenceViewModel = new SustainableChemistryWeb.ViewModels.ReferenceViewModel
            {
                Id = appReference.Id,
                FunctionalGroupId = appReference.FunctionalGroupId,
                FunctionalGroup   = appReference.FunctionalGroup,
                ReactionId        = appReference.ReactionId,
                Reaction          = appReference.Reaction,
                Risdata           = appReference.Risdata
            };

            PopulateReferenceData(appReference);
            ViewData["ReferenceText"] = referenceViewModel.Text;
            return(View(referenceViewModel));
        }