Example #1
0
        public IQueryable <AssignmentCategory> GetCategoriesOfOwnerIdQuery(OwnerLevel ownerLevel, string ownerId)
        {
            var query = _assignmentsDb.AssignmentCategories.AsNoTracking()
                        .Where(c => (c.OwnerLevel == ownerLevel) && (c.OwnerId == ownerId));

            return(query);
        }
        public async Task <ActionResult> Index(OwnerLevel ownerLevel, string ownerId)
        {
            ViewData["ownerLevel"] = ownerLevel;
            ViewData["ownerId"]    = ownerId;

            return(View("Index"));
        }
Example #3
0
 public IQueryable <Assignment> GetAssignmentsOfOwnerAndCategoryQuery(OwnerLevel ownerLevel, string ownerId, string categoryId)
 {
     return(_assignmentsDb.Assignments.AsNoTracking()
            .Where(x => (x.OwnerLevel == ownerLevel) && (x.OwnerId == ownerId))
            .Join(_assignmentsDb.AssignmentCategoryLinks.Where(l => l.CategoryId == categoryId),
                  a => a.Id,
                  l => l.AssignmentId,
                  (a, l) => a
                  ));
 }
Example #4
0
        public async Task <ICollection <AssignmentListItemViewModel> > GetCategoriesAndAssignmentsOfOwnerQueryAsync(OwnerLevel ownerLevel, string ownerId)
        {
            var categoryLinks = await _assignmentsDb.AssignmentCategories.AsNoTracking()
                                .Where(l => (l.OwnerLevel == ownerLevel) && (l.OwnerId == ownerId))
                                .Join(_assignmentsDb.AssignmentCategoryLinks,
                                      c => c.Id,
                                      l => l.CategoryId,
                                      (c, l) => new
            {
                l.AssignmentId,
                l.CategoryId,
                CategoryName = c.Title
            })
                                .ToListAsync();

            var assignments = await _assignmentsDb.Assignments.AsNoTracking()
                              .Where(x => (x.OwnerLevel == ownerLevel) && (x.OwnerId == ownerId))
                              .ToListAsync();

            var items = assignments
                        .Join(categoryLinks,
                              a => a.Id,
                              c => c.AssignmentId,
                              (a, c) => new
            {
                c.AssignmentId,
                a.CreatedUTC,
                a.DueUTC,
                a.TimeZoneId,
                a.Status,
                a.Title,
                c.CategoryId,
                c.CategoryName
            })
                        .ToList();

            var list = new List <AssignmentListItemViewModel>();

            foreach (var item in items)
            {
                list.Add(new UI.ViewModels.AssignmentListItemViewModel()
                {
                    Id           = item.AssignmentId,
                    TimeZoneId   = item.TimeZoneId,
                    CreatedDT    = TimeZoneHelper.ConvertFromUTC(item.CreatedUTC, item.TimeZoneId),
                    DueDT        = TimeZoneHelper.ConvertFromUTC(item.DueUTC, item.TimeZoneId),
                    Title        = item.Title,
                    Status       = item.Status,
                    CategoryId   = item.CategoryId,
                    CategoryName = item.CategoryName
                });
            }
            return(list);
        }
Example #5
0
 public IQueryable <Assignment> GetAssignmentsOfOwnerQuery(OwnerLevel ownerLevel, string ownerId)
 {
     return(_assignmentsDb.Assignments.Where(x => (x.OwnerLevel == ownerLevel) && (x.OwnerId == ownerId)));
 }
Example #6
0
        private IEnumerable <UserGroup> GetUserGroupsOfUserContributor(DataSourceRequest request, UserGroupType userGroupType, UserContext userContext, OwnerLevel viewLevel)
        {
            var siteContext  = _siteContextAccessor.GetContext();
            var accessLevels = new AccessLevel[] { AccessLevel.Contributor, AccessLevel.FullAccess };
            var list         = new List <UserGroup>();

            // Get the client and site groups that the user has a membership to.
            var userQuery   = _userGroupManager.GetUserGroupsAssignedToUserWithAccessLevelQuery(userContext.UserId, accessLevels, userGroupType);
            var userResults = userQuery.ToDataSourceResult(request);

            list.AddRange(userResults.Data.Cast <UserGroup>());

            // Get the groups that have been created by this user
            var ownerQuery   = _userGroupManager.GetUserGroupsOfOwnerAndTypeQuery(OwnerLevel.User, userContext.UserId, userGroupType);
            var ownerResults = ownerQuery.ToDataSourceResult(request);

            list.AddRange(ownerResults.Data.Cast <UserGroup>());

            var corpId = new CorpGlobalClaimValueResolver().Resolve();

            if (viewLevel.Equals(OwnerLevel.Client))
            {
                // Get the client groups if the user has that claim
                if (userContext.SecurityClaims.Find(ClientClaimTypes.AppNotificationsSend, siteContext.Client.Id) ||
                    userContext.SecurityClaims.Find(ClientClaimTypes.AppNotificationsSend, corpId) ||
                    userContext.SecurityClaims.Find(ClientClaimTypes.PrimaryAdmin, siteContext.Client.Id) ||
                    userContext.SecurityClaims.Find(ClientClaimTypes.PrimaryAdmin, corpId) ||
                    userContext.SecurityClaims.Find(CorpClaimTypes.CorpPrimaryAdmin, corpId))
                {
                    var clientQuery   = _userGroupManager.GetUserGroupsOfOwnerAndTypeQuery(OwnerLevel.Client, siteContext.Client.Id, userGroupType);
                    var clientResults = clientQuery.ToDataSourceResult(request);
                    list.AddRange(clientResults.Data.Cast <UserGroup>());
                }
            }

            if (viewLevel.Equals(OwnerLevel.Site))
            {
                // Get the site groups if the user has that claim
                if (userContext.SecurityClaims.Find(SiteClaimTypes.SiteNotificationsSend, siteContext.Client.Id) ||
                    userContext.SecurityClaims.Find(SiteClaimTypes.SiteNotificationsSend, siteContext.SiteId) ||
                    userContext.SecurityClaims.Find(SiteClaimTypes.SiteNotificationsSend, corpId) ||
                    userContext.SecurityClaims.Find(SiteClaimTypes.SitePrimaryAdmin, siteContext.Client.Id) ||
                    userContext.SecurityClaims.Find(SiteClaimTypes.SitePrimaryAdmin, siteContext.SiteId) ||
                    userContext.SecurityClaims.Find(SiteClaimTypes.SitePrimaryAdmin, corpId) ||
                    userContext.SecurityClaims.Find(CorpClaimTypes.CorpPrimaryAdmin, corpId))
                {
                    var siteQuery   = _userGroupManager.GetUserGroupsOfOwnerAndTypeQuery(OwnerLevel.Site, siteContext.SiteId, userGroupType);
                    var siteResults = siteQuery.ToDataSourceResult(request);
                    list.AddRange(siteResults.Data.Cast <UserGroup>());
                }
            }

            var list2 = list.GroupBy(x => x.Id).Select(x => x.First());

            return(list2.OrderBy(x => x.Name).ToList());
        }
Example #7
0
        public JsonResult GetSendToNotificationGroups([DataSourceRequest] DataSourceRequest request, OwnerLevel ownerLevel)
        {
            var userContext = _userContextAccessor.GetContext();
            var groups      = GetUserGroupsOfUserContributor(request, UserGroupType.NotificationGroup, userContext, ownerLevel);
            var result      = groups.ToDataSourceResult(request);

            return(Json(result));
        }
Example #8
0
        public IQueryable <UserGroup> GetUserGroupsOfOwnerAndTypeQuery(OwnerLevel ownerLevel, string ownerId, UserGroupType userGroupType)
        {
            var query = _connectDb.UserGroups.Where(x => (x.OwnerLevel == ownerLevel) && (x.OwnerId == ownerId) && (x.UserGroupType == userGroupType));

            return(query);
        }
Example #9
0
        public IQueryable <Notification> GetNotificationsOfOwnerQuery(OwnerLevel ownerLevel, string ownerId)
        {
            var query = _connectDb.Notifications.Where(x => (x.OwnerLevel == ownerLevel) && (x.OwnerId == ownerId));

            return(query);
        }