コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }