Ejemplo n.º 1
0
        public async Task <IDataSourceResult <ActivityLog> > GetActivityLogsAsync(
            int skip,
            int take,
            string ipAddress = "",
            string message   = "",
            string userId    = null,
            ActivityTypeEnum?activityType = null,
            DateTime?startCreatedTime     = null,
            DateTime?endCreatedTime       = null)
        {
            BaseSpecification <ActivityLog> activityLogSpecification = new BaseSpecification <ActivityLog>(q =>
                                                                                                           (string.IsNullOrEmpty(message) || EF.Functions.Contains(q.Message, message)) &&
                                                                                                           (string.IsNullOrEmpty(userId) || q.UserId == userId) &&
                                                                                                           (string.IsNullOrEmpty(ipAddress) || q.IpAddress == ipAddress) &&
                                                                                                           (!startCreatedTime.HasValue || q.CreatedTime >= startCreatedTime) &&
                                                                                                           (!endCreatedTime.HasValue || q.CreatedTime <= endCreatedTime) &&
                                                                                                           (!activityType.HasValue || q.Type == activityType));

            activityLogSpecification.ApplyOrderByDescending(q => q.Id);
            activityLogSpecification.ApplySelector(q => new ActivityLog
            {
                Id          = q.Id,
                CreatedTime = q.CreatedTime,
                UserId      = q.UserId,
                Message     = q.Message,
                Type        = q.Type,
                ObjectType  = q.ObjectType,
                IpAddress   = q.IpAddress,
                Complete    = q.Complete
            });
            activityLogSpecification.ApplyPaging(skip, take);
            return(await ToDataSourceResultAsync(activityLogSpecification));
        }
Ejemplo n.º 2
0
        public virtual async Task <IDataSourceResult <MessageTemplate> > GetMessageTemplatesAsync(int skip, int take, string name = "", string title = "")
        {
            BaseSpecification <MessageTemplate> messageTemplateSpecification = new BaseSpecification <MessageTemplate>(q =>
                                                                                                                       (string.IsNullOrEmpty(name) || EF.Functions.Contains(q.Name, name)) &&
                                                                                                                       (string.IsNullOrEmpty(title) || EF.Functions.Contains(q.Title, title)));

            messageTemplateSpecification.ApplyOrderByDescending(q => q.Id);
            messageTemplateSpecification.ApplySelector(q => new MessageTemplate()
            {
                Id          = q.Id,
                Name        = q.Name,
                Title       = q.Title,
                UpdatedTime = q.UpdatedTime
            });
            messageTemplateSpecification.ApplyPaging(skip, take);
            return(await ToDataSourceResultAsync(messageTemplateSpecification));
        }
Ejemplo n.º 3
0
        public async Task <IEnumerable <TreeItem <CmsMenu> > > GetMenusAsync(string position = "", bool?active = null, string parentId = null, string excludeId = null)
        {
            BaseSpecification <CmsMenu> baseSpecification = new BaseSpecification <CmsMenu>(q =>
                                                                                            (string.IsNullOrEmpty(position) || q.Position == position) &&
                                                                                            (string.IsNullOrEmpty(position) || q.ParentId == parentId) &&
                                                                                            (string.IsNullOrEmpty(excludeId) || q.Id != excludeId) &&
                                                                                            (!active.HasValue || q.Active == active));

            baseSpecification.ApplyOrderByDescending(q => q.Id);
            baseSpecification.ApplySelector(q => new CmsMenu()
            {
                Id           = q.Id,
                Name         = q.Name,
                ParentId     = q.ParentId,
                DisplayOrder = q.DisplayOrder
            });
            var menus = await FindAllNoTrackingAsync(baseSpecification);

            return(menus.GenerateTree(q => q.Id, q => q.ParentId, q => q.DisplayOrder, string.Empty));
        }
Ejemplo n.º 4
0
        public async Task <IDataSourceResult <User> > GetUsersAsync(
            int skip,
            int take,
            string groupId             = null,
            string email               = null,
            string userName            = null,
            string displayName         = null,
            bool?active                = null,
            Gender?gender              = null,
            string languageCulture     = null,
            string currencyCulture     = null,
            DateTime?fromBirthDay      = null,
            DateTime?toBirthDay        = null,
            DateTime?fromLastLoginTime = null,
            DateTime?toLastLoginTime   = null,
            DateTime?fromCreatedTime   = null,
            DateTime?toCreatedTime     = null)
        {
            IQueryable <User> userQuery = DbContext.Set <User>().AsNoTracking();

            if (!string.IsNullOrEmpty(groupId))
            {
                IQueryable <UserGroupMapping> mappingQuery = DbContext.Set <UserGroupMapping>().Where(q => q.UserGroupId == groupId);
                userQuery = from user in userQuery
                            join mapping in mappingQuery on user.Id equals mapping.UserId
                            where mapping.UserGroupId == groupId
                            select user;
            }

            BaseSpecification <User> baseSpecification = new BaseSpecification <User>(q =>
                                                                                      !q.Deleted &&
                                                                                      (string.IsNullOrEmpty(userName) || q.UserName.Contains(userName)) &&
                                                                                      (string.IsNullOrEmpty(displayName) || q.DisplayName.Contains(displayName)) &&
                                                                                      (string.IsNullOrEmpty(email) || q.Email == email) &&
                                                                                      (string.IsNullOrEmpty(languageCulture) || q.LanguageCulture == languageCulture) &&
                                                                                      (string.IsNullOrEmpty(currencyCulture) || q.CurrencyCode == currencyCulture) &&
                                                                                      (!active.HasValue || q.Active == active) &&
                                                                                      (!gender.HasValue || q.Gender == gender) &&
                                                                                      (!fromBirthDay.HasValue || q.BirthDay >= fromBirthDay) &&
                                                                                      (!toBirthDay.HasValue || q.BirthDay <= toBirthDay) &&
                                                                                      (!fromLastLoginTime.HasValue || q.LastLoginTime >= fromLastLoginTime) &&
                                                                                      (!toLastLoginTime.HasValue || q.LastLoginTime <= toLastLoginTime) &&
                                                                                      (!fromCreatedTime.HasValue || q.CreatedTime >= fromCreatedTime) &&
                                                                                      (!toCreatedTime.HasValue || q.CreatedTime <= toCreatedTime));

            baseSpecification.ApplyOrderByDescending(q => q.CreatedTime);
            baseSpecification.ApplySelector(x => new User
            {
                Id            = x.Id,
                AvatarImage   = x.AvatarImage,
                Email         = x.Email,
                DisplayName   = x.DisplayName,
                Active        = x.Active,
                CreatedTime   = x.CreatedTime,
                UpdatedTime   = x.UpdatedTime,
                LastLoginTime = x.LastLoginTime
            });
            baseSpecification.ApplyPaging(skip, take);

            return(await userQuery.ToDataSourceResultAsync(baseSpecification));
        }