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)); }