public HttpResponseMessage Get()
        {
            if (!_orchardServices.Authorizer.Authorize(Permissions.ivMemberTab))
                return Request.CreateResponse(HttpStatusCode.Forbidden);

            var availability = new AvailabilityModel();
            tidyCalendar(availability);
            _fixtureServices.AddPlayerAvailabilty(availability);
            return Request.CreateResponse(HttpStatusCode.OK, availability, new MediaTypeHeaderValue("application/json"));
        }
 private void tidyCalendar(AvailabilityModel availability)
 {
     foreach (var month in availability.Months)
     {
         for (var i = 0; i < maxDays(availability); i++)
         {                    
             if (month.Days.Count <= i)
                 month.Days.Add(new AvailabilityModel.Day{Date = string.Empty});
         }
     }
 }
        public void AddPlayerAvailabilty(AvailabilityModel availabilityModel)
        {
            var member = _memberServices.GetMemberByUserId(CurrentUser.Id);
            if (member == null) return;
            var player = _playerServices.GetPlayerByName(member.Lastname, member.Firstname);
            if (player == null) return;

            availabilityModel.PlayerId = player.Id;

            var availabilityList = GetPlayerAvailability(player.Id);
            foreach (var availability in availabilityList)
            {
                foreach (var month in availabilityModel.Months)
                {
                    foreach (var day in month.Days)
                    {
                        if (string.IsNullOrEmpty(day.Date)) continue;

                        var availableDate =
                            new DateTime(DateTime.Now.Year,
                                Array.IndexOf(_months, month.Name) + 1,
                                Convert.ToInt32(day.Date));

                        if (availability.Date == availableDate)
                            day.Available = true;
                    }
                }
            }

        }
 private int maxDays(AvailabilityModel availability)
 {
     return availability.Months.Select(month => month.Days.Count).Concat(new[] {0}).Max();
 }