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