public Capacity OpportunityCapacity(int opportunityId, int eventId, int?minNeeded, int?maxNeeded) { var opportunity = _opportunityService.GetOpportunityResponses(opportunityId, eventId); var min = minNeeded; var max = maxNeeded; var signedUp = opportunity.Count(o => o.Response_Result_ID == _rsvpYes); var capacity = new Capacity { Display = true }; if (max == null && min == null) { capacity.Display = false; return(capacity); } int calc; if (max == null) { capacity.Minimum = min.GetValueOrDefault(); //is this valid?? max is null so put min value in max? capacity.Maximum = capacity.Minimum; calc = capacity.Minimum - signedUp; } else if (min == null) { capacity.Maximum = max.GetValueOrDefault(); //is this valid?? capacity.Minimum = capacity.Maximum; calc = capacity.Maximum - signedUp; } else { capacity.Maximum = max.GetValueOrDefault(); capacity.Minimum = min.GetValueOrDefault(); calc = capacity.Minimum - signedUp; } if (signedUp < capacity.Maximum && signedUp < capacity.Minimum) { capacity.Message = string.Format("{0} Needed", calc); capacity.BadgeType = BadgeType.LabelInfo.ToString(); capacity.Available = calc; capacity.Taken = signedUp; } else if (signedUp >= capacity.Maximum) { capacity.Message = "Full"; capacity.BadgeType = BadgeType.LabelDefault.ToString(); capacity.Available = calc; capacity.Taken = signedUp; } return(capacity); }
public Capacity OpportunityCapacity(int opportunityId, int eventId, int?minNeeded, int?maxNeeded) { var capacity = new Capacity { Display = false, Maximum = maxNeeded, Minimum = minNeeded }; if (capacity.Maximum == null && capacity.Minimum == null) { return(capacity); } var opportunity = _opportunityService.GetOpportunityResponses(opportunityId, eventId); var signedUp = opportunity.Count(o => o.Response_Result_ID == _rsvpYes); int calc; if (signedUp < capacity.Minimum) { calc = capacity.Minimum.Value - signedUp; capacity.Display = true; capacity.Message = $"{calc} Needed"; capacity.BadgeType = BadgeType.LabelInfo.ToString(); capacity.Available = calc; capacity.Taken = signedUp; return(capacity); } if (signedUp >= capacity.Maximum) { calc = capacity.Maximum.Value - signedUp; capacity.Display = true; capacity.Message = "Full"; capacity.BadgeType = BadgeType.LabelDefault.ToString(); capacity.Available = calc; capacity.Taken = signedUp; return(capacity); } return(capacity); }