Example #1
0
        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));
        }