public ActionResult GetRolePrivilegeData(string roleid)
        {
            var _draw          = Request.Form.GetValues("draw").FirstOrDefault();
            var _start         = Request.Form.GetValues("start").FirstOrDefault();
            var _length        = Request.Form.GetValues("length").FirstOrDefault();
            var _sortColumn    = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
            var _sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
            var _searchValue   = Request.Form.GetValues("search[value]").FirstOrDefault();

            int _pageSize = _length != null?Convert.ToInt32(_length) : 0;

            int _skip = _start != null?Convert.ToInt32(_start) : 0;

            var _model = new RolePrivilegeModel
            {
                RoleID = long.Parse(roleid)
            };

            var request = new RolePrivilegeRequest
            {
                Draw          = _draw,
                SearchValue   = _searchValue,
                SortColumn    = _sortColumn,
                SortColumnDir = _sortColumnDir,
                PageSize      = _pageSize,
                Skip          = _skip,
                Data          = _model
            };

            var response = new RolePrivilegeHandler(_unitOfWork, _context).GetPrivilegeBasedOnOrganization(request);

            return(Json(new { data = response.Data, recordsFiltered = response.RecordsFiltered, recordsTotal = response.RecordsTotal, draw = response.Draw }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult CreateRolePrivilege()
        {
            RolePrivilegeResponse response = new RolePrivilegeResponse();
            RolePrivilegeModel    _model   = new RolePrivilegeModel();

            if (Request.Form["RoleId"] != null)
            {
                _model.RoleID = Convert.ToInt64(Request.Form["RoleId"].ToString());
            }
            if (Request.Form["Privileges"] != null)
            {
                _model.PrivilegeIDs = JsonConvert.DeserializeObject <List <long> >(Request.Form["Privileges"]);
            }
            if (Session["UserLogon"] != null)
            {
                _model.Account = (AccountModel)Session["UserLogon"];
            }

            var request = new RolePrivilegeRequest
            {
                Data = _model
            };

            new RolePrivilegeValidator(_unitOfWork, _context).Validate(request, out response);
            return(Json(new { Status = response.Status, Message = response.Message }, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Create or edit
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public RolePrivilegeResponse CreateOrEdit(RolePrivilegeRequest request)
        {
            RolePrivilegeResponse response = new RolePrivilegeResponse();

            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    var toberemove = _context.RolePrivileges.Where(x => x.RoleID == request.Data.RoleID);
                    _context.RolePrivileges.RemoveRange(toberemove);
                    _context.SaveChanges();

                    //insert new
                    foreach (long _privid in request.Data.PrivilegeIDs)
                    {
                        var rolepprivilege = new RolePrivilege
                        {
                            RoleID      = request.Data.RoleID,
                            PrivilegeID = _privid,
                            CreatedBy   = request.Data.Account.UserCode,
                            CreatedDate = DateTime.Now
                        };

                        _context.RolePrivileges.Add(rolepprivilege);
                    }

                    int resultAffected = _context.SaveChanges();

                    transaction.Commit();
                    response.Status  = true;
                    response.Message = Messages.DataSaved;
                }
                catch (Exception ex)
                {
                    transaction.Rollback();

                    response.Status  = false;
                    response.Message = Messages.GeneralError;

                    ErrorLog(ClinicEnums.Module.MASTER_ROLE_PRIVILEGE, ClinicEnums.Action.DELETE.ToString(), request.Data.Account, ex);
                }
            }

            return(response);
        }
        /// <summary>
        /// Get list of role privilege data
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public RolePrivilegeResponse GetListData(RolePrivilegeRequest request)
        {
            var qry = _unitOfWork.RolePrivRepository.Get(x => x.RoleID == request.Data.RoleID && x.RowStatus == 0);
            RolePrivilegeModel _model = new RolePrivilegeModel();

            if (qry.Count > 0)
            {
                _model.RoleID = qry.FirstOrDefault().RoleID;
            }

            foreach (var item in qry)
            {
                _model.PrivilegeIDs.Add(item.PrivilegeID);
            }

            var response = new RolePrivilegeResponse
            {
                Entity = _model
            };

            return(response);
        }
Beispiel #5
0
        /// <summary>
        /// Validate request
        /// </summary>
        /// <param name="request"></param>
        /// <param name="response"></param>
        public void Validate(RolePrivilegeRequest request, out RolePrivilegeResponse response)
        {
            response = new RolePrivilegeResponse();

            if (request.Data.RoleID == 0)
            {
                errorFields.Add("Role");
            }
            if (request.Data.PrivilegeIDs.Count == 0)
            {
                errorFields.Add("Privileges");
            }

            if (errorFields.Any())
            {
                response.Status  = false;
                response.Message = string.Format(Messages.ValidationErrorFields, String.Join(",", errorFields));
            }

            if (response.Status)
            {
                response = new RolePrivilegeHandler(_unitOfWork, _context).CreateOrEdit(request);
            }
        }
        public ActionResult RolePrivilegeList()
        {
            RolePrivilegeModel rpmodel = new RolePrivilegeModel();

            if (Request.QueryString["roleid"] != null)
            {
                var reqOrg = new RoleRequest
                {
                    Data = new RoleModel
                    {
                        Id = Convert.ToInt64(Request.QueryString["roleid"].ToString())
                    }
                };

                var respOrg = new RoleResponse();
                respOrg          = new RoleHandler(_unitOfWork).GetDetail(reqOrg);
                rpmodel.RoleDesc = respOrg.Entity.RoleName;
                rpmodel.RoleID   = respOrg.Entity.Id;

                var _request = new RolePrivilegeRequest
                {
                    Data = new RolePrivilegeModel
                    {
                        RoleID = Convert.ToInt64(Request.QueryString["roleid"].ToString())
                    }
                };
                //get Privilege Ids for organization
                var selPrivileges = new RolePrivilegeHandler(_unitOfWork, _context).GetListData(_request);
                if (selPrivileges.Entity.PrivilegeIDs != null && selPrivileges.Entity.PrivilegeIDs.Count > 0)
                {
                    rpmodel.PrivilegeIDs = selPrivileges.Entity.PrivilegeIDs;
                }
            }

            return(View(rpmodel));
        }
        /// <summary>
        /// Get privilege based on organization
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public OrganizationPrivilegeResponse GetPrivilegeBasedOnOrganization(RolePrivilegeRequest request)
        {
            var _orgId = _unitOfWork.RoleRepository.GetById(request.Data.RoleID) == null ? 0 : _unitOfWork.RoleRepository.GetById(request.Data.RoleID).OrgID;

            List <OrganizationPrivilegeModel> lists = new List <OrganizationPrivilegeModel>();
            dynamic qry             = null;
            var     searchPredicate = PredicateBuilder.New <OrganizationPrivilege>(true);

            searchPredicate = searchPredicate.And(x => x.OrgID == _orgId);
            if (!String.IsNullOrEmpty(request.SearchValue) && !String.IsNullOrWhiteSpace(request.SearchValue))
            {
                searchPredicate = searchPredicate.And(p => p.Privilege.Privilege_Name.Contains(request.SearchValue) || p.Privilege.Privilege_Desc.Contains(request.SearchValue));
            }

            if (!(string.IsNullOrEmpty(request.SortColumn) && string.IsNullOrEmpty(request.SortColumnDir)))
            {
                if (request.SortColumnDir == "asc")
                {
                    switch (request.SortColumn.ToLower())
                    {
                    case "privilevename":
                        qry = _unitOfWork.OrgPrivRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.Privilege.Privilege_Name));
                        break;

                    default:
                        qry = _unitOfWork.OrgPrivRepository.Get(searchPredicate, orderBy: q => q.OrderBy(x => x.ID));
                        break;
                    }
                }
                else
                {
                    switch (request.SortColumn.ToLower())
                    {
                    case "privilevename":
                        qry = _unitOfWork.OrgPrivRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.Privilege.Privilege_Name));
                        break;

                    default:
                        qry = _unitOfWork.OrgPrivRepository.Get(searchPredicate, orderBy: q => q.OrderByDescending(x => x.ID));
                        break;
                    }
                }
            }
            else
            {
                qry = _unitOfWork.OrgPrivRepository.Get(searchPredicate, null);
            }

            foreach (var item in qry)
            {
                var prData = Mapper.Map <OrganizationPrivilege, OrganizationPrivilegeModel>(item);

                lists.Add(prData);
            }

            int totalRequest = lists.Count();
            var data         = lists.Skip(request.Skip).Take(request.PageSize).ToList();

            var response = new OrganizationPrivilegeResponse
            {
                Draw            = request.Draw,
                RecordsFiltered = totalRequest,
                RecordsTotal    = totalRequest,
                Data            = data
            };

            return(response);
        }