public async Task <ActionResult> DetailsForm(InstBasicViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(a => a.Errors);
                TempData["Code"]     = "danger";
                TempData["Head"]     = "Error";
                TempData["Messages"] = errors.Select(a => a.ErrorMessage).ToList();
            }
            else
            {
                var inst = await _db.Institutions.FindAsync(model.Id);

                if (inst == null)
                {
                    TempData["Code"]     = "danger";
                    TempData["Head"]     = "Error";
                    TempData["Messages"] = new List <string>()
                    {
                        "Cannot find requested Institution"
                    };
                }

                try
                {
                    Mapper.Map(model, inst);
                    await _db.SaveChangesAsync();

                    TempData["Code"]     = "success";
                    TempData["Head"]     = "Done";
                    TempData["Messages"] = new List <string>()
                    {
                        "Institution details have been updated."
                    };
                } catch (Exception e)
                {
                    TempData["Code"]     = "danger";
                    TempData["Head"]     = "Error";
                    TempData["Messages"] = new List <string>()
                    {
                        e.Message
                    };
                }
            }
            return(RedirectToAction("Manage", new { id = model.Id }));
        }
        public async Task <ActionResult> Create(InstBasicViewModel model, HttpPostedFileBase instPhoto)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(a => a.Errors);
                model.Code    = "danger";
                model.Head    = "Error";
                model.Message = string.Join("\n", errors.Select(a => a.ErrorMessage).ToList());
                return(View(model));
            }
            else
            {
                try
                {
                    var inst = Mapper.Map <Institution>(model);

                    if (instPhoto != null)
                    {
                        inst.CollegeCrest = _fs.ConvertToBytes(instPhoto);
                    }
                    _db.Institutions.Add(inst);
                    await _db.SaveChangesAsync();

                    TempData["Code"]     = "success";
                    TempData["Head"]     = "Done";
                    TempData["Messages"] = new List <string>()
                    {
                        "Institution has been added."
                    };
                    return(RedirectToAction("Manage", new { id = inst.Id }));
                }
                catch (Exception e)
                {
                    var errors = ModelState.Values.SelectMany(a => a.Errors);
                    model.Code    = "danger";
                    model.Head    = "Error";
                    model.Message = e.Message;
                    return(View(model));
                }
            }
        }