public async Task <ViewResult> Search(TransactionSearchViewModel model) { var transactions = repository.Search(model); var paginatedList = await PaginatedList <Transaction> .CreateAsync(transactions, 1, 5); return(View("List", paginatedList)); }
public ActionResult Index(TransactionSearchViewModel viewModel) { var numberOfMonths = _dateTimeProvider.GetTotalNumberOfMonths(viewModel.StartDate, viewModel.EndDate); var data = _transactionRepository.GetTransactions(viewModel.StartDate, viewModel.EndDate); var results = data.Select(item => _autoMapper.Map <TransactionData, TransactionViewModel>(item)).ToList(); if (viewModel.ShowBuyTransactionsOnly) { var soldTransactions = results.Where(x => x.TransactionType == TransactionType.Sell); results = results.Where(x => x.TransactionType == TransactionType.Buy && String.IsNullOrEmpty(x.SellTransactionId)).ToList(); foreach (var item in soldTransactions) { results.Remove(results.FirstOrDefault(x => x.Id == item.SellTransactionId)); } } var taxYearStartDate = _dateTimeProvider.GetTaxYearStartDate(viewModel.StartDate); var taxYearData = _transactionRepository.GetTransactions(taxYearStartDate, viewModel.EndDate); var monthlyTargetSetting = _settingRepository.GetSettingByKey("DefaultMonthlyTarget"); viewModel.Results = results; viewModel.MonthlyTarget = Decimal.Parse(monthlyTargetSetting.SettingsValue); viewModel.CumulativeTarget = Decimal.Parse(monthlyTargetSetting.SettingsValue) * numberOfMonths; viewModel.TransactionPeriod = _transactionFactory.GetTransactionPeriodValue(data); viewModel.SinceStartTaxYear = _transactionFactory.GetTransactionPeriodValue(taxYearData); return(View(viewModel)); }
public ActionResult Index() { var startDate = _dateTimeProvider.GetTransactionStartDate(DateTime.UtcNow); var endDate = _dateTimeProvider.GetTransactionEndDate(DateTime.UtcNow); var numberOfMonths = _dateTimeProvider.GetTotalNumberOfMonths(startDate, endDate); var data = _transactionRepository.GetTransactions(startDate, endDate); var results = data.Select(item => _autoMapper.Map <TransactionData, TransactionViewModel>(item)).ToList(); var taxYearStartDate = _dateTimeProvider.GetTaxYearStartDate(startDate); var taxYearData = _transactionRepository.GetTransactions(taxYearStartDate, endDate); var monthlyTargetSetting = _settingRepository.GetSettingByKey("DefaultMonthlyTarget"); var viewModel = new TransactionSearchViewModel { StartDate = startDate, EndDate = endDate, Results = results, MonthlyTarget = Decimal.Parse(monthlyTargetSetting.SettingsValue), CumulativeTarget = Decimal.Parse(monthlyTargetSetting.SettingsValue) * numberOfMonths, TaxFreeAllowance = Decimal.Parse(_settingRepository.GetSettingByKey("TaxFreeAllowance").SettingsValue), TransactionPeriod = _transactionFactory.GetTransactionPeriodValue(data), SinceStartTaxYear = _transactionFactory.GetTransactionPeriodValue(taxYearData), ShowBuyTransactionsOnly = false }; return(View(viewModel)); }
private IQueryable <TransactionViewModel> AddFilters(TransactionSearchViewModel request, IQueryable <Models.Transaction> transactions) { return(transactions .Where(c => !c.IsDeleted) .Where(c => c.UserId == UserId) .Where(c => c.AccountId == request.AccountId || c.ToAccountId == request.AccountId) .OrderByDescending(c => c.Date) .ThenByDescending(c => c.Id) .ProjectTo <TransactionViewModel>(mapper.ConfigurationProvider)); }
/// <inheritdoc /> public PagingResponse <TransactionRequestModel> GetModified(TransactionSearchViewModel request) { var query = dataContext.Transactions .Where(c => c.UpdatedTime > request.LastSyncTime) .Where(c => c.UserId == UserId) .ProjectTo <TransactionRequestModel>(mapper.ConfigurationProvider); var response = PagingResponse(request, query, query); return(response); }
/// <inheritdoc /> public PagingResponse <TransactionViewModel> Get(TransactionSearchViewModel request) { var raw = dataContext.Transactions.FromSqlRaw(@"SELECT `t`.`AccountId`,`t`.`Amount`, `t`.`CreatedTime`, COALESCE(`t`.`Date`, '0001-01-01 00:00:00.000000') AS `c`, `t`.`Id`, `t`.`IsDeleted`, `t`.`Notes`, `t`.`PayeeId`, `t`.`SubCategoryId`, `t`.`ToAccountId`, `t`.`Date`, `t`.`Number`, `t`.`Status`, `t`.`ToAmount`, `t`.`Type`, `t`.`UpdatedTime`, `t`.`UserId`, getTotal({0},{1},t.date,t.AccountId,t.ToAccountId,t.Id) as Balance FROM `Transactions` AS `t`", request.AccountId, UserId) .AsNoTracking(); var dataQuery = AddFilters(request, raw); var countQuery = AddFilters(request, dataContext.Transactions.AsNoTracking()); var response = PagingResponse(request, countQuery, dataQuery); return(response); }
protected override void Given() { base.Given(); _viewModel = new TransactionSearchViewModel { StartDate = _startDate, EndDate = _endDate, ShowBuyTransactionsOnly = true }; GetMock <ITransactionRepository>() .Setup(m => m.GetTransactions(_startDate, _endDate)) .Returns(new List <TransactionData> { _buyTransactionData, _sellTransactionData, _buyTransactionData2 }); GetMock <IAutoMapper>() .Setup(m => m.Map <TransactionData, TransactionViewModel>(_buyTransactionData)) .Returns(_buyTransactionViewModel); GetMock <IAutoMapper>() .Setup(m => m.Map <TransactionData, TransactionViewModel>(_sellTransactionData)) .Returns(_soldTransactionViewModel); GetMock <IAutoMapper>() .Setup(m => m.Map <TransactionData, TransactionViewModel>(_buyTransactionData2)) .Returns(_buytransactionvViewModel2); GetMock <ISettingRepository>() .Setup(m => m.GetSettingByKey("DefaultMonthlyTarget")) .Returns(_monthlyTargetSettingData); GetMock <IDateTimeProvider>() .Setup(m => m.GetTotalNumberOfMonths(_startDate, _endDate)) .Returns(2); GetMock <IDateTimeProvider>() .Setup(m => m.GetTaxYearStartDate(_startDate)) .Returns(_taxYearStartDate); GetMock <ITransactionRepository>() .Setup(m => m.GetTransactions(_taxYearStartDate, _endDate)) .Returns(_taxYearTransactions); }
public IQueryable <Transaction> Search(TransactionSearchViewModel model) { var query = "SELECT * FROM dbo.Transactions WHERE "; if (model.TransactionType != null) { query += "TransactionType = @p0 AND "; } if (model.Max != null) { query += "Value < @p1 AND "; } if (model.Min != null) { query += "Value > @p2 AND "; } if (model.Days != null) { query += "DAY([Date]) < @p3 AND "; } query += "1 = 1"; return(applicationContext.Transactions.FromSql(query, model.TransactionType, model.Max, model.Min, model.Days)); }
public PagingResponse <TransactionRequestModel> GetModifiedRecords([FromQuery] TransactionSearchViewModel request) { return(service.GetModified(request)); }
public PagingResponse <TransactionViewModel> Get([FromQuery] TransactionSearchViewModel request) { return(service.Get(request)); }