public ActionResult DeleteConfirmed(int id)
        {
            PossibleDefect possibleDefect = db.PossibleDefects.Find(id);

            db.PossibleDefects.Remove(possibleDefect);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: PossibleDefects/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PossibleDefect possibleDefect = db.PossibleDefects.Find(id);

            if (possibleDefect == null)
            {
                return(HttpNotFound());
            }
            return(View(possibleDefect));
        }
        // GET: PossibleDefects/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PossibleDefect possibleDefect = db.PossibleDefects.Find(id);

            if (possibleDefect == null)
            {
                return(HttpNotFound());
            }
            ViewBag.DefectGroup = new SelectList(db.DefectGroups, "DefectGroupId", "GroupName", possibleDefect.DefectGroupId);
            ViewBag.VersionId   = new SelectList(db.PhoneVersions, "VersionId", "Version", possibleDefect.VersionId);
            return(View(possibleDefect));
        }
        public ActionResult Create([Bind(Include = "DefectGroupId,NewGroupName,PossibleDefectId,DefectName,DefectCost,VersionId")] PossibleDefect possibleDefect, int?DefectGroup, string NewGroupName = null)
        {
            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    int?groupId = DefectGroup;

                    // Create New Group
                    if (!String.IsNullOrEmpty(NewGroupName))
                    {
                        int?        maxDisplayOrder = db.DefectGroups.Max(d => d.DisplayOrder);
                        DefectGroup group           = new DefectGroup();
                        group.GroupName    = NewGroupName;
                        group.DisplayOrder = maxDisplayOrder + 1;
                        db.DefectGroups.Add(group);
                        db.SaveChanges();
                        groupId = group.DefectGroupId;
                    }

                    // Add the Defect
                    possibleDefect.DefectGroupId = groupId;
                    db.PossibleDefects.Add(possibleDefect);
                    db.SaveChanges();

                    dbContextTransaction.Commit();
                }
                catch (Exception ex)
                {
                    ViewBag.Message = "An error was encountered while attempting to complete your transaction. <br />" +
                                      "Error Message: " + ex;

                    dbContextTransaction.Rollback();

                    ViewBag.DefectGroup = new SelectList(db.DefectGroups, "DefectGroupId", "GroupName", "-- Select Group --");
                    ViewBag.VersionId   = new SelectList(db.PhoneVersions, "VersionId", "Version");

                    return(RedirectToAction("Create"));
                }

                return(RedirectToAction("Index"));
            }
        }
        public ActionResult Edit([Bind(Include = "DefectGroupId,NewGroupName,PossibleDefectId,DefectName,DefectCost,VersionId")] int id, string DefectName, decimal DefectCost)
        {
            PossibleDefect possibleDefect = db.PossibleDefects.Find(id);

            try
            {
                if (ModelState.IsValid)
                {
                    possibleDefect.DefectName = DefectName;
                    possibleDefect.DefectCost = DefectCost;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Message = "Error Encountered While Processing Request<br />" +
                                  "Error Message: " + ex.Message;

                return(View(id));
            }

            return(View(possibleDefect));
        }