public OrganizationDashboardViewModel Execute(OrganizationByAdministeringUserQueryParams queryParams)
        {
            var org = _context.Users
                              .Where(x => x.Id == queryParams.AdministeringUserId)
                              .Where(x => x.IsOrganizationAdmin)
                              .Select(x => x.Organization)
                              .FirstOrDefault();

            if (org == null)
                return null;

            return new OrganizationDashboardViewModel
            {
                Organization = org,
                NonMemberOfficialDocuments = _context.OfficialDocuments.Where(x => !x.MeantForMembers).ToList(),
                HiddenMemberDocuments = _context.OfficialDocuments.Where(x => x.MeantForMembers && !x.Organizations.Any(y =>y.Id == org.Id)).ToList(),
                NumMembers = org.Members.Count,
                NumCompanies = _context.Companies.Where(x => x.JobSearch.User.Organization.Id == org.Id).Count(),
                NumContacts = _context.Contacts.Where(x => x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumOpenPhoneTasks = _context.Tasks.Where(x => x.Category == MJLConstants.PhoneInterviewTaskCategory && x.CompletionDate == null
                                                            && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumClosedPhoneTasks = _context.Tasks.Where(x => x.Category == MJLConstants.PhoneInterviewTaskCategory && x.CompletionDate != null
                                                            && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumOpenInterviewTasks = _context.Tasks.Where(x => x.Category == MJLConstants.InPersonInterviewTaskCategory && x.CompletionDate == null
                                                            && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumClosedInterviewTasks = _context.Tasks.Where(x => x.Category == MJLConstants.InPersonInterviewTaskCategory && x.CompletionDate != null
                                                            && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumAppliedPositions = _context.Positions.Where(x => x.HasApplied && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumNotAppliedPositions = _context.Positions.Where(x => !x.HasApplied && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                IsInFillPerfectPilot = !string.IsNullOrWhiteSpace(org.FillPerfectPilotKey)
            };
        }
Ejemplo n.º 2
0
        public OrganizationDashboardViewModel Execute(OrganizationByAdministeringUserQueryParams queryParams)
        {
            var org = _context.Users
                      .Where(x => x.Id == queryParams.AdministeringUserId)
                      .Where(x => x.IsOrganizationAdmin)
                      .Select(x => x.Organization)
                      .FirstOrDefault();

            if (org == null)
            {
                return(null);
            }

            return(new OrganizationDashboardViewModel
            {
                Organization = org,
                NonMemberOfficialDocuments = _context.OfficialDocuments.Where(x => !x.MeantForMembers).ToList(),
                HiddenMemberDocuments = _context.OfficialDocuments.Where(x => x.MeantForMembers && !x.Organizations.Any(y => y.Id == org.Id)).ToList(),
                NumMembers = org.Members.Count,
                NumCompanies = _context.Companies.Where(x => x.JobSearch.User.Organization.Id == org.Id).Count(),
                NumContacts = _context.Contacts.Where(x => x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumOpenPhoneTasks = _context.Tasks.Where(x => x.Category == MJLConstants.PhoneInterviewTaskCategory && x.CompletionDate == null &&
                                                         x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumClosedPhoneTasks = _context.Tasks.Where(x => x.Category == MJLConstants.PhoneInterviewTaskCategory && x.CompletionDate != null &&
                                                           x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumOpenInterviewTasks = _context.Tasks.Where(x => x.Category == MJLConstants.InPersonInterviewTaskCategory && x.CompletionDate == null &&
                                                             x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumClosedInterviewTasks = _context.Tasks.Where(x => x.Category == MJLConstants.InPersonInterviewTaskCategory && x.CompletionDate != null &&
                                                               x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumAppliedPositions = _context.Positions.Where(x => x.HasApplied && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                NumNotAppliedPositions = _context.Positions.Where(x => !x.HasApplied && x.Company.JobSearch.User.Organization.Id == org.Id).Count(),
                IsInFillPerfectPilot = !string.IsNullOrWhiteSpace(org.FillPerfectPilotKey)
            });
        }