public Task <List <PendingBill> > Pending(BillingSearchParams searchParams)
        {
            var taskResult = Task.Run(() =>
            {
                using (var context = new DbContext())
                {
                    var societyIdParameter = new SqlParameter("@SocietyId", searchParams.SocietyId);

                    var result = context.Database
                                 .SqlQuery <PendingBill>("GetPendingBills @SocietyId", societyIdParameter)
                                 .ToList();

                    return(result);
                }
            });

            return(taskResult);
        }
        public Task <List <Bill> > List(BillingSearchParams searchParams)
        {
            var taskResult = Task.Run(() =>
            {
                using (var context = new DbContext())
                {
                    var ctx = context
                              .Bills
                              .Where(b => b.SocietyId == searchParams.SocietyId)
                              .Include(c => c.Society)
                              .Include(c => c.Flat)
                              .AsQueryable();

                    if (searchParams.Year.HasValue)
                    {
                        ctx = ctx
                              .Where(t => t.Year == searchParams.Year.Value);
                    }

                    if (searchParams.Month.HasValue)
                    {
                        ctx = ctx
                              .Where(t => t.Month == searchParams.Month.Value);
                    }

                    if (searchParams.Facility.HasValue)
                    {
                        ctx = ctx
                              .Where(t => t.Flat.Floor.FacilityId == searchParams.Facility.Value);
                    }

                    if (searchParams.Floor.HasValue)
                    {
                        ctx = ctx
                              .Where(t => t.Flat.FloorId == searchParams.Floor.Value);
                    }

                    return(ctx.ToList());
                }
            });

            return(taskResult);
        }
 public Task <List <PendingBill> > Pending(BillingSearchParams searchParams)
 {
     return(_billingRepository.Pending(searchParams));
 }
 public Task <List <Bill> > List(BillingSearchParams searchParams)
 {
     return(_billingRepository.List(searchParams));
 }