예제 #1
0
        } // nie uzywane jeszcze

        public SummonerInfoModel UpdateVerificationStatus(int id) // sprawdzanie zgodnosci kodow autoryzacyjnych
        {
            SummonerInfoModel dbEntry = _context.SummonerInfos
                                        .FirstOrDefault(s => s.id == id);

            if (dbEntry != null && dbEntry.LockedToAssign == false)
            {
                dbEntry.IsVerified      = true;
                dbEntry.ConectedAccount = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.Name).Value; // will give the user's userName
                dbEntry.ConnectedTime   = DateTime.Now;
                dbEntry.LockedToAssign  = true;
                _context.SaveChanges();

                Player dbPlayer = _playerRepository.Players
                                  .FirstOrDefault(p => p.ConnectedSummonerEmail == dbEntry.ConectedAccount);
                dbPlayer.ConectedSummoners = dbEntry;
                _playerRepository.SavePlayer(dbPlayer);

                return(dbEntry);
            }
            else
            {
                return(dbEntry);
            }
        }
예제 #2
0
        public SummonerInfoModel RegenerateCode(int id, string newCode) // na proźbe uzytkownika zmienia kod validacyjny
        {
            SummonerInfoModel dbEntry = _context.SummonerInfos
                                        .FirstOrDefault(s => s.id == id);

            if (dbEntry != null)
            {
                dbEntry.Code = newCode;
                _context.SaveChanges();
            }
            return(dbEntry);
        }
예제 #3
0
        } // zapisywanie,dodawanie danych summonera

        public SummonerInfoModel DeleteSummonerId(int summonerId)
        {
            SummonerInfoModel dbEntry = _context.SummonerInfos
                                        .FirstOrDefault(t => t.id == summonerId);

            if (dbEntry != null)
            {
                _context.SummonerInfos.Remove(dbEntry);
                _context.SaveChanges();
            }
            return(dbEntry);
        } // nie uzywane jeszcze
예제 #4
0
 public void SaveSummonerInfo(SummonerInfoModel summonerInfo)
 {
     if (summonerInfo.SummonerInfoID == 0)
     {
         _context.SummonerInfos.Add(summonerInfo);
     }
     else
     {
         SummonerInfoModel dbEntry = _context.SummonerInfos
                                     .FirstOrDefault(s => s.id == summonerInfo.id);
         if (dbEntry != null)
         {
             dbEntry.profileIconId = summonerInfo.profileIconId;
             dbEntry.name          = summonerInfo.name;
             dbEntry.summonerLevel = summonerInfo.summonerLevel;
             dbEntry.accountId     = summonerInfo.accountId;
             dbEntry.id            = summonerInfo.id;
             dbEntry.revisionDate  = summonerInfo.revisionDate;
         }
     }
     _context.SaveChanges();
 } // zapisywanie,dodawanie danych summonera
예제 #5
0
        public async Task <IActionResult> GetSummonerInfo(string nickname)
        {
            // JEZELI TAKI NICK JUZ JEST W BAZIE PRZEJDZ DALEJ BEZ UDZIAŁU RIOTAPI
            if (_repository.SummonerInfos.Where(s => s.name == nickname).Any())
            {
                var RecentID = _repository.SummonerInfos.Where(s => s.name == nickname).FirstOrDefault().id;  // przeszukanie bazy wedlug nickow i przypisanie jego ID

                if (User.IsInRole("Admin"))
                {
                    return(RedirectToAction("ListOfSummonerInfos"));
                }
                else if (User.IsInRole("Member"))
                {
                    HttpContext.Session.SetInt32("RecentID", (int)RecentID);
                    //TempData["RecentID"] = RecentID;
                }
                return(RedirectToAction("Index"));
            }
            // POBRANIE SUMMONERA Z RIOTAPI JEZELI JESZCZE NIE ISTNIEJE
            else
            {
                var result = await _riotApiService.GetSummonerInfoBasedOnNickname(nickname);

                if (result.name == null)
                {
                    TempData["SummonerDontExists"] = $"Nazwa przywoływacza:{nickname} jest błędna, lub nie istnieje na serwerze EUNE";

                    if (User.IsInRole("Admin"))
                    {
                        return(RedirectToAction("ListOfSummonerInfos"));
                    }
                    else if (User.IsInRole("Member"))
                    {
                    }
                    return(RedirectToAction("Index"));
                }

                SummonerInfoModel newSummoner = new SummonerInfoModel
                {
                    profileIconId = result.profileIconId,
                    name          = result.name,
                    summonerLevel = result.summonerLevel,
                    accountId     = result.accountId,
                    id            = result.id,
                    revisionDate  = result.revisionDate,

                    IsVerified      = result.IsVerified,
                    ConectedAccount = null,
                    AddTime         = DateTime.Now,

                    Code = _code.GenerateConnectionCode()
                };

                var RecentID = newSummoner.id;
                if (User.IsInRole("Admin"))
                {
                    HttpContext.Session.SetInt32("RecentID", (int)RecentID);
                    _repository.SaveSummonerInfo(newSummoner);
                    return(RedirectToAction("ListOfSummonerInfos"));
                }
                else if (User.IsInRole("Member"))
                {
                    HttpContext.Session.SetInt32("RecentID", (int)RecentID);
                    _repository.SaveSummonerInfo(newSummoner);
                }
                return(RedirectToAction("Index"));
            }
        }
예제 #6
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                ApplicationUser user;
                if (model.CreateTestAccount == true)
                {
                    user = new ApplicationUser {
                        UserName = model.Email, Email = model.Email, EmailConfirmed = true
                    };
                }
                else
                {
                    user = new ApplicationUser {
                        UserName = model.Email, Email = model.Email
                    };
                }
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    if (model.CreateTestAccount == true)
                    {
                        _logger.LogInformation("Create random generated user for tests.");
                        await _userManager.AddToRoleAsync(user, "Member");

                        _logger.LogInformation("User created a new test account.");

                        string            testUserName = "******" + (_playerRepository.Players.Count() + 1);
                        SummonerInfoModel testSummoner = new SummonerInfoModel
                        {
                            profileIconId   = 1,
                            name            = testUserName,
                            summonerLevel   = 100,
                            accountId       = 1000 + (_playerRepository.Players.Count() + 1),
                            id              = 1000 + (_playerRepository.Players.Count() + 1),
                            revisionDate    = 0,
                            IsVerified      = true,
                            ConectedAccount = model.Email,
                            AddTime         = DateTime.Now,
                            ConnectedTime   = DateTime.Now,
                            LockedToAssign  = true
                        };
                        _summonerRepository.SaveSummonerInfo(testSummoner);

                        Player testPlayer = new Player
                        {
                            ConectedSummoners      = _summonerRepository.SummonerInfos.Where(s => s.name == testUserName).FirstOrDefault(),
                            FirstName              = testUserName,
                            ConnectedSummonerEmail = user.Email,
                            Created = DateTime.Now
                        };
                        _playerRepository.CreateBasicPlayer(testPlayer);
                    }
                    else
                    {
                        _logger.LogInformation("User created a new account with password.");

                        var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                        await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                        //await _signInManager.SignInAsync(user, isPersistent: false); //nie zaloguje się po rejestracji bez potwierdzenia maila

                        await _userManager.AddToRoleAsync(user, "Member");

                        _logger.LogInformation("User created a new account with password.");

                        //nowo zarejestrowany użytkownik zostanie przypisany modelowi Player z przypisanym emailem
                        Player player = new Player
                        {
                            ConectedSummoners      = null,
                            FirstName              = null,
                            ConnectedSummonerEmail = user.Email,
                            Created = DateTime.Now
                        };
                        _playerRepository.CreateBasicPlayer(player);
                    }
                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }
            // If we got this far, something failed, redisplay form
            return(View(model));
        }