예제 #1
0
        // 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));
        }
예제 #2
0
        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));
        }