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