public IActionResult GetExchangeRateHistory(CatCurrencyExchangeCriteria criteria, int page, int size) { var data = catCurrencyExchangeService.Paging(criteria, page, size, out int rowCount); var result = new { data, totalItems = rowCount, page, size }; return(Ok(result)); }
public List <vw_catCurrencyExchange> Query(CatCurrencyExchangeCriteria criteria) { var list = GetView(); list = list.Where(x => (x.CurrencyToId ?? "").IndexOf(criteria.LocalCurrencyId ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.DatetimeCreated >= criteria.FromDate || criteria.FromDate == null) && (x.DatetimeCreated <= criteria.ToDate || criteria.ToDate == null) && (x.Active == criteria.Active || criteria.Active == null) ).ToList(); return(list); }
public List <CatCurrencyExchangeHistory> Paging(CatCurrencyExchangeCriteria criteria, int page, int size, out int rowsCount) { var users = userRepository.Get(); var exchanges = DataContext.Get(x => (x.CurrencyToId ?? "").IndexOf(criteria.LocalCurrencyId ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.DatetimeCreated >= criteria.FromDate || criteria.FromDate == null) && (x.DatetimeCreated <= criteria.ToDate || criteria.ToDate == null) && (x.Active == criteria.Active || criteria.Active == null)); var data = (from ex in exchanges join u in users on ex.UserCreated equals u.Id into grpUsers from user in grpUsers.DefaultIfEmpty() select new { ex, user }).OrderByDescending(x => x.ex.DatetimeCreated); var dateCreateds = data.GroupBy(x => x.ex.DatetimeCreated.Value.Date) .Select(x => x); rowsCount = dateCreateds.Count(); if (rowsCount == 0) { return(null); } if (size > 1) { if (page < 1) { page = 1; } dateCreateds = dateCreateds.Skip((page - 1) * size).Take(size); } List <CatCurrencyExchangeHistory> results = new List <CatCurrencyExchangeHistory>(); foreach (var item in dateCreateds) { var date = data.Where(x => x.ex.DatetimeCreated.Value.Date == item.Key) .OrderBy(x => x.ex.DatetimeCreated == item.Key).First(); var userName = "******"; if (date.ex.UserModified != null) { if (date.ex.UserModified != "system") { userName = date.user?.Username; } } var rate = new CatCurrencyExchangeHistory { DatetimeCreated = item.Key, UserModifield = userName, LocalCurrency = date.ex.CurrencyToId, DatetimeUpdated = date.ex.DatetimeModified ?? date.ex.DatetimeCreated }; results.Add(rate); } return(results); }