public ExpenseSearchTotalsModel GetSearchTotals(ExpenseSearchModel search) { var expenseList = SearchUseLinq(search).ToList(); ExpenseSearchTotalsModel model = new ExpenseSearchTotalsModel(); model.TotalAmount = expenseList.Sum(x => x.Amount).ToString("0.00"); model.SumNegative = expenseList.Where(x => x.Amount < 0).Sum(x => x.Amount).ToString("0.00"); model.SumPositive = expenseList.Where(x => x.Amount > 0).Sum(x => x.Amount).ToString("0.00"); return(model); }
private IQueryable <Expense> SearchUseLinq(ExpenseSearchModel search) { search ??= new ExpenseSearchModel(); var query = _expenseRepo.Table; if (!string.IsNullOrEmpty(search.Name)) { query = query.Where(x => x.Name.ToLower().Contains(search.Name.ToLower())); } if (!string.IsNullOrEmpty(search.Description)) { query = query.Where(x => x.Description.ToLower().Contains(search.Description.ToLower())); } if (search.DateFrom.HasValue) { DateTime localDate = search.DateFrom.Value.ToLocalTime(); query = query.Where(x => x.Date.Date >= localDate.Date); } if (search.DateTo.HasValue) { DateTime localDate = search.DateTo.Value.ToLocalTime(); query = query.Where(x => x.Date.Date <= localDate.Date); } //if(!string.IsNullOrEmpty(search.ExpenseTags)) //{ // var ets = search.ExpenseTags.ParseExpenseTags(); if (search.ExpenseTags != null && search.ExpenseTags.Count() > 0) { query = from e in query join et in _expenseExpenseTagRepository.Table on e.Id equals et.ExpenseId where search.ExpenseTags.Contains(et.ExpenseTag.Name) select e; } if (search.ExpenseAccounts != null && search.ExpenseAccounts.Count() > 0) { query = from e in query where search.ExpenseAccounts.Contains(e.ExpenseAccount.Name) select e; } if (search.ExpenseCategories != null && search.ExpenseCategories.Count() > 0) { query = from e in query where search.ExpenseCategories.Contains(e.ExpenseCategory.Name) select e; } return(query); }
public IPagedList <Expense> GetAll(ExpenseSearchModel search = null) { search ??= new ExpenseSearchModel(); IQueryable <Expense> query = SearchUseLinq(search); if (search?.SortField != null) { //// Sort based on descending or not //query = searchModel.SortDescending ? query.OrderByDescending(ExpressionHelper.GetSortProperty<Expense>(searchModel.SortField)) : // query.OrderBy(ExpressionHelper.GetSortProperty<Expense>(searchModel.SortField)); query = query.OrderBy(search.SortField, search.SortDescending); } return(new PagedList <Expense>(query, search.PageIndex, search.PageSize)); }
public IActionResult Search([FromBody] ExpenseSearchModel searchModel) { var pagedList = _expenseService.GetAll(searchModel); var models = pagedList.ToModels(); foreach (var m in models) { PrepareModel(m); } var searchResultModel = new SearchResultModel <ExpenseModel>() { Data = models, TotalRecords = pagedList.TotalRecords }; return(Ok(searchResultModel)); }
public IActionResult SearchTotals([FromBody] ExpenseSearchModel searchModel) { var rez = _expenseService.GetSearchTotals(searchModel); return(Ok(rez)); }