public ActionResult TakeViolationCase(ConfirmTakeViolationViewModel model)
        {
            var item      = violationRepo.Get(model.Id);
            var policeman = policeRepository.GetPolicemanByLogin(model.PolicemanLogin);

            if (item == null ||
                (model.TakeViolation && item.ViewingPoliceman != null) ||
                (!model.TakeViolation && item.ViewingPoliceman != policeman))
            {
                return(BadRequest());
            }

            if (item.BlamedUser.Login == model.PolicemanLogin || item.BlamingUser.Login == model.PolicemanLogin)
            {
                return(BadRequest());
            }

            if (model.TakeViolation)
            {
                item.ViewingPoliceman = policeman;
                item.Status           = CurrentStatus.Started;
            }
            else
            {
                item.ViewingPoliceman = null;
                item.Status           = CurrentStatus.NotStarted;
            }

            violationRepo.Save(item);

            return(Ok());
        }
        public ActionResult DenyViolation(ConfirmTakeViolationViewModel model)
        {
            var violation = violationRepo.Get(model.Id);

            if (violation == null || violation.Status != CurrentStatus.Started)
            {
                return(BadRequest());
            }

            violation.Status = CurrentStatus.Denied;
            violation.PolicemanCommentary = model.PolicemanCommentary;
            violation.ConfirmDate         = DateTime.Today;
            violationRepo.Save(violation);

            return(Ok());
        }
        public ActionResult DenyViolation(ConfirmTakeViolationViewModel model)
        {
            var violation = violationRepo.Get(model.Id);

            if (violation == null || violation.Status != CurrentStatus.Started)
            {
                return(BadRequest());
            }

            violation.Status = CurrentStatus.Denied;
            violation.PolicemanCommentary = model.PolicemanCommentary;
            violation.ConfirmDate         = DateTime.Today;
            violationRepo.Save(violation);

            var notifications = PoliceNotificationsFactory.DenyViolation(violation.BlamedUser, violation.BlamingUser);

            notificationsRepository.SaveRange(notifications);

            return(Ok());
        }