Example #1
0
        public async Task <IActionResult> Index(GameInvitationModel gameInvitationModel, [FromServices] IEmailService emailService) //[fromservices] Umożliwia wstawianie usługi bezpośrednio do metody akcji bez przy użyciu iniekcji konstruktora:
        {
            var gameInvitationService = Request.HttpContext.RequestServices.GetService <IGameInvitationService>();                  //Pobiera lub ustawia IServiceProvider, który zapewnia dostęp do kontenera usług żądania.

            if (ModelState.IsValid)
            {
                try
                {
                    var invitationModel = new InvitationEmailModel // Stworzenia InivatationEmialModel
                    {
                        DisplayName     = $"{gameInvitationModel.EmailTo}",
                        InvitedBy       = await _userService.GetUserByEmail(gameInvitationModel.InvitedBy),
                        ConfirmationUrl = Url.Action("ConfirmGameInvitation", "GameInvitation", // Url.Action Generuje ciąg do pełnego adresu URL do metody akcji.
                                                     new { id = gameInvitationModel.Id }, Request.Scheme, Request.Host.ToString()),
                        InvitedDate = gameInvitationModel.ConfirmationDate
                    };

                    var emailRenderService = HttpContext.RequestServices.GetService <IEmailTemplateRenderService>(); // //Pobiera lub ustawia IServiceProvider, który zapewnia dostęp do kontenera usług żądania.
                    var message            = await emailRenderService.RenderTemplate <InvitationEmailModel>("EmailTemplates/InvitationEmail", invitationModel, Request.Host.ToString());

                    //message = wygenerowana wiadomość na podstawie EmailTemplates/InvitationEmail
                    //Request.Host()Pobiera lub ustawia wartość nagłówka hosta, która będzie używana w żądaniu HTTP niezależnym od identyfikatora URI żądania.
                    await emailService.SendEmail(gameInvitationModel.EmailTo, _stringLocalizer["Zaproszenie do gry w kółko i krzyżyk"], message);                     // Wysyła email z daną wiadomością
                }
                catch
                {
                }

                var invitation = gameInvitationService.Add(gameInvitationModel).Result;                      // dodanie zaproszenia do gry do bazy danych
                return(RedirectToAction("GameInvitationConfirmation", new { id = gameInvitationModel.Id })); // przekierowanie do akcji GameInivtationConfirmation z gameinvitationModel.Id
            }
            return(View(gameInvitationModel));                                                               // w przypadku gdy model nie jest valid zwrócenie akutalnego widoku
        }
 public Task <GameInvitationModel> Add(GameInvitationModel
                                       gameInvitationModel)
 {
     gameInvitationModel.Id = Guid.NewGuid();
     _gameInvitations.Add(gameInvitationModel);
     return(Task.FromResult(gameInvitationModel));
 }
        public async Task <IActionResult> Index(GameInvitationModel gameInvitationModel, [FromServices] IEmailService emailService)
        {
            var gameInvitationService = Request.HttpContext.RequestServices.GetService <IGameInvitationService>();

            if (ModelState.IsValid)
            {
                try
                {
                    var invitationModel = new InvitationEmailModel
                    {
                        DisplayName     = $"{gameInvitationModel.EmailTo}",
                        InvitedBy       = await _userService.GetUserByEmail(gameInvitationModel.InvitedBy),
                        ConfirmationUrl = Url.Action("ConfirmGameInvitation", "GameInvitation",
                                                     new { id = gameInvitationModel.Id }, Request.Scheme, Request.Host.ToString()),
                        InvitedDate = gameInvitationModel.ConfirmationDate
                    };

                    var emailRenderService = HttpContext.RequestServices.GetService <IEmailTemplateRenderService>();
                    var message            = await emailRenderService.RenderTemplate <InvitationEmailModel>("EmailTemplates/InvitationEmail", invitationModel, Request.Host.ToString());

                    await emailService.SendEmail(gameInvitationModel.EmailTo, _stringLocalizer["Invitation for playing a Tic-Tac-Toe game"], message);
                }
                catch
                {
                }

                var invitation = gameInvitationService.Add(gameInvitationModel).Result;
                return(RedirectToAction("GameInvitationConfirmation", new { id = gameInvitationModel.Id }));
            }
            return(View(gameInvitationModel));
        }
 public Task Update(GameInvitationModel gameInvitationModel)
 {
     _gameInvitations = new ConcurrentBag <GameInvitationModel>(_gameInvitations.Where(x => x.Id != gameInvitationModel.Id))
     {
         gameInvitationModel
     };
     return(Task.CompletedTask);
 }
 public Task Update(GameInvitationModel gameInvitationModel) // zaktualizowanie instancji GameInivtationmodel
 {
     _gameInvitations = new ConcurrentBag <GameInvitationModel>(_gameInvitations.Where(x => x.Id != gameInvitationModel.Id))
     {
         gameInvitationModel
     };
     return(Task.CompletedTask);
 }
        public async Task <IActionResult> Index(string email)
        {
            var gameInvitationModel = new GameInvitationModel {
                InvitedBy = email
            };

            return(View(gameInvitationModel));
        }
 public IActionResult Index(string email)
 {
     var gameInvitationModel = new GameInvitationModel
     {
         InvitedBy = email
     };
     HttpContext.Session.SetString("email", email);
     return View(gameInvitationModel);
 }
        public async Task <IActionResult> Index(Guid invitedBy)
        {
            var invitingUser = await _userService.GetUserById(invitedBy);

            var invitationModel = new GameInvitationModel
            {
                InvitedBy = invitingUser.Email
            };

            return(View(invitationModel));
        }
Example #9
0
        public async Task <IActionResult> Index(string email)
        {
            var gameInvitationModel = new GameInvitationModel {
                InvitedBy = email, Id = Guid.NewGuid()
            };

            HttpContext.Session.SetString("email", email);
            var user = await _userService.GetUserByEmail(email);

            Request.HttpContext.Session.SetString("displayName", $"{user.FirstName} {user.LastName}");
            return(View(gameInvitationModel));
        }
Example #10
0
        public IActionResult InviteOpponent([FromBody] GameInvitationModel invitation)
        {
            Player player          = GetPlayer();
            var    isChallangeSent = _gameEngine.TryInvitePlayerToGame(player, invitation.Opponent);

            if (isChallangeSent)
            {
                return(Ok());
            }

            return(BadRequest("Opponent not available"));
        }
Example #11
0
        public async Task <IActionResult> Index(string email)
        {
            var gameInvitationModel = new GameInvitationModel {
                InvitedBy = email, Id = Guid.NewGuid()
            };                                                                                         // Stworzenie nowego modelu zaproszenia do gry

            Request.HttpContext.Session.SetString("email", email);                                     // Przechowywanie w sesji email'a
            var user = await _userService.GetUserByEmail(email);                                       // pobranie user'a na podstawie email

            Request.HttpContext.Session.SetString("displayName", $"{user.FirstName} {user.LastName}"); // przechowywanie w sesji displayName
            return(View(gameInvitationModel));                                                         // zwrócenie widoku gameInvitationModel
        }
        public IActionResult Index(string email)
        {
            var culture = Request.HttpContext.Session.GetString("culture");

            ViewBag.Language = culture;

            var gameInvitationModel = new GameInvitationModel {
                InvitedBy = email
            };

            HttpContext.Session.SetString("email", email);
            return(View(gameInvitationModel));
        }
        public IActionResult Index(GameInvitationModel gameInvitationModel, [FromServices] IEmailService emailService)
        {
            var gameInvitationService = Request.HttpContext.RequestServices.GetService <IGameInvitationService>();

            if (ModelState.IsValid)
            {
                emailService.SendEmail(gameInvitationModel.EmailTo, _stringLocalizer["Invitation for playing a Tic-Tac-Toe game"],
                                       _stringLocalizer[$"Hello, you have been invited to play the Tic-Tac-Toe game by {0}. For joining the game, please click here {1}",
                                                        gameInvitationModel.InvitedBy, Url.Action("GameInvitationConfirmation", "GameInvitation",
                                                                                                  new { gameInvitationModel.InvitedBy, gameInvitationModel.EmailTo }, Request.Scheme, Request.Host.ToString())]);

                var invitation = gameInvitationService.Add(gameInvitationModel).Result;
                return(RedirectToAction("GameInvitationConfirmation", new { id = invitation.Id }));
            }
            return(View(gameInvitationModel));
        }
Example #14
0
        public IActionResult Put(Guid id, [FromBody] GameInvitationModel invitation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var invitedPlayer = _userService.GetUserByEmail(invitation.EmailTo);

            if (invitedPlayer == null)
            {
                return(BadRequest());
            }

            _gameInvitationService.Update(invitation);
            return(Ok());
        }
        public async Task <IActionResult> Post([FromBody] GameInvitationModel invitation)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var invitedPlayer = await _userService.GetUserByEmail(invitation.EmailTo);

            if (invitedPlayer == null)
            {
                return(BadRequest());
            }

            await _gameInvitationService.Add(invitation);

            return(Ok());
        }
Example #16
0
        public IActionResult Index(GameInvitationModel gameInvitationModel,
                                   [FromServices] IEmailService emailService)
        {
            var gameInvitationService =
                Request.HttpContext.RequestServices.GetService <IGameInvitationService>();

            if (ModelState.IsValid)
            {
                emailService.SendEmail(gameInvitationModel.EmailTo,
                                       _stringLocalizer["Invitation to game TicTactoe"],
                                       _stringLocalizer[$"Welcome, {0} invites you to game TicTacTo. To join, click here {1}",
                                                        gameInvitationModel.InvitedBy, Url.Action("GameInvitationConfirmation", "GameInvitation", new
                {
                    gameInvitationModel.InvitedBy,
                    gameInvitationModel.EmailTo
                }, Request.Scheme, Request.Host.ToString())]);
                var invitation = gameInvitationService.Add(gameInvitationModel).Result;
                return(RedirectToAction("GameInvitationConfirmation", new { id = invitation.Id }));
            }

            return(View(gameInvitationModel));
        }
 //public Task<GameInvitationModel> Add(GameInvitationModel
 // gameInvitationModel)
 //{
 //    gameInvitationModel.Id = Guid.NewGuid();
 //    _gameInvitations.Add(gameInvitationModel);
 //    return Task.FromResult(gameInvitationModel);
 //}
 public Task <GameInvitationModel> Add(GameInvitationModel gameInvitationModel)
 {
     _gameInvitations.Add(gameInvitationModel);
     return(Task.FromResult(gameInvitationModel));
 }
 public IActionResult Index(GameInvitationModel gameInvitationModel)
 {
     return Content(m_stringLocalizer["GameInvitationConfirmationMessage", 
         gameInvitationModel.EmailTo]);
 }
 public Task <GameInvitationModel> Add(GameInvitationModel gameInvitationModel) // dodanie do concurent bag'a zaproszenia do gry
 {
     _gameInvitations.Add(gameInvitationModel);
     return(Task.FromResult(gameInvitationModel));
 }