Пример #1
0
 /// <summary>
 /// Finds the entity by its prefix
 /// </summary>
 /// <typeparam name="T">The type of the entity</typeparam>
 /// <param name="baseFilterDto">The filtering DTO to make the where part</param>
 /// <param name="selector">The selector for select the attributes</param>
 /// <returns>The list of the referencedDto for the appropriate search DTO</returns>
 internal List <ReferenceDto> FindByPrefix <T>(BaseFilterDto baseFilterDto, Expression <Func <T, ReferenceDto> > selector) where T : BaseEntity
 {
     return(_modelContext.Set <T>()
            .Where(ExpressionBuilder.BuildWhere <T>(baseFilterDto))
            .Select(selector)
            .ToList());
 }
Пример #2
0
 /// <summary>
 /// Finds paged users.
 /// </summary>
 /// <param name="userFilterDto">The filtering DTO</param>
 /// <returns>The User DTO page</returns>
 internal IPagedList <RoleDto> FindPaged(BaseFilterDto baseFilterDto)
 {
     return(_modelContext.Set <Role>()
            .OrderBy(x => x.Name)
            .Select(x => new RoleDto()
     {
         Id = x.Id, Name = x.Name, CreateUpdateDeleteAll = x.CreateUpdateDeleteAll, DojoCreation = x.DojoCreation, MenuCreation = x.MenuCreation, RoleCreation = x.RoleCreation, UserCreation = x.UserCreation
     })
            .ToPagedList(baseFilterDto.Page, baseFilterDto.PageSize));
 }
Пример #3
0
        protected BaseListOrder(IQueryable <TEntity> query, BaseFilterDto dto,
                                string defaultSortColumn = "CreatedAt", SortType defaultSortType = SortType.Desc)
        {
            Query = query;
            _defaultSortColumn = defaultSortColumn;
            _defaultSortType   = defaultSortType;

            SortColumn = SetSortColumn(dto?.SortColumn ?? _defaultSortColumn);
            SortType   = SetSortType(dto?.SortType ?? _defaultSortType.ToString());
        }
Пример #4
0
        public Result ExecuteAction(BaseFilterDto dto)
        {
            var result = new Result().SetSuccess();

            switch (dto.Action.NullSafeToLower())
            {
            case "delete": return(new AdminRoleDeleteAction(_adminRoleRepository, _unitOfWork).ExecuteAction(dto.Ids));
            }

            return(result);
        }
Пример #5
0
 public IPagedList <CollectionDto> FindPaged(BaseFilterDto baseFilterDto)
 {
     return(_modelContext.Set <Collection>()
            .Where(ExpressionBuilder.BuildWhere <Collection>(baseFilterDto))
            .OrderBy(x => x.Name)
            .Select(x => new CollectionDto()
     {
         Id = x.Id,
         Name = x.Name
     })
            .ToPagedList(baseFilterDto.Page, baseFilterDto.PageSize));
 }
Пример #6
0
        /// <summary>
        /// Builds the where statement.
        /// </summary>
        /// <typeparam name="T">The Entity type</typeparam>
        /// <param name="baseFilterDto">The filtering DTO</param>
        /// <returns>The where statement</returns>
        public static Expression <Func <T, bool> > BuildWhere <T>(BaseFilterDto baseFilterDto) where T : IBaseEntity
        {
            ParameterExpression parameterExpression = Expression.Parameter(typeof(T), EXPRESSION_PARAMETER);
            List <Expression>   whereParts          = new List <Expression>();

            foreach (IGrouping <string, PropertyInfo> searchPropertyGroup in GetGroupedSearchedPropertiesInfo(baseFilterDto))
            {
                List <Expression> expressionGroupedOrWhereParts  = new List <Expression>();
                List <Expression> expressionGroupedAndWhereParts = new List <Expression>();
                foreach (PropertyInfo searchPropertyInfo in searchPropertyGroup)
                {
                    FilterAttribute searchAttribute     = (FilterAttribute)searchPropertyInfo.GetCustomAttribute(typeof(FilterAttribute));
                    object          value               = searchPropertyInfo.GetValue(baseFilterDto);
                    Expression      expressionWherePart = null;
                    //if (value is bool && searchAttribute.EnumAttribute != null)
                    //{
                    //    if ((bool)value == true)
                    //    {
                    //        expressionWherePart = BuildWherePart<T>(parameterExpression, searchAttribute, searchAttribute.EnumAttribute);
                    //        if (expressionWherePart != null)
                    //        {
                    //            expressionGroupedOrWhereParts.Add(expressionWherePart);
                    //        }
                    //    }
                    //}
                    //else
                    {
                        expressionWherePart = BuildWherePart <T>(parameterExpression, searchAttribute, value);
                        if (expressionWherePart != null)
                        {
                            expressionGroupedAndWhereParts.Add(expressionWherePart);
                        }
                    }
                }
                Expression finalGroupedOrWhereParts  = JoinOrWhereParts(expressionGroupedOrWhereParts);
                Expression finalGroupedAndWhereParts = JoinAndWhereParts(expressionGroupedAndWhereParts);
                if (finalGroupedOrWhereParts != null)
                {
                    whereParts.Add(finalGroupedOrWhereParts);
                }
                if (finalGroupedAndWhereParts != null)
                {
                    whereParts.Add(finalGroupedAndWhereParts);
                }
            }

            if (whereParts.Count == 0)
            {
                return(x => true);
            }

            return(Expression.Lambda <Func <T, bool> >(JoinAndWhereParts(whereParts), parameterExpression));
        }
Пример #7
0
        internal ListReferenceDto FindAllReferences(BaseFilterDto baseFilterDto)
        {
            Dictionary <Guid, string> references = _modelContext.Set <Role>()
                                                   .Where(ExpressionQueryBuilder.BuildWhere <Role>(baseFilterDto))
                                                   .OrderBy(x => x.Name)
                                                   .Select(x => new { Id = x.Id, Name = x.Name })
                                                   .ToDictionary(x => x.Id, x => x.Name);

            return(new ListReferenceDto()
            {
                References = references
            });
        }
        /// <summary>
        /// Get filtered entities
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public virtual async Task <IEnumerable <TModel> > GetFiltered(BaseFilterDto filter)
        {
            var result = new SqlQueryAndBinds()
            {
                SqlQuery = GetBaseSelectQuery(),
                Binds    = new ExpandoObject()
            };

            result = ApplyFilter(result, filter);

            result = ApplySort(result, filter.Sort);
            result = ApplyPaging(result, filter.Paging);

            using IDbConnection db = new NpgsqlConnection(ConnectionString);
            return(await db.QueryAsync <TModel>(result.SqlQuery, (object)result.Binds));
        }
        public Result ExecuteAction(BaseFilterDto dto, int loggedInUserId)
        {
            var result = new Result().SetSuccess();

            if (string.IsNullOrEmpty(dto?.Action))
            {
                return(new Result());
            }

            switch (dto.Action.NullSafeToLower())
            {
            case "active": return(new AdminUserActiveAction(_adminUserRepository, _unitOfWork).ExecuteAction(dto.Ids));

            case "inactive": return(new AdminUserInactiveAction(_adminUserRepository, _unitOfWork).ExecuteAction(dto.Ids, loggedInUserId));

            case "delete": return(new AdminUserDeleteAction(_adminUserRepository, _unitOfWork).ExecuteAction(dto.Ids, loggedInUserId));
            }

            return(result);
        }
Пример #10
0
        public static async Task <T> ApiCall <T>(string uri, BaseFilterDto filter = null)
        {
            var uriBuilder = new UriBuilder(uri);

            if (filter != null)
            {
                uriBuilder.Query = filter.ParseQuery();
            }
            try
            {
                T result;

                HttpResponseMessage httpResponse = await client.GetAsync(uriBuilder.Uri);

                httpResponse.EnsureSuccessStatusCode();
                result = JsonConvert.DeserializeObject <T>(httpResponse.Content.ToString());
                return(result);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #11
0
        public static Expression <Func <T, bool> > BuildWhere <T>(BaseFilterDto baseFilterDto) where T : IBaseEntity
        {
            Parameter         parameter  = new Parameter(typeof(T));
            List <Expression> whereParts = new List <Expression>();

            foreach (IGrouping <string, PropertyInfo> groupedfilterProperties in GetFilterProperties(baseFilterDto))
            {
                List <Expression> expressionGroupedAndWhereParts = new List <Expression>();
                List <Expression> expressionGroupedOrWhereParts  = new List <Expression>();
                foreach (PropertyInfo propertyInfo in groupedfilterProperties)
                {
                    FilterAttribute filterAttribute     = propertyInfo.GetCustomAttribute <FilterAttribute>();
                    object          value               = propertyInfo.GetValue(baseFilterDto);
                    Expression      wherePartExpression = BuildWherePart <T>(parameter, filterAttribute, value);
                    if (wherePartExpression != null)
                    {
                        expressionGroupedAndWhereParts.Add(wherePartExpression);
                    }
                }
                Expression finalGroupedOrWhereParts  = JoinOrWhereParts(expressionGroupedOrWhereParts);
                Expression finalGroupedAndWhereParts = JoinAndWhereParts(expressionGroupedAndWhereParts);
                if (finalGroupedOrWhereParts != null)
                {
                    whereParts.Add(finalGroupedOrWhereParts);
                }
                if (finalGroupedAndWhereParts != null)
                {
                    whereParts.Add(finalGroupedAndWhereParts);
                }
            }
            if (whereParts.Count == 0)
            {
                return(x => true);
            }
            return(Expression.Lambda <Func <T, bool> >(JoinAndWhereParts(whereParts), parameter.GetExpression()));
        }
 public ContactUsInquiryAdminListOrder(IQueryable <ContactUsInquiry> query, BaseFilterDto dto) : base(query, dto)
 {
 }
Пример #13
0
 /// <summary>
 /// Gets the grouped searched properties by target property.
 /// </summary>
 /// <param name="baseFilterDto">The base filtering DTO</param>
 /// <returns>The grouped searched properties</returns>
 private static IEnumerable <IGrouping <string, PropertyInfo> > GetGroupedSearchedPropertiesInfo(BaseFilterDto baseFilterDto)
 {
     return(baseFilterDto.GetType().GetProperties()
            .Where(x => x.GetCustomAttributes(typeof(FilterAttribute), true).Length > 0)
            .GroupBy(x => ((FilterAttribute)x.GetCustomAttribute(typeof(FilterAttribute))).TargetProperty));
 }
Пример #14
0
 public AdminRoleListOrder(IQueryable <AdminRole> query, BaseFilterDto dto) : base(query, dto)
 {
 }
Пример #15
0
 public ActionResult List(BaseFilterDto baseFilterDto)
 {
     return(PartialView(GetService().GetMenuItems(null)));
 }
Пример #16
0
 public AdminUserListOrder(IQueryable <AdminUser> query, BaseFilterDto dto) : base(query, dto)
 {
 }
Пример #17
0
 public IPagedList <CollectionDto> ReadAdministrationPaged(BaseFilterDto baseFilterDto)
 {
     return(_collectionDao.FindPaged(baseFilterDto));
 }
Пример #18
0
 public QuizCategoryAdminListOrder(IQueryable <QuizCategory> query, BaseFilterDto dto) : base(query, dto)
 {
 }
Пример #19
0
        public async Task <List <int> > GetBranchesForFilter(UserBranchesDto userBranchesDto, BaseFilterDto baseFilterDto = null)
        {
            var        userBranches = _mapper.Map <UserBranches>(userBranchesDto);
            BaseFilter baseFilter   = new BaseFilter();

            if (baseFilterDto != null)
            {
                baseFilter = _mapper.Map <BaseFilter>(baseFilterDto);
            }

            return(await _branchService.GetBranchesForFiltersAsync(userBranches, baseFilter));
        }
Пример #20
0
        // private readonly IPaymentTransactionRepository _paymentTransactionRepository;

        public MemberDetailListOrder(IQueryable <Member> query, BaseFilterDto dto) : base(query, dto)
        {
        }
Пример #21
0
 public MemberResultListOrder(IQueryable <MemberResult> query, BaseFilterDto dto) : base(query, dto)
 {
 }
Пример #22
0
 public ActionResult PagedList(BaseFilterDto baseFilterDto)
 {
     ViewBag.FilterDto = baseFilterDto;
     return(PartialView(WebConstants.VIEW_PAGED_LIST, GetService().ReadAdministrationPaged(baseFilterDto)));
 }
Пример #23
0
 public ActionResult GetAllRoleReferences(BaseFilterDto baseFilterDto)
 {
     return(Json(GetService().GetAllReferences(baseFilterDto).References.ToList()));
 }
Пример #24
0
 public ListReferenceDto GetAllReferences(BaseFilterDto baseFilterDto)
 {
     return(_roleDao.FindAllReferences(baseFilterDto));
 }
Пример #25
0
 public IPagedList <RoleDto> ReadAdministrationPaged(BaseFilterDto baseFilterDto)
 {
     return(_roleDao.FindPaged(baseFilterDto));
 }
Пример #26
0
 private static IEnumerable <IGrouping <string, PropertyInfo> > GetFilterProperties(BaseFilterDto baseFilterDto)
 {
     return(baseFilterDto.GetType().GetProperties()
            .Where(x => Attribute.IsDefined(x, typeof(FilterAttribute)))
            .GroupBy(x => x.GetCustomAttribute <FilterAttribute>().TargetProperty));
 }
Пример #27
0
 public QuizAnswerAdminListOrder(IQueryable <QuizAnswer> query, BaseFilterDto dto) : base(query, dto)
 {
 }
Пример #28
0
 public ListReferenceDto GetAllReferences(BaseFilterDto baseFilterDto)
 {
     return(_collectionDao.FindAllReferences(baseFilterDto));
 }
Пример #29
0
 public QuizQuestionAdminListOrder(IQueryable <QuizQuestion> query, BaseFilterDto dto) : base(query, dto)
 {
 }
Пример #30
0
 public SeoPageAdminListOrder(IQueryable <SeoPage> query, BaseFilterDto dto) : base(query, dto)
 {
 }