public PrintSearchExpenses PrintSearchExpenses(PrintSearchExpenses obj)
        {
            var model = (dynamic)null;

            try
            {
                DateTime StartDate       = Convert.ToDateTime(obj.StartDate);
                DateTime EndDate         = Convert.ToDateTime(obj.EndDate);
                var      ExpensesList    = _ExpensesRepo.GetAll().ToList();
                var      ExpenseTypeList = _ExpenseTypesRepo.GetAll().ToList();
                var      institution     = _InstitutionsRepo.GetAll().FirstOrDefault();
                var      query           = (from _Expenses in ExpensesList
                                            join _ExpenseType in ExpenseTypeList on _Expenses?.ExpenseTypeId equals _ExpenseType?.Id
                                            orderby _ExpenseType.Name ascending
                                            where _Expenses.Date >= StartDate && _Expenses.Date <= EndDate
                                            select new { _Expenses, _ExpenseType });
                var getAmount = (from p in ExpensesList
                                 where p.Date >= StartDate && p.Date <= EndDate
                                 select p.Amount);
                var allGetAmount = getAmount.Sum();
                var list         = new List <PrintSearchExpenses_Expenses>();
                foreach (var item in query)
                {
                    var temp = new PrintSearchExpenses_Expenses()
                    {
                        Id              = item._Expenses.Id,
                        Name            = item._Expenses.Name,
                        Amount          = item._Expenses.Amount,
                        Date            = item._Expenses.Date,
                        ExpenseTypeId   = item._Expenses.ExpenseTypeId,
                        ExpenseTypeName = item._ExpenseType.Name
                    };
                    list.Add(temp);
                }
                ;
                var currentInstitution = new PrintSearchExpenses_Institutions()
                {
                    Id          = institution.Id,
                    Name        = institution.Name,
                    IsActive    = institution.IsActive,
                    LogoPath    = institution.LogoPath,
                    FaviconPath = institution.FaviconPath,
                    Email       = institution.Email,
                    ContactNo   = institution.ContactNo,
                    Address     = institution.Address
                };
                model = new PrintSearchExpenses()
                {
                    _Expenses       = list,
                    DateRangeAmount = allGetAmount,
                    Institution     = currentInstitution
                };
            }
            catch (Exception)
            {
            }
            return(model);
        }
        public async Task <IActionResult> PrintCalculateExpenses(string StartDate, string EndDate)
        {
            ViewBag.OeErrorMessage = null;
            try
            {
                if (String.IsNullOrEmpty(StartDate) && String.IsNullOrEmpty(EndDate))
                {
                    string footer = "--footer-center \"  Printed Date: " +
                                    DateTime.Now.Date.ToString("dd/MM/yyyy") + " - " + "  Page: [page] to [toPage]\"" +
                                    " --footer-line --footer-font-size \"10\" --footer-spacing 1 --footer-font-name \"Courier New\"";
                    var model = new PrintIndexExpensesListVM()
                    {
                        _Expenses = null,
                        StartDate = null,
                        EndDate   = null,
                    };
                    return(new ViewAsPdf("PrintCalculateExpenses", model)
                    {
                        CustomSwitches = footer
                    });
                }
                else
                {
                    string footer = "--footer-center \"  Printed Date: " +
                                    DateTime.Now.Date.ToString("dd/MM/yyyy") + " - " + "  Page: [page] to [toPage]\"" +
                                    " --footer-line --footer-font-size \"10\" --footer-spacing 1 --footer-font-name \"Courier New\"";
                    var result = new PrintSearchExpenses()
                    {
                        StartDate = StartDate,
                        EndDate   = EndDate
                    };
                    var PrintSearchExpenses = await Task.Run(() => _ExpensesServ.PrintSearchExpenses(result));

                    var list = new List <PrintIndexExpensesListVM_Expenses>();
                    foreach (var item in PrintSearchExpenses._Expenses.ToList())
                    {
                        var temp = new PrintIndexExpensesListVM_Expenses()
                        {
                            Id              = item.Id,
                            Name            = item.Name,
                            Amount          = item.Amount,
                            Date            = item.Date,
                            ExpenseTypeId   = item.ExpenseTypeId,
                            ExpenseTypeName = item.ExpenseTypeName
                        };
                        list.Add(temp);
                    }
                    ;
                    var currentInstitution = new PrintIndexExpensesListVM_Institutions()
                    {
                        Id          = PrintSearchExpenses.Institution.Id,
                        Name        = PrintSearchExpenses.Institution.Name,
                        IsActive    = PrintSearchExpenses.Institution.IsActive,
                        LogoPath    = PrintSearchExpenses.Institution.LogoPath,
                        FaviconPath = PrintSearchExpenses.Institution.FaviconPath,
                        Email       = PrintSearchExpenses.Institution.Email,
                        ContactNo   = PrintSearchExpenses.Institution.ContactNo,
                        Address     = PrintSearchExpenses.Institution.Address
                    };
                    var model = new PrintIndexExpensesListVM()
                    {
                        _Expenses   = list,
                        ammount     = PrintSearchExpenses.DateRangeAmount,
                        StartDate   = StartDate,
                        EndDate     = EndDate,
                        Institution = currentInstitution
                    };
                    //return View("CalculateExpenses", model);
                    return(new ViewAsPdf("PrintCalculateExpenses", model)
                    {
                        CustomSwitches = footer
                    });
                }
            }
            catch (Exception ex)
            {
                ViewBag.OeErrorMessage = "ERROR101:ExamTypes/PrintExamTypes -" + ex.Message;
                return(View("PrintCalculateExpenses"));
            }
        }