public async Task <Response> Handle(Command request, CancellationToken cancellationToken) { var session = await SessionRepository .Items() .Include(session => session.Ratings) .Where(session => session.Id == request.SessionId) .FirstAsync(cancellationToken); var currentUser = await CurrentUserAccessor.CurrentUser(); var manager = new SessionManager(SessionRepository, TitleRepository, session, currentUser.Id, Logger); var title = await manager.NextTitle(); Logger.LogDebug(title.ToJson()); return(new( title.Name, title.Id !, title.ReleaseYear, title.RunTime, // https://docs.microsoft.com/en-us/ef/core/querying/related-data // Need to specify that we want generes to be loaded new List <string>() // TODO include this originally )); }
public LoginController( SignInManager <User> signInManager, ILogger <LoginController> logger, CurrentUserAccessor currentUserAccessor, UserManager <User> userManager ) { SignInManager = signInManager; Logger = logger; CurrentUserAccessor = currentUserAccessor; UserManager = userManager; }
public async Task GetUserAsync_Should_Return_Expected_User() { // Arrange using var deps = Initialize(); var service = new CurrentUserAccessor(deps.Db); var dbUser = User.Create("Test User", "*****@*****.**"); deps.Db.Users.Add(dbUser); deps.Db.SaveChanges(); // Act var user = await service.GetUserAsync(default);
//TODO move this to attribure protected override void OnActionExecuting(ActionExecutingContext filterContext) { ViewBag.IsProduction = filterContext.HttpContext.Request.Url?.Host == "joinrpg.ru"; //TODO inject this from DI ICurrentUserAccessor accessor = new CurrentUserAccessor(); if (accessor.UserIdOrDefault != null) { ViewBag.UserDisplayName = accessor.DisplayName; ViewBag.GravatarHash = accessor.Email.GravatarHash().Trim(); } base.OnActionExecuting(filterContext); }
public async Task <LoginResultDTO> LogIn( [FromBody] LoginDTO details ) { Logger.LogCritical($"user: {JsonSerializer.Serialize(details)}"); var result = await SignInManager.PasswordSignInAsync(details.Username, details.Password, true, false); if (!result.Succeeded) { return(new LoginResultDTO { Success = false, Token = result.ToString() }); } var user = await CurrentUserAccessor.FindByUsername(details.Username); var token = JwtMiddleware.GenerateJwtToken(user, Logger); Logger.LogDebug($"Logged in {details.Username} with token {token}"); return(new LoginResultDTO { Success = true, Token = token, UserName = user.UserName }); }
public async Task <Response> Handle(Command request, CancellationToken cancellationToken) { // ignore undecided ones for now (they could pop again later...) if (request.Score == ScoreType.UNDECIDED) { return(new()); } var user = await CurrentUserAccessor.CurrentUser(); var rating = new Models.Rating() { User = user, TitleId = request.MovieId, SessionId = request.SessionId, Score = request.Score }; SessionRepository.AddRating(rating); await SessionRepository.Save(); return(new()); }