示例#1
0
        public async Task <IActionResult> Delete(DeleteGroupModel model)
        {
            Group group = await _context.Groups.FindAsync(model.groupid);

            if (group == null)
            {
                return(await RedirectBack($"Could not find the group {model.groupid}"));
            }

            User user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(await RedirectBack($"Could not verify user!"));
            }

            if (!group.IsOwner(user))
            {
                return(await RedirectBack($"You don't own {group.Name}!"));
            }

            // Remove category
            ForumCategory category = _context.ForumCategories.FirstOrDefault(c => c.CategoryID == group.Name);

            if (category != null)
            {
                _context.ForumCategories.Remove(category);
            }

            await _context.SaveChangesAsync();

            /*
             * Stock stock = _stockContext.Stocks.FirstOrDefault(s => s.GroupID == model.groupid);
             *
             * // Handle stocks
             *
             * if (stock != null)
             * {
             *  int publicOwners = stock.Total - stock.ExchangeOwned;
             *
             *  foreach (var ownership in stock.GetAllOwnership())
             *  {
             *      User stockowner = await _userManager.FindByIdAsync(ownership.Item1);
             *
             *      decimal ret = ((ownership.Item2 * 1.0m) / publicOwners) * group.Credits;
             *
             *      stockowner.Credits += ret;
             *
             *      await _userManager.UpdateAsync(stockowner);
             *  }
             *
             *  _stockContext.Stocks.Remove(stock);
             *
             *  await _stockContext.SaveChangesAsync();
             * }
             */

            await group.ClearRoles();

            _context.Remove(group);

            await _context.SaveChangesAsync();

            StatusMessage = $"Successfully deleted {group.Name}!";
            return(RedirectToAction("Index", controllerName: "Home"));
        }