/// <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()); } }