//
        // GET: /UserGroup/Add
        public ActionResult Add()
        {
            var applicationList = SelectListItemExtension.PopulateDropdownList(_applicationRepository.GetAll().ToList<TblApplication>(), "ApplicationId", "ApplicationName").ToList();

            var moduleList = SelectListItemExtension.PopulateDropdownList(_moduleRepository.GetAll().ToList<TblModule>(), "ModuleId", "ModuleTitle").ToList();

            var viewModel = new GroupViewModel() { GroupId = 0, ddlApplications = applicationList, ddlModules = moduleList };

            //return View();
            return PartialView("_AddOrEdit", viewModel);
        }
        //
        // GET: /UserGroup/Details/By ID
        public ActionResult Details(int id)
        {
            var errorViewModel = new ErrorViewModel();

            try
            {
                //var group = _groupRepository.GetById(id);
                var group = _groupRepository.GetAll().SingleOrDefault(x => x.GroupId == id);
                if (group != null)
                {

                    var viewModel = new GroupViewModel() { GroupId = group.GroupId, GroupName = group.GroupName, Description = group.Description };

                    return PartialView("_Details", viewModel);

                }

                errorViewModel = ExceptionHelper.ExceptionErrorMessageForNullObject();
            }
            catch (Exception ex)
            {
                errorViewModel = ExceptionHelper.ExceptionErrorMessageFormat(ex);
            }

            return PartialView("_ErrorPopup", errorViewModel);
        }
        public ActionResult Save(GroupViewModel groupViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //add
                    if (groupViewModel.GroupId == 0 && groupViewModel.ActionName == "Add")
                    {
                        var model = new TblGroup()
                        {
                            GroupId = groupViewModel.GroupId,
                            GroupName = groupViewModel.GroupName,
                            Description = groupViewModel.Description,
                            //ApplicationId = groupViewModel.ApplicationId,
                            //ModuleId = groupViewModel.ModuleId
                        };

                        //_groupRepository.Insert(model);
                        //add role to group wise
                    }
                    else if (groupViewModel.ActionName == "Edit") //edit
                    {
                        TblGroup group = _groupRepository.GetById(groupViewModel.GroupId);

                        if (group != null)
                        {

                            group.GroupId = groupViewModel.GroupId;
                            group.GroupName = groupViewModel.GroupName;
                            group.Description = groupViewModel.Description;

                            //group.ApplicationId = groupViewModel.ApplicationId;
                            //group.ModuleId = groupViewModel.ModuleId;

                            //_groupRepository.Update(group);

                        }
                        else
                        {
                            return Content(KendoUiHelper.GetKendoUiWindowAjaxSuccessMethod(Boolean.FalseString, groupViewModel.ActionName, MessageType.warning.ToString(), ExceptionHelper.ExceptionMessageForNullObject()));
                        }

                    }

                    //_groupRepository.Save();

                    return Content(KendoUiHelper.GetKendoUiWindowAjaxSuccessMethod(Boolean.TrueString, groupViewModel.ActionName, MessageType.success.ToString(), "Saved Successfully."));

                }

                return Content(KendoUiHelper.GetKendoUiWindowAjaxSuccessMethod(Boolean.FalseString, groupViewModel.ActionName, MessageType.warning.ToString(), ExceptionHelper.ModelStateErrorFormat(ModelState)));
            }
            catch (Exception ex)
            {
                return Content(KendoUiHelper.GetKendoUiWindowAjaxSuccessMethod(Boolean.FalseString, groupViewModel.ActionName, MessageType.warning.ToString(), ExceptionHelper.ExceptionMessageFormat(ex)));
            }
        }
        //
        // GET: /UserGroup/Edit/By ID
        public ActionResult Edit(int id)
        {
            var errorViewModel = new ErrorViewModel();

            try
            {
                //var group = _groupRepository.GetById(id);
                var group = _groupRepository.GetAll().SingleOrDefault(x => x.GroupId == id);
                if (group != null)
                {

                    var moduleList = SelectListItemExtension.PopulateDropdownList(_moduleRepository.GetAll().ToList<TblModule>(), "ModuleId", "ModuleName").ToList();

                    var applicationList = SelectListItemExtension.PopulateDropdownList(_applicationRepository.GetAll().ToList<TblApplication>(), "ApplicationId", "ApplicationName").ToList();

                    var viewModel = new GroupViewModel()
                    {
                        GroupId = group.GroupId,
                        GroupName = group.GroupName,
                        Description = group.Description,

                        ddlApplications = applicationList,

                        ddlModules = moduleList
                    };
                    return PartialView("_AddOrEdit", viewModel);

                }

                errorViewModel = ExceptionHelper.ExceptionErrorMessageForNullObject();
            }
            catch (Exception ex)
            {
                errorViewModel = ExceptionHelper.ExceptionErrorMessageFormat(ex);
            }

            return PartialView("_ErrorPopup", errorViewModel);
        }