Пример #1
0
        public ActionResult Create([DataSourceRequest] DataSourceRequest request, ViewModelType model)
        {
            if (!model.ContestId.HasValue)
            {
                this.ModelState.AddModelError(nameof(model.ContestId), string.Empty);
                return(this.GridOperation(request, model));
            }

            var contestId = this.contestsData
                            .GetByIdQuery(model.ContestId.Value)
                            .Select(c => c.Id)
                            .FirstOrDefault();

            if (contestId == default(int))
            {
                this.ModelState.AddModelError(nameof(model.ContestId), string.Empty);
                return(this.GridOperation(request, model));
            }

            if (!this.UserHasContestRights(contestId))
            {
                this.ModelState.AddModelError(nameof(model.ContestId), Resource.Cannot_attach_contest);
                return(this.GridOperation(request, model));
            }

            model.Id = (int)this.BaseCreate(model.GetEntityModel());
            return(this.GridOperation(request, model));
        }
Пример #2
0
        public ActionResult Update([DataSourceRequest] DataSourceRequest request, ViewModelType model)
        {
            if (!model.Id.HasValue)
            {
                return(this.GridOperation(request, model));
            }

            var examGroup = model.GetEntityModel(this.GetByIdAsNoTracking(model.Id.Value));

            if (examGroup.ContestId.HasValue)
            {
                if (!this.contestsData.ExistsById(examGroup.ContestId.Value))
                {
                    this.ModelState.AddModelError(nameof(model.ContestId), string.Empty);
                    return(this.GridOperation(request, model));
                }

                if (!this.UserHasContestRights(examGroup.ContestId.Value))
                {
                    this.ModelState.AddModelError(nameof(model.ContestId), Resource.Cannot_attach_contest);
                    return(this.GridOperation(request, model));
                }
            }

            this.BaseUpdate(examGroup);

            return(this.GridOperation(request, model));
        }
Пример #3
0
        public ActionResult Destroy([DataSourceRequest] DataSourceRequest request, ViewModelType model)
        {
            if (model.ContestId != null)
            {
                if (!this.UserHasContestRights(model.ContestId.Value))
                {
                    this.ModelState.AddModelError(string.Empty, GeneralResource.No_privileges_message);
                    return(this.GridOperation(request, model));
                }

                if (this.contestsData.IsActiveById(model.ContestId.Value))
                {
                    this.ModelState.AddModelError(string.Empty, Resource.Cannot_delete_group_with_active_contest);
                    return(this.GridOperation(request, model));
                }
            }

            this.BaseDestroy(model.Id);
            return(this.GridOperation(request, model));
        }