public ActionResult Edit(int id)
        {
            if (CurrentUser.UserRole == Enums.UserRole.Viewer || CurrentUser.UserRole == Enums.UserRole.Controller)
            {
                return(RedirectToAction("Details", new { id }));
            }

            var model = new GoodsTypeGroupEditViewModel();

            model.MainMenu    = _mainMenu;
            model.CurrentMenu = PageInfo;
            // model.GroupName = groupName;

            var realChild = _exGroupTypeBll.GetById(id);

            model.Id        = realChild.EX_GROUP_TYPE_ID;
            model.GroupName = realChild.GROUP_NAME;
            var childDetails = _zaidmExGoodTypeBll.GetAll();

            model.Details = Mapper.Map <List <GoodsTypeDetails> >(childDetails).ToList();

            foreach (var details in model.Details)
            {
                foreach (var gt in realChild.EX_GROUP_TYPE_DETAILS)
                {
                    if (details.GoodTypeId == gt.GOODTYPE_ID)
                    {
                        details.IsChecked = true;
                    }
                }
            }
            return(View(model));
        }
        public ActionResult Details(int id)
        {
            var model = new GoodsTypeGroupEditViewModel();

            model.MainMenu    = _mainMenu;
            model.CurrentMenu = PageInfo;
            // model.GroupName = groupName;

            var realChild = _exGroupTypeBll.GetById(id);

            model.GroupName = realChild.GROUP_NAME;
            var childDetails = _zaidmExGoodTypeBll.GetAll();

            model.Details            = Mapper.Map <List <GoodsTypeDetails> >(childDetails).ToList();
            model.ChangesHistoryList = Mapper.Map <List <ChangesHistoryItemModel> >(_changesHistoryBll.GetByFormTypeAndFormId(Enums.MenuList.GoodsTypeGroup, id.ToString()));
            foreach (var details in model.Details)
            {
                foreach (var gt in realChild.EX_GROUP_TYPE_DETAILS)
                {
                    if (details.GoodTypeId == gt.GOODTYPE_ID)
                    {
                        details.IsChecked = true;
                    }
                }
            }
            return(View(model));
        }
        public ActionResult Edit(GoodsTypeGroupEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                List <EX_GROUP_TYPE_DETAILS> newDetails = new List <EX_GROUP_TYPE_DETAILS>();

                foreach (var data in model.Details.Where(x => x.IsChecked))
                {
                    var detailGroupType = new EX_GROUP_TYPE_DETAILS();

                    detailGroupType.GOODTYPE_ID      = data.GoodTypeId;
                    detailGroupType.EX_GROUP_TYPE_ID = model.Id;
                    newDetails.Add(detailGroupType);
                }

                _exGroupTypeBll.InsertDetail(model.Id, newDetails, CurrentUser.USER_ID);
                //var realChild = _exGroupTypeBll.GetById(model.Id);
                //var listDetail = new List<EX_GROUP_TYPE_DETAILS>(realChild.EX_GROUP_TYPE_DETAILS);


                //var listGroup = new List<EX_GROUP_TYPE>();
                //foreach (var detail in model.Details.Where(detail => detail.IsChecked))
                //{
                //    var detailGroupType = new EX_GROUP_TYPE_DETAILS();

                //    detailGroupType.GOODTYPE_ID = detail.GoodTypeId;
                //    detailGroupType.EX_GROUP_TYPE_ID = realChild.EX_GROUP_TYPE_ID;
                //    _exGroupTypeBll.InsertDetail(detailGroupType);

                //}

                AddMessageInfo(Constans.SubmitMessage.Updated, Enums.MessageInfoType.Success
                               ); return(RedirectToAction("Index"));


                ModelState.AddModelError("Details", "Choose at least one type");
            }

            // InitCreateModel(model);
            model.MainMenu    = _mainMenu;
            model.CurrentMenu = PageInfo;

            return(View("Edit", model));
        }