예제 #1
0
        public ActionResult List(DataTablesParam dataTableParam)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var extendedAttributes = _extendedAttributeService.GetAllExtendedAttributes(true);

            var total  = extendedAttributes.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = extendedAttributes.Select(x =>
                {
                    var caModel = x.ToModel();
                    caModel.AttributeControlTypeName = x.AttributeControlType.GetLocalizedEnum(_localizationService, _workContext);
                    return(caModel);
                }).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #2
0
        public ActionResult ValueList(int extendedAttributeId, DataTablesParam dataTableParam)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var values = _extendedAttributeService.GetExtendedAttributeValues(extendedAttributeId);

            var total  = values.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = values.Select(x =>
                {
                    var model = x.ToModel();
                    //locales
                    //AddLocales(_languageService, model.Locales, (locale, languageId) =>
                    //{
                    //    locale.Name = x.GetLocalized(y => y.Name, languageId, false, false);
                    //});
                    return(model);
                }).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #3
0
        public ActionResult List(DataTablesParam dataTableParam, CategoryListModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var categories       = _categoryService.GetAllCategories(model.SearchCategoryName, 0, int.MaxValue, true, model.SearchAlias, model.SearchChannelId, true, false);
            var mappedCategories = categories.ToDictionary(x => x.Id);
            Dictionary <int, string> breadCrumbDir = new Dictionary <int, string>();

            var total  = categories.TotalCount;
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = categories.Select(x =>
                {
                    var categoryModel         = x.ToModel();
                    categoryModel.Breadcrumb  = x.GetCategoryBreadCrumb(_categoryService, mappedCategories);
                    categoryModel.ChannelName = x.Channel.Title;
                    return(categoryModel);
                }).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #4
0
        public ActionResult List(DataTablesParam dataTableParam)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageEmailAccounts))
            {
                return(AccessDeniedView());
            }

            var emailAccountModels = _emailAccountService.GetAllEmailAccounts()
                                     .Select(x => x.ToModel())
                                     .ToList();

            foreach (var eam in emailAccountModels)
            {
                eam.IsDefaultEmailAccount = eam.Id == _emailAccountSettings.DefaultEmailAccountId;
            }

            var total  = emailAccountModels.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = emailAccountModels.Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #5
0
        public JsonResult ListLogs(DataTablesParam dataTableParam, ActivityLogSearchModel model)
        {
            DateTime?startDateValue = (model.CreatedOnFrom == null) ? null
                : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnFrom.Value, _dateTimeHelper.CurrentTimeZone);

            DateTime?endDateValue = (model.CreatedOnTo == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnTo.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);

            var activityLog = _userActivityService.GetAllActivities(startDateValue, endDateValue, null, model.ActivityLogTypeId, dataTableParam.iDisplayStart / dataTableParam.iDisplayLength, dataTableParam.iDisplayLength);
            var result      = new DataTablesData
            {
                iTotalRecords        = activityLog.TotalCount,
                sEcho                = dataTableParam.sEcho,
                iTotalDisplayRecords = activityLog.TotalCount,
                aaData               = activityLog.Select(x =>
                {
                    var m       = x.ToModel();
                    m.UserEmail = (x.User != null) ? x.User.UserName : "";
                    m.CreatedOn = _dateTimeHelper.ConvertToUserTime(x.CreatedOnUtc, DateTimeKind.Utc);
                    return(m);
                }).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #6
0
        public ActionResult List(DataTablesParam dataTableParam)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageUsers))
            {
                return(AccessDeniedView());
            }

            var users = _userService.GetOnlineUsers(DateTime.UtcNow.AddMinutes(-_userSettings.OnlineUserMinutes),
                                                    null, dataTableParam.PageIndex, dataTableParam.PageSize);

            var total  = users.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = users.Select(x =>
                {
                    return(new OnlineUserModel()
                    {
                        Id = x.Id,
                        UserInfo = x.IsRegistered() ? x.Email : _localizationService.GetResource("Admin.Users.Guest"),
                        LastIpAddress = x.LastIpAddress,
                        Location = _geoCountryLookup.LookupCountryName(x.LastIpAddress),
                        LastActivityDate = _dateTimeHelper.ConvertToUserTime(x.LastActivityDateUtc, DateTimeKind.Utc),
                        LastVisitedPage = x.GetAttribute <string>(SystemUserAttributeNames.LastVisitedPage)
                    });
                }).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #7
0
        public ActionResult LogList(DataTablesParam dataTableParam, LogListModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageSystemLog))
            {
                return(AccessDeniedView());
            }

            DateTime?createdOnFromValue = (model.CreatedOnFrom == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnFrom.Value, _dateTimeHelper.CurrentTimeZone);

            DateTime?createdToFromValue = (model.CreatedOnTo == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnTo.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);

            LogLevel?logLevel = model.LogLevelId > 0 ? (LogLevel?)(model.LogLevelId) : null;


            var logItems = Logger.GetAllLogs(createdOnFromValue, createdToFromValue, model.Message,
                                             logLevel, dataTableParam.iDisplayStart / dataTableParam.iDisplayLength, dataTableParam.iDisplayLength, model.MinFrequency);

            var result = new DataTablesData
            {
                iTotalRecords        = logItems.TotalCount,
                iTotalDisplayRecords = logItems.TotalCount,
                sEcho  = dataTableParam.sEcho,
                aaData = logItems.Select(x =>
                {
                    var logModel = new LogModel()
                    {
                        Id           = x.Id,
                        LogLevelHint = s_logLevelHintMap[x.LogLevel],
                        LogLevel     = x.LogLevel.GetLocalizedEnum(_localizationService, _workContext),
                        ShortMessage = x.ShortMessage,
                        FullMessage  = x.FullMessage,
                        IpAddress    = x.IpAddress,
                        UserId       = x.UserId,
                        UserEmail    = x.User != null ? x.User.Email : null,
                        PageUrl      = x.PageUrl,
                        ReferrerUrl  = x.ReferrerUrl,
                        CreatedOn    = _dateTimeHelper.ConvertToUserTime(x.CreatedOnUtc, DateTimeKind.Utc),
                        Frequency    = x.Frequency,
                        ContentHash  = x.ContentHash
                    };

                    if (x.UpdatedOnUtc.HasValue)
                    {
                        logModel.UpdatedOn = _dateTimeHelper.ConvertToUserTime(x.UpdatedOnUtc.Value, DateTimeKind.Utc);
                    }

                    return(logModel);
                }).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #8
0
        public ActionResult QueuedEmailList(DataTablesParam dataTableParam, QueuedEmailListModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageMessageQueue))
            {
                return(AccessDeniedView());
            }

            DateTime?startDateValue = (model.SearchStartDate == null) ? null
                            : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.SearchStartDate.Value, _dateTimeHelper.CurrentTimeZone);

            DateTime?endDateValue = (model.SearchEndDate == null) ? null
                            :(DateTime?)_dateTimeHelper.ConvertToUtcTime(model.SearchEndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1);

            //var queuedEmails = _queuedEmailService.SearchEmails(model.SearchFromEmail, model.SearchToEmail,
            //    startDateValue, endDateValue,
            //    model.SearchLoadNotSent, model.SearchMaxSentTries, true,
            //    dataTableParam.PageIndex, dataTableParam.PageSize);

            var q = new SearchEmailsQuery
            {
                EndTime       = endDateValue,
                From          = model.SearchFromEmail,
                MaxSendTries  = model.SearchMaxSentTries,
                OrderByLatest = true,
                PageIndex     = dataTableParam.PageIndex,
                PageSize      = dataTableParam.PageSize,
                SendManually  = model.SearchSendManually,
                StartTime     = startDateValue,
                To            = model.SearchToEmail,
                UnsentOnly    = model.SearchLoadNotSent
            };
            var queuedEmails = _queuedEmailService.SearchEmails(q);
            var total        = queuedEmails.Count();
            var result       = new DataTablesData
            {
                iTotalRecords        = total,
                sEcho                = dataTableParam.sEcho,
                iTotalDisplayRecords = total,
                aaData               = queuedEmails.Select(x =>
                {
                    var m       = x.ToModel();
                    m.CreatedOn = _dateTimeHelper.ConvertToUserTime(x.CreatedOnUtc, DateTimeKind.Utc);
                    if (x.SentOnUtc.HasValue)
                    {
                        m.SentOn = _dateTimeHelper.ConvertToUserTime(x.SentOnUtc.Value, DateTimeKind.Utc);
                    }
                    return(m);
                }).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #9
0
        public JsonResult List(DataTablesParam dataTablesParam)
        {
            var response = new DataTablesData
            {
                aaData               = new object[0],
                sEcho                = dataTablesParam.Draw,
                iTotalRecords        = 0,
                iTotalDisplayRecords = 0
            };

            var pageSize = dataTablesParam.Length;

            if (pageSize <= 0)
            {
                pageSize = MyConfiguration.Default.PageSize;
            }

            var totalRow = 0;
            var items    = new List <Out_Syntax_GetListData_Result>();

            if (pageSize > 0)
            {
                var startIndex  = (dataTablesParam.Start < 0 ? 0 : dataTablesParam.Start);
                var orderColumn = 0;
                switch (dataTablesParam.OrderColumn)
                {
                case 1:
                    orderColumn = 0;
                    break;
                }
                var orderDirection = dataTablesParam.IsAscOrdering ? true : false;
                items =
                    _webBusiness.ListDataSyntax(startIndex, pageSize, orderColumn, orderDirection, out totalRow);
            }

            var list = items.Select(c => new
            {
                c.RowNumber,
                c.Name,
                c.ContentSyntax,
                c.KeyWord,
                c.Description,
            }).ToArray();

            response.sEcho                = dataTablesParam.Draw;
            response.aaData               = list.Cast <Object>().ToArray();
            response.iTotalRecords        = totalRow;
            response.iTotalDisplayRecords = totalRow;
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
예제 #10
0
        public ActionResult ListTypes(DataTablesParam dataTableParam)
        {
            var activityLogTypeModel = _userActivityService.GetAllActivityTypes().Select(x => x.ToModel());
            var total  = activityLogTypeModel.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = activityLogTypeModel.Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #11
0
        public ActionResult SlideList(DataTablesParam dataTableParam, ContentSliderSettingsModel model)
        {
            var viewModel = PrepareContentSliderSettingsModel(model);

            var contentSliderSettingsModels = viewModel.Slides.OrderBy(s => s.LanguageName).ThenBy(s => s.DisplayOrder);

            var total  = contentSliderSettingsModels.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = contentSliderSettingsModels.Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #12
0
        public ActionResult List(DataTablesParam dataTableParam)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageFeedbacks))
            {
                return(AccessDeniedView());
            }
            var feedbacks = _feedbackService.GetAllFeedbacks();
            var total     = feedbacks.Count;
            var result    = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = feedbacks.PagedForCommand(dataTableParam.PageIndex, dataTableParam.PageSize).Select(x => x.ToModel()).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #13
0
        public ActionResult CountryList(DataTablesParam dataTableParam)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCountries))
            {
                return(AccessDeniedView());
            }

            var countries = _countryService.GetAllCountries(true);
            var total     = countries.Count();
            var result    = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = countries.Select(x => x.ToModel()).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #14
0
        public ActionResult List(DataTablesParam dataTableParam, MessageTemplateListModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageMessageTemplates))
            {
                return(AccessDeniedView());
            }

            var messageTemplates = _messageTemplateService.GetAllMessageTemplates(model.SearchSiteId);
            var total            = messageTemplates.Count();
            var result           = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = messageTemplates.Select(x => x.ToModel()).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #15
0
        public ActionResult List(DataTablesParam dataTableParam, ClientListModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCatalog))
            {
                return(AccessDeniedView());
            }

            var clients = _clientService.GetAllClients(model.SearchClientName,
                                                       dataTableParam.PageIndex, dataTableParam.PageSize, true);

            var total  = clients.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = clients.Select(x => x.ToModel()).Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });;
        }
예제 #16
0
        public DataTablesData Process()
        {
            var model = new DataTablesData();

            model.sColumns      = requestModel.sColumns;
            model.sEcho         = requestModel.sEcho;
            model.iTotalRecords = data.Count();

            var records = Filter(data, requestModel);

            records = ApplySort(records);

            model.iTotalDisplayRecords = (records.FirstOrDefault() == null) ? 0 : records.Count();

            // if paging is disabled, iDisplayLength is always -1, so we check for that and take all records in that case.
            var takeRecords  = (requestModel.iDisplayLength == -1) ? model.iTotalDisplayRecords : requestModel.iDisplayLength;
            var pagedRecords = records.Skip(requestModel.iDisplayStart)
                               .Take(takeRecords);

            var aaData = new List <List <string> >();

            if (requestModel.iColumns == 0)
            {
                pagedRecords.ToList()
                .ForEach(rec => aaData.Add(rec.PropertiesToList()));
                model.aaData = aaData;
            }
            else
            {
                pagedRecords.ToList()
                .ForEach(rec => aaData.Add(rec.PropertiesToList(requestModel.sColumns)));
                model.aaData = aaData;
            }

            return(model);
        }
예제 #17
0
        public ActionResult States(int countryId, DataTablesParam dataTableParam)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCountries))
            {
                return(AccessDeniedView());
            }

            var states = _stateProvinceService.GetStateProvincesByCountryId(countryId, true)
                         .Select(x => x.ToModel());

            var total  = states.Count();
            var result = new DataTablesData
            {
                iTotalRecords        = total,
                iTotalDisplayRecords = total,
                sEcho  = dataTableParam.sEcho,
                aaData = states.Cast <object>().ToArray(),
            };

            return(new JsonResult
            {
                Data = result
            });
        }
예제 #18
0
        public JsonResult List(DataTablesParam dataTablesParam, string keyWord)
        {
            var response = new DataTablesData
            {
                aaData               = new object[0],
                sEcho                = dataTablesParam.Draw,
                iTotalRecords        = 0,
                iTotalDisplayRecords = 0
            };

            var pageSize = dataTablesParam.Length;

            if (pageSize <= 0)
            {
                pageSize = MyConfiguration.Default.PageSize;
            }

            var totalRow = 0;
            var items    = new List <Out_RegisterCompany_GetListData_Result>();

            if (pageSize > 0)
            {
                var startIndex  = (dataTablesParam.Start < 0 ? 0 : dataTablesParam.Start);
                var orderColumn = 0;
                switch (dataTablesParam.OrderColumn)
                {
                case 1:
                    orderColumn = 0;
                    break;
                }
                var orderDirection = dataTablesParam.IsAscOrdering ? true : false;
                items =
                    _webBusiness.ListDataRegisterCompany(keyWord ?? string.Empty, startIndex, pageSize, orderColumn, orderDirection, out totalRow);
            }

            var list = items.Select(c => new
            {
                c.id
                ,
                c.MST
                ,
                c.CompanyName
                ,
                c.Address
                ,
                c.CEO
                ,
                c.PackedRegister
                ,
                c.TypeRegister
                ,
                c.Email
                ,
                c.ContactPreson
                ,
                c.ReceiveAddress
                ,
                Action = c.id
            }).ToArray();

            response.sEcho                = dataTablesParam.Draw;
            response.aaData               = list.Cast <Object>().ToArray();
            response.iTotalRecords        = totalRow;
            response.iTotalDisplayRecords = totalRow;
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
예제 #19
0
 public static int[] RecordIds(this DataTablesData data)
 {
     return(Array.ConvertAll <object, int>(data.aaData, d => int.Parse((string)((IEnumerable <object>)d).First())));
 }