//[ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "Components,ParentComponent,ProductionProcess,SKU,Id,ComponentSKU,DesignName,ALTSku,GraphSKU,StockSKU,MadeType,SKUGroup,Remark1,Remark2,ConsumeQty,ConsumeTime,RejectRatio,Deploy,Locator,ProductionLine,ProductionProcessId,Version,Status,NoPur,FinishedSKU,DesignPricture1,DesignPrictureURL1,DesignPricture2,DesignPrictureURL2,SKUId,ParentComponentId,CreatedUserId,CreatedDateTime,LastEditUserId,LastEditDateTime")] BOMComponent bOMComponent)
        {
            if (ModelState.IsValid)
            {
                bOMComponent.ObjectState = ObjectState.Modified;
                _bOMComponentService.Update(bOMComponent);

                _unitOfWork.SaveChanges();
                if (Request.IsAjaxRequest())
                {
                    return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
                }
                DisplaySuccessMessage("Has update a BOMComponent record");
                return(RedirectToAction("Index"));
            }
            var bomcomponentRepository = _unitOfWork.Repository <BOMComponent>();

            ViewBag.ParentComponentId = new SelectList(bomcomponentRepository.Queryable(), "Id", "ComponentSKU", bOMComponent.ParentComponentId);
            var productionprocessRepository = _unitOfWork.Repository <ProductionProcess>();

            ViewBag.ProductionProcessId = new SelectList(productionprocessRepository.Queryable(), "Id", "Name", bOMComponent.ProductionProcessId);
            var skuRepository = _unitOfWork.Repository <SKU>();

            ViewBag.SKUId = new SelectList(skuRepository.Queryable(), "Id", "Sku", bOMComponent.SKUId);
            if (Request.IsAjaxRequest())
            {
                var modelStateErrors = String.Join("", this.ModelState.Keys.SelectMany(key => this.ModelState[key].Errors.Select(n => n.ErrorMessage)));
                return(Json(new { success = false, err = modelStateErrors }, JsonRequestBehavior.AllowGet));
            }
            DisplayErrorMessage();
            return(View(bOMComponent));
        }
        //[ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            BOMComponent bOMComponent = _bOMComponentService.Find(id);

            _bOMComponentService.Delete(bOMComponent);
            _unitOfWork.SaveChanges();
            if (Request.IsAjaxRequest())
            {
                return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
            }
            DisplaySuccessMessage("Has delete a BOMComponent record");
            return(RedirectToAction("Index"));
        }
        // GET: BOMComponents/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BOMComponent bOMComponent = _bOMComponentService.Find(id);

            if (bOMComponent == null)
            {
                return(HttpNotFound());
            }
            return(View(bOMComponent));
        }
        // GET: BOMComponents/Create
        public ActionResult Create()
        {
            BOMComponent bOMComponent = new BOMComponent();
            //set default value
            var bomcomponentRepository = _unitOfWork.Repository <BOMComponent>();

            ViewBag.ParentComponentId = new SelectList(bomcomponentRepository.Queryable(), "Id", "ComponentSKU");
            var productionprocessRepository = _unitOfWork.Repository <ProductionProcess>();

            ViewBag.ProductionProcessId = new SelectList(productionprocessRepository.Queryable(), "Id", "Name");
            var skuRepository = _unitOfWork.Repository <SKU>();

            ViewBag.SKUId = new SelectList(skuRepository.Queryable(), "Id", "Sku");
            return(View(bOMComponent));
        }
        // GET: BOMComponents/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BOMComponent bOMComponent = _bOMComponentService.Find(id);

            if (bOMComponent == null)
            {
                return(HttpNotFound());
            }
            var bomcomponentRepository = _unitOfWork.Repository <BOMComponent>();

            ViewBag.ParentComponentId = new SelectList(bomcomponentRepository.Queryable(), "Id", "ComponentSKU", bOMComponent.ParentComponentId);
            var productionprocessRepository = _unitOfWork.Repository <ProductionProcess>();

            ViewBag.ProductionProcessId = new SelectList(productionprocessRepository.Queryable(), "Id", "Name", bOMComponent.ProductionProcessId);
            var skuRepository = _unitOfWork.Repository <SKU>();

            ViewBag.SKUId = new SelectList(skuRepository.Queryable(), "Id", "Sku", bOMComponent.SKUId);
            return(View(bOMComponent));
        }