Beispiel #1
0
//        private string ApplySpecificDetailClauses(string entity, string baseWhereClause) {
//            var user = SecurityFacade.CurrentUser();
//            if (user.IsInRole("tom") || user.IsInRole("itom") && entity.EqualsAny("servicerequest", "asset", "incident")) {
//                return Default;
//            }
//            if (IsWWUser(user)) {
//                return Default;
//            }
//
//            return baseWhereClause;
//        }



        private string DoBuildBaseWhereClause(string entityName, SearchRequestDto searchDto)
        {
            if (searchDto != null && searchDto.IgnoreWhereClause)
            {
                return(Default);
            }
            var nameToLookup = GetNameToLookup(entityName);

            if (nameToLookup == null)
            {
                return(Default);
            }
            var context = searchDto == null ? null : searchDto.Context;


            var whereClauseResult = _whereClauseFacade.Lookup(nameToLookup, context);


            if (whereClauseResult == null || whereClauseResult.IsEmpty())
            {
                return(Default);
            }
            var user = SecurityFacade.CurrentUser();

            if (!String.IsNullOrEmpty(whereClauseResult.Query))
            {
                return(DefaultValuesBuilder.ConvertAllValues(whereClauseResult.Query, user));
            }
            if (!String.IsNullOrEmpty(whereClauseResult.ServiceName))
            {
                var ob = SimpleInjectorGenericFactory.Instance.GetObject <object>(whereClauseResult.ServiceName);
                if (ob != null)
                {
                    var result = ReflectionUtil.Invoke(ob, whereClauseResult.MethodName, new object[] { });
                    if (!(result is String))
                    {
                        return(Default);
                    }
                    return(DefaultValuesBuilder.ConvertAllValues((string)result, user));
                }
            }

            return(Default);
        }