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)); }
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)); }