public async Task <IActionResult> GiftCurrency()
        {
            if (!string.IsNullOrEmpty(TempData["Status"]?.ToString()))
            {
                ViewBag.Status = TempData["Status"];
            }

            var user = await _userManager.GetUserAsync(HttpContext.User);

            var giftCurrency = await _storeRepository.GetCurrencyTotalForUserAsync(user.Id, CurrencyType.Gift);

            var activeUsers = await _userManager.Users.Where(u => u.IsActive && u.Id != user.Id).ToListAsync();

            var model = new GiftCurrencyViewModel
            {
                GiftCurrancy = giftCurrency,
                Users        = activeUsers
            };

            return(View(model));
        }
Exemple #2
0
        public async Task <IActionResult> GiftCurrency()
        {
            if (!string.IsNullOrEmpty(TempData["Status"]?.ToString()))
            {
                ViewBag.Status = TempData["Status"];
            }

            var user = await _userManager.GetUserAsync(HttpContext.User);

            var giftCurrency = await _storeRepository.GetCurrencyTotalForUserAsync(user.Id, CurrencyType.Gift);

            var activeUsers = await _userManager.Users.Where(u => u.IsActive && u.Id != user.Id).ToListAsync();

            // First we loop through all sent gifts
            IEnumerable <UserCurrency> transactions = await _storeRepository.GetUserGiftsSentByUserIdAsyc(user.Id);

            var displays = new List <GiftCurrencyViewModel.TransactionDisplay> ();

            foreach (var transaction in transactions)
            {
                var display = new GiftCurrencyViewModel.TransactionDisplay();

                display.Amount          = Math.Abs(transaction.Amount);
                display.TransactionDate = transaction.DateNoted;

                var recipient = await _storeRepository.GetGamertagFromSentGiftAsyc(transaction.UserCurrencyId) ?? "Unknown";

                display.Notes = $"Sent to {recipient}.";

                displays.Add(display);
            }

            // Now we loop through received transactions
            transactions = await _storeRepository.GetUserReceivedGiftCurrenciesByUserIdAsyc(user.Id);

            foreach (var transaction in transactions)
            {
                var display = new GiftCurrencyViewModel.TransactionDisplay();

                display.Amount          = Math.Abs(transaction.Amount);
                display.TransactionDate = transaction.DateNoted;

                if (transaction.CreatedFromTransaction != null)
                {
                    display.Notes = $"Received from {transaction.CreatedFromTransaction.User.GamerTag}.";
                }
                else
                {
                    display.Notes = "Received from Unknown";
                }

                displays.Add(display);
            }

            var model = new GiftCurrencyViewModel
            {
                GiftCurrency = giftCurrency,
                Users        = activeUsers,
                Transactions = displays
            };

            return(View(model));
        }