public CurrencyExchangeNewestViewModel GetCurrencyExchangeNewest(string currencyToId) { var lastExchanges = GetExchangeRateNewest(currencyToId); if (lastExchanges == null) { return(null); } var result = new CurrencyExchangeNewestViewModel { DatetimeModified = lastExchanges.FirstOrDefault().DatetimeCreated, ExchangeRates = lastExchanges }; return(result); }
public CurrencyExchangeNewestViewModel GetExchangeRates(DateTime date, string localCurrency, string fromCurrency) { var users = userRepository.Get(); var data = DataContext.Get(x => x.DatetimeCreated.Value.Day == date.Day && x.DatetimeCreated.Value.Month == date.Month && x.DatetimeCreated.Value.Year == date.Year && x.CurrencyToId == localCurrency && (x.CurrencyFromId == fromCurrency || string.IsNullOrEmpty(fromCurrency))); var result = new CurrencyExchangeNewestViewModel(); if (data.Count() == 0) { return(result); } var lastRate = data.OrderBy(x => x.DatetimeModified).ThenBy(x => x.DatetimeCreated).LastOrDefault(); result.LocalCurrency = localCurrency; result.DatetimeCreated = date; result.DatetimeModified = date; string userName = string.Empty; if (lastRate.UserModified != null) { var userModified = users.FirstOrDefault(x => x.Id == lastRate.UserModified); userName = userModified != null ? userModified.Username : "******"; } result.UserModifield = userName; result.ExchangeRates = new List <vw_catCurrencyExchangeNewest>(); foreach (var item in data) { var rate = new vw_catCurrencyExchangeNewest { CurrencyFromID = item.CurrencyFromId, Rate = item.Rate, DatetimeCreated = item.DatetimeModified }; result.ExchangeRates.Add(rate); } result.ExchangeRates = result.ExchangeRates.OrderByDescending(x => x.DatetimeCreated).GroupBy(x => new { x.CurrencyFromID, x.Rate }).Select(x => new vw_catCurrencyExchangeNewest { CurrencyFromID = x.Key.CurrencyFromID, Rate = x.Key.Rate }).ToList(); return(result); }