protected Task <ItemResult <TDto> > SaveImplementation(TDto dto, DataSourceParameters parameters, IDataSource <T> dataSource, IBehaviors <T> behaviors) { var kind = behaviors.DetermineSaveKind(dto).Kind; if (kind == SaveKind.Create && !GeneratedForClassViewModel.SecurityInfo.IsCreateAllowed(User)) { Response.StatusCode = (int)HttpStatusCode.Unauthorized; return(Task.FromResult <ItemResult <TDto> >($"Creation of {GeneratedForClassViewModel.DisplayName} items not allowed.")); } if (kind == SaveKind.Update && !GeneratedForClassViewModel.SecurityInfo.IsEditAllowed(User)) { Response.StatusCode = (int)HttpStatusCode.Unauthorized; return(Task.FromResult <ItemResult <TDto> >($"Editing of {GeneratedForClassViewModel.DisplayName} items not allowed.")); } return(behaviors.SaveAsync(dto, dataSource, parameters)); }