Exemplo n.º 1
0
        // GET: SickWardenRelations/Accept/5
        public async Task <IActionResult> Accept(long?id)
        {
            AppUser appUser = AuthExtender.GetLoggedInUser(this, _context);

            if (id == null)
            {
                return(NotFound());
            }

            SickWarden sickWarden = await _context.SickWardenRelations.FindAsync(id);

            if (sickWarden == null)
            {
                return(NotFound());
            }
            await _context.Entry(sickWarden).Reference(p => p.Sick).LoadAsync();

            await _context.Entry(sickWarden).Reference(p => p.Warden).LoadAsync();

            if (sickWarden.Sick.Equals(appUser) && sickWarden.IsProposedByWarden.GetValueOrDefault())
            {
                sickWarden.IsAccepted = true;
                _context.SickWardenRelations.Update(sickWarden);
                await _context.SaveChangesAsync();
            }
            else if (sickWarden.Warden.Equals(appUser) && !sickWarden.IsProposedByWarden.GetValueOrDefault())
            {
                sickWarden.IsAccepted = true;
                _context.SickWardenRelations.Update(sickWarden);
                await _context.SaveChangesAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 2
0
        // GET: SickWardenRelations/Delete/5
        public async Task <IActionResult> Delete(long?id)
        {
            AppUser appUser = AuthExtender.GetLoggedInUser(this, _context);

            if (id == null)
            {
                return(NotFound());
            }

            SickWarden sickWarden = await _context.SickWardenRelations
                                    .FirstOrDefaultAsync(m => m.Id == id);

            if (sickWarden == null)
            {
                return(NotFound());
            }

            await _context.Entry(sickWarden).Reference(p => p.Sick).LoadAsync();

            await _context.Entry(sickWarden).Reference(p => p.Warden).LoadAsync();

            SickWardenDeleteViewModel viewModel = new SickWardenDeleteViewModel
            {
                Id       = sickWarden.Id,
                FullName = sickWarden.Warden.Equals(appUser) ? sickWarden.Sick.FullName : sickWarden.Warden.FullName
            };

            return(View(viewModel));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create(SickWardenAddViewModel sickWardenAddViewModel)
        {
            AppUser appUser = AuthExtender.GetLoggedInUser(this, _context);

            if (ModelState.IsValid)
            {
                Boolean isSick      = sickWardenAddViewModel.TypeId.Equals("sick");
                AppUser anotherUser = _context.Users.FirstOrDefault(p => p.Id.Equals(sickWardenAddViewModel.UserId));
                if (anotherUser == null)
                {
                    ModelState.AddModelError("UserId", "Hack attempt!");
                    ViewBag.UserList = MakeAllowedUsersList(appUser, null);
                    ViewBag.TypeList = MakeTypeList();
                    return(View(sickWardenAddViewModel));
                }
                if (isSick)
                {
                    if (_context.SickWardenRelations.Any(p => p.Sick.Equals(appUser) && p.Warden.Equals(anotherUser)))
                    {
                        ModelState.AddModelError("UserId", "Hack attempt!");
                        ViewBag.UserList = MakeAllowedUsersList(appUser, null);
                        ViewBag.TypeList = MakeTypeList();
                        return(View(sickWardenAddViewModel));
                    }
                }
                else
                {
                    if (_context.SickWardenRelations.Any(p => p.Warden.Equals(appUser) && p.Sick.Equals(anotherUser)))
                    {
                        ModelState.AddModelError("UserId", "Hack attempt!");
                        ViewBag.UserList = MakeAllowedUsersList(appUser, null);
                        ViewBag.TypeList = MakeTypeList();
                        return(View(sickWardenAddViewModel));
                    }
                }

                SickWarden sickWarden = new SickWarden
                {
                    Sick               = isSick ? appUser : anotherUser,
                    Warden             = isSick ? anotherUser : appUser,
                    IsAccepted         = false,
                    IsProposedByWarden = !isSick
                };

                _context.Add(sickWarden);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewBag.UserList = MakeAllowedUsersList(appUser, null);
            ViewBag.TypeList = MakeTypeList();
            return(View(sickWardenAddViewModel));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> DeleteConfirmed(long id)
        {
            AppUser appUser = AuthExtender.GetLoggedInUser(this, _context);

            SickWarden sickWarden = await _context.SickWardenRelations.FindAsync(id);

            await _context.Entry(sickWarden).Reference(p => p.Sick).LoadAsync();

            await _context.Entry(sickWarden).Reference(p => p.Warden).LoadAsync();

            if (sickWarden.Warden.Equals(appUser) || sickWarden.Sick.Equals(appUser))
            {
                _context.SickWardenRelations.Remove(sickWarden);
                await _context.SaveChangesAsync();
            }

            return(RedirectToAction(nameof(Index)));
        }