예제 #1
0
        public DttResponseForm <TForm> ProcessDatatableResult <TForm, TModel>(IQueryable <TModel> query, DttRequestForm form)
            where TForm : FormModelBase, new()
            where TModel : ModelBase
        {
            var result = new DttResponseForm <TForm>();

            var user = GetCurrentUser();

            if (user != null)
            {
                try {
                    var roles = HttpContext.Current.Cache["roles"] as IEnumerable <ApplicationRole>;

                    if (roles == null)
                    {
                        roles = context.Roles.Include("Actions").Where(t => t.IsActive == true && t.IsDeleted != true && t.IsDraft == false).ToList();
                        HttpContext.Current.Cache["roles"] = roles;
                    }

                    var actions = roles.Where(t => user.Roles.Any(r => r.RoleId == t.Id)).ToList().SelectMany(t => t.Actions).ToList();

                    if (!actions.Any(t => t.ActionName == AppActions.Restore_Delete))
                    {
                        query = query.Where(t => t.IsDeleted != true);
                    }
                } catch (Exception exc) {
                    ErrorLog(exc);
                    query = query.Where(t => t.IsDeleted != true);
                }
            }
            else
            {
                query = query.Where(t => t.IsDeleted != true);
            }

            result.recordsTotal = query.Count();

            query = GetDynamicFilteredData(query, form);

            result.recordsFiltered = query.Count();

            result.data = Mapper.Map <List <TModel>, List <TForm> >(GetPaging(query, form).ToList());
            result.draw = form.draw;

            return(result);
        }
예제 #2
0
        public DttResponseForm <TForm> UseExecutedList <T>(T form) where T : DttRequestWithDate
        {
            var result = new DttResponseForm <TForm>();

            result.draw = form.draw;

            var data = ExecuteList <T>(form);

            result.recordsTotal = data.Count();
            data = FilterExecutedList <T>(data, form);

            data = GetPaging <TModel>(data, form).ToList();

            result.data = Mapper.Map <List <TModel>, List <TForm> >(data);

            result.recordsFiltered = result.recordsTotal;

            return(result);
        }
예제 #3
0
        public DttResponseForm <ApplicationUser> GetList(DttRequestWithDate form)
        {
            var query = _userManager.Users;

            var result = new DttResponseForm <ApplicationUser>();

            var user = GetCurrentUser();

            if (user != null)
            {
                var isAdmin = user.Roles.FirstOrDefault(t => ROLEADMINIDS.Contains(t.RoleId));
                if (isAdmin == null)
                {
                    query = query.Where(t => t.IsDeleted != true);
                }
            }
            else
            {
                query = query.Where(t => t.IsDeleted != true);
            }

            result.recordsTotal = query.Count();

            query = GetUserDynamicFilteredData(query, form);

            result.recordsFiltered = query.Count();

            result.data = GetUserPaging(query, form).ToList();
            result.draw = form.draw;

            return(result);

            //var result = new DttResponseForm<ApplicationUser>();
            //result.draw = form.draw;
            //form.search.value = (form.search.value ?? "").ToLower();
            ////form.length = int.MaxValue;

            //var query = _userManager.Users;


            //if (form.order?.Count > 0) {

            //    foreach (var item in form.order) {


            //        item.colname = form.columns[item.column].data;

            //        if (item.colname == "Log") {
            //            query = query
            //                .OrderBy("CreatedDate " + item.dir);
            //            if (item.dir == "asc")
            //                query = query.OrderBy(t => t.UpdatedDate ?? t.CreatedDate);
            //            else
            //                query = query.OrderByDescending(t => t.UpdatedDate ?? t.CreatedDate);
            //        } else {

            //            query = query.OrderBy(item.colname + " " + item.dir);
            //        }
            //    }

            //} else {

            //    query = query.OrderByDescending(t => t.CreatedDate).OrderByDescending(t => t.UpdatedDate ?? t.CreatedDate);
            //}

            //result.data = form.length.HasValue ? query.Skip(form.start * form.length.Value).Take(form.length.Value).ToList() : query.ToList();

            //result.recordsTotal = query.Count();
            //result.recordsFiltered = result.recordsTotal;

            //return result;
        }