//public dtoCommitteesSummaryItem(UserSubmission s, String anonymousUser)
    //    : base(s, anonymousUser)
    //{
    //    Committees = new List<dtoCommitteeDisplayItem>();
    //    Counters = new Dictionary<EvaluationStatus, long>() { { EvaluationStatus.Evaluated, 0 }, { EvaluationStatus.Evaluating, 0 }, { EvaluationStatus.EvaluatorReplacement, 0 }, { EvaluationStatus.Invalidated, 0 }, { EvaluationStatus.None, 0 } };
    //}

        public void UpdateCounters()
        {
            var query = Committees.Where(c => c.Evaluations != null).SelectMany(c => c.Evaluations);
            Counters[EvaluationStatus.None] = query.Where(s => s.Status == EvaluationStatus.None).Count();
            Counters[EvaluationStatus.Evaluated] = query.Where(s => s.Status == EvaluationStatus.Evaluated).Count();
            Counters[EvaluationStatus.Evaluating] = query.Where(s => s.Status == EvaluationStatus.Evaluating).Count();
            Counters[EvaluationStatus.EvaluatorReplacement] = query.Where(s => s.Status == EvaluationStatus.EvaluatorReplacement).Count();
            Counters[EvaluationStatus.Invalidated] = query.Where(s => s.Status == EvaluationStatus.Invalidated).Count();
        }
        public List <dtoCommitteePartialAssignment> GetPartialAssignments(Dictionary <long, Dictionary <long, String> > evaluators)
        {
            List <dtoCommitteePartialAssignment> items = new List <dtoCommitteePartialAssignment>();

            items.AddRange(Committees.Where(c => c.Evaluators.Count != evaluators[c.IdCommittee].Values.Count).Select(c => new dtoCommitteePartialAssignment()
            {
                CommitteeName  = c.Name, Display = c.Display, SubmitterName = this.DisplayName, SubmitterType = this.SubmitterType,
                SubmittedOn    = this.SubmittedOn, AssignedEvaluators = c.Evaluators.Count, AvailableEvaluators = evaluators[c.IdCommittee].Values.Count
                , IdSubmission = this.IdSubmission
            }).ToList());
            return(items);
        }