Exemplo n.º 1
0
        /// <summary>
        /// GetUserTasks
        /// </summary>
        /// <returns></returns>
        public List <UserTask> GetUserTasks(ContextEnum contextId, string assignedTo, DateTime?fromDate, DateTime?toDate, bool activeTasks)
        {
            RepositoryQuery <UserTask> userTasks = eCollabroDbContext.Repository <UserTask>().Query().Include(inc => inc.UserMembership).Include(inc => inc.UserMembership1).Filter(qry => qry.SiteId.Equals(UserContextDetails.SiteId));

            if (contextId != 0)
            {
                userTasks = userTasks.Filter(qry => qry.ContextId.Equals((int)contextId));
            }
            if (!string.IsNullOrEmpty(assignedTo))
            {
                userTasks = userTasks.Filter(qry => qry.UserMembership.UserName.Equals(assignedTo));
            }
            if (fromDate.HasValue)
            {
                DateTime dtFrom = fromDate.Value.ToUniversalTime();
                userTasks.Filter(qry => qry.CreatedOn >= dtFrom);
            }
            if (toDate.HasValue)
            {
                DateTime dtTo = toDate.Value.ToUniversalTime();
                userTasks.Filter(qry => qry.CreatedOn <= dtTo);
            }
            if (activeTasks)
            {
                userTasks.Filter(qry => qry.IsActive);
            }
            SecurityManager securityManager = new SecurityManager();

            if ((securityManager.CheckSiteCollectionAdmin(UserContextDetails.UserId) || securityManager.CheckSiteAdmin(UserContextDetails.UserId, UserContextDetails.SiteId)))
            {
                return(userTasks.Get().ToList());
            }
            else
            {
                List <FeaturePermissionResult> userFeaturePermissionResults = eCollabroDbContext.ExtendedRepository().SecurityRepository.GetUserPermissions(UserContextDetails.SiteId, UserContextDetails.UserId).Where(qry => qry.ContentPermissionId.Equals((int)PermissionEnum.ApproveContent)).ToList();
                List <int> contentContexts = new List <int>();
                if (userFeaturePermissionResults.Count > 0)
                {
                    foreach (FeaturePermissionResult featurePermissionResult in userFeaturePermissionResults)
                    {
                        ContextEnum context = GetContextForFeature((FeatureEnum)featurePermissionResult.FeatureId);
                        if (context != ContextEnum.None)
                        {
                            contentContexts.Add((int)context);
                        }
                    }
                }
                if (contentContexts.Count > 0)
                {
                    userTasks = userTasks.Filter(qry => contentContexts.Contains(qry.ContextId) || (qry.AssignedUserId == UserContextDetails.UserId));
                }
                else
                {
                    userTasks = userTasks.Filter(qry => qry.AssignedUserId.HasValue && qry.AssignedUserId == UserContextDetails.UserId);
                }
                return(userTasks.Get().ToList());
            }
        }