public HttpResponseMessage StudentFeesDues(int studentId)
        {
            var feesDuesList = db.GetStudentFeesDues(studentId).ToList();
            List <FeesDuesModel> studentsFeesDuesList = new List <FeesDuesModel>();

            foreach (var feesDues in feesDuesList)
            {
                FeesDuesModel fdm = new FeesDuesModel();
                fdm.StudentId        = feesDues.StudentId;
                fdm.CreatedDate      = feesDues.CreatedDate;
                fdm.DeletedDate      = feesDues.DeletedDate;
                fdm.FeesLastPaidDate = feesDues.FeesLastPaidDate;
                fdm.ImageLocation    = feesDues.ImageLocation;
                var today        = DateTime.Today; //
                var lastPaidDate = DateTime.Parse(feesDues.FeesLastPaidDate != null ? feesDues.FeesLastPaidDate.ToString() : feesDues.CreatedDate.ToString());
                var nextMonth    = lastPaidDate.AddMonths(1);
                var caldate      = ((today.Year - lastPaidDate.Year) * 12) + today.Month - lastPaidDate.Month;
                var months       = MonthsBetween(nextMonth, today);
                var items        = months.Select(i => new { i.Item1, i.Item2, i.Item3 }).AsEnumerable().Select(c => new Tuple <string, int, DateTime>(c.Item1, c.Item2, c.Item3)).ToList();
                if (caldate > 0)
                {
                    fdm.PendingMonths = items;
                }
                studentsFeesDuesList.Add(fdm);
            }
            studentsFeesDuesList.RemoveAll(t => t.PendingMonths == null);
            studentsFeesDuesList = studentsFeesDuesList.OrderByDescending(x => x.PendingMonths.Count).ToList();
            return(Request.CreateResponse(HttpStatusCode.OK, studentsFeesDuesList));
        }
        public HttpResponseMessage GetFeesDues()
        {
            var feesDuesList = db.GetFeesDues().ToList();
            List <FeesDuesModel> studentsFeesDuesList = new List <FeesDuesModel>();

            foreach (var feesDues in feesDuesList)
            {
                FeesDuesModel fdm = new FeesDuesModel();
                fdm.Addres           = feesDues.Addres;
                fdm.Age              = feesDues.Age;
                fdm.CreatedDate      = feesDues.CreatedDate;
                fdm.DeletedDate      = feesDues.DeletedDate;
                fdm.FeesLastPaidDate = feesDues.FeesLastPaidDate;
                fdm.MobileNumber     = feesDues.MobileNumber;
                fdm.Name             = feesDues.Name;
                fdm.ParentName       = feesDues.ParentName;
                fdm.Sex              = feesDues.Sex;
                fdm.StudentId        = feesDues.StudentId;
                fdm.TuitionFees      = feesDues.TuitionFees;
                fdm.ImageLocation    = feesDues.ImageLocation;

                var today        = DateTime.Today; //
                var lastPaidDate = DateTime.Parse(feesDues.FeesLastPaidDate != null ? feesDues.FeesLastPaidDate.ToString() : feesDues.CreatedDate.ToString());
                var nextMonth    = lastPaidDate.AddMonths(1);
                var caldate      = ((today.Year - lastPaidDate.Year) * 12) + today.Month - lastPaidDate.Month;
                var months       = MonthsBetween(nextMonth, today);
                // var items = months.Select(i => i.Item1).ToList();
                var items = months.Select(i => new { i.Item1, i.Item2, i.Item3 }).AsEnumerable().Select(c => new Tuple <string, int, DateTime>(c.Item1, c.Item2, c.Item3)).ToList();
                if (caldate > 0)
                {
                    fdm.PendingMonths = items;
                }
                studentsFeesDuesList.Add(fdm);
            }
            studentsFeesDuesList.RemoveAll(t => t.PendingMonths == null);

            /*var itemToRemove = studentsFeesDuesList.SingleOrDefault(r => r.PendingMonths == null);
             * if (itemToRemove != null)
             * {
             *  studentsFeesDuesList.Remove(itemToRemove);
             * }*/
            studentsFeesDuesList = studentsFeesDuesList.OrderByDescending(x => x.PendingMonths.Count).ToList();
            return(Request.CreateResponse(HttpStatusCode.OK, studentsFeesDuesList));
        }