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