public IHttpActionResult GetByFilter(FilterMarketing filter)
        {
            var repository = new RepositoryMarketing();
            var response   = repository.GetAllList(filter, CurrentUser.BusinessId);

            return(Ok <DataResponse <EntityList <EntityMarketing> > >(response));
        }
        public DataResponse <EntityList <EntityMarketing> > GetAllList(FilterMarketing filter, int?businessId, int take = 10, int skip = 0)
        {
            var response = new DataResponse <EntityList <EntityMarketing> >();

            try
            {
                base.DBInit();
                var query = DBEntity.MarketingDocuments.Where(a => a.BusinessId == businessId);
                if (filter != null)
                {
                    take = filter.Take;
                    skip = filter.Skip;
                    if (!string.IsNullOrEmpty(filter.Keyword))
                    {
                        query = query.Where(a => a.Name.ToLower().Contains(filter.Keyword.ToLower()) ||
                                            a.Description.ToLower().Contains(filter.Keyword.ToLower()));
                    }
                    if (filter.CategoryId != null)
                    {
                        query = query.Where(a => a.CategoryId == filter.CategoryId);
                    }
                    if (filter.DocumentTypeId != null)
                    {
                        query = query.Where(a => a.DocumentTypeId == filter.DocumentTypeId);
                    }
                    if (filter.UserId != null)
                    {
                        query = query.Where(a => a.CreatedBy == filter.UserId);
                    }
                }

                var selectQuery = query.Select(a => new EntityMarketing
                {
                    Id             = a.Id,
                    Name           = a.Name,
                    Description    = a.Description,
                    DocumentTypeId = a.DocumentTypeId,
                    CategoryId     = a.CategoryId,
                    CreatedOn      = a.CreatedOn,
                }).OrderByDescending(o => o.CreatedOn);

                response = GetList <EntityMarketing>(selectQuery, skip, take);
            }
            catch (Exception ex)
            {
                ex.Log();
            }
            finally
            {
                base.DBClose();
            }
            return(response);
        }