Пример #1
0
        public static (bool, User) CheckClaimsForUser(DTORequest request, HttpContext context, IUserRepository userRepository)
        {
            if (request == null)
            {
                context.Response.StatusCode = StatusCodes.Status400BadRequest;
                return(false, null);
            }

            ClaimsPrincipal claims = context.User;

            if (claims == null)
            {
                context.Response.StatusCode = StatusCodes.Status401Unauthorized;
                context.Response.WriteAsync("no claims").GetAwaiter().GetResult();
                return(false, null);
            }

            User user = userRepository.GetUserByClaims(claims).GetAwaiter().GetResult();

            if (user == null)
            {
                context.Response.StatusCode = StatusCodes.Status400BadRequest;
                context.Response.WriteAsync("no user for this client_id").GetAwaiter().GetResult();
                return(false, null);
            }

            return(true, user);
        }
        public override async Task <Result> Delete(DTORequest request, ServerCallContext context)
        {
            var entityType = GetEntityType(request.TypeName);
            await Repository.DeleteAsync(entityType, request.KeyValue);

            Console.WriteLine($"1 {request.TypeName} deleted with a key of {request.KeyValue}.");

            return(new Result());
        }
        public override async Task <Any> Get(DTORequest request, ServerCallContext context)
        {
            var entityType = GetEntityType(request.TypeName);

            var dtoType = GetDTOType(request.TypeName);

            var entity = await Repository.GetAsync(entityType, request.KeyValue);

            var message = (IMessage)_FromEntityMapper.Map(entity, entityType, dtoType);

            Console.WriteLine($"1 {request.TypeName} returned with a key of {request.KeyValue}.");

            return(Any.Pack(message));
        }