// GET: Admin/Lots/Details/5 public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var lot = await _context.Lot .Include(l => l.Address) .FirstOrDefaultAsync(m => m.LotId == id); if (lot == null) { return(NotFound()); } var identityUser = await _userManager.GetUserAsync(HttpContext.User); var roles = await _userManager.GetRolesAsync(identityUser); var isAdmin = roles.Contains("Admin") || roles.Contains("SuperAdmin"); //var loggedInUser = _context.Owner.Find(identityUser.OwnerId); var ownerLots = _context.OwnerLot .Where(u => u.LotId == id) .Where(u => u.OwnerId == identityUser.OwnerId); if (!isAdmin && !ownerLots.Any()) { return(NotFound()); } var lotItems = await _context.LotInventory .Include(u => u.Inventory) .Where(u => u.LotId == lot.LotId) .Select(u => u.Inventory) .ToListAsync(); var vm = new LotIndexVM { Lot = lot, Address = lot.Address, PrimaryOwner = await GetPrimaryOwnerAsync(lot.LotId), Owners = await GetNonPrimaryOwnerAsync(lot.LotId), InventoryItems = lotItems }; return(View(vm)); }
public async Task <IActionResult> MyLots() { var identityUser = await _userManager.GetUserAsync(HttpContext.User); var loggedInUser = _context.Owner.Find(identityUser.OwnerId); var myLots = await _context.OwnerLot .Include(u => u.Lot) .Where(u => u.OwnerId == loggedInUser.OwnerId) .Where(u => !u.IsArchive) .Select(u => u.Lot) .ToListAsync(); var lotList = new List <LotIndexVM>(); foreach (var lot in myLots) { var owners = _context.OwnerLot .Include(u => u.Owner) .Where(u => u.LotId == lot.LotId) .Where(u => !u.IsArchive); var lotItems = await _context.LotInventory .Include(u => u.Inventory) .Where(u => u.LotId == lot.LotId) .Select(u => u.Inventory) .ToListAsync(); var lotVM = new LotIndexVM { Lot = lot, Address = _context.Address.Find(lot.AddressId), PrimaryOwner = owners.Where(u => u.IsPrimary).First().Owner, Owners = owners.Where(u => !u.IsPrimary).Select(u => u.Owner).ToList(), InventoryItems = lotItems }; lotList.Add(lotVM); } return(View(lotList)); }