public void ChangeUserPosition(int row, int column) { var userID = _userManager.GetUserId(HttpContext.User); //Узнаем ID текущего пользователя ApUser = _context.Users.Find(userID); //Устанавливаем в экземпляр ApUser пользователя из контекста по ID if (ApUser == null) //если его ВДРУГ нет, возвращаем NotFound { RedirectToPage("/Error"); } char[] userSequence = ApUser.Sequence.ToCharArray(); //получаем последовательность посимвольно вида "xxxxx", где х = 0 или 1 int userColumn = int.Parse(userSequence[row].ToString()); //узнаем столбец на указанной строке if (userColumn == column) //сравниваем значение столбца { switch (row) //выбираем строку для смены позиции { case 0: ApUser.Position = 2; break; case 1: ApUser.Position = 3; break; case 2: ApUser.Position = 4; break; case 3: ApUser.Position = 5; break; case 4: ApUser.Position = 99; break; default: ApUser.Position = 95; break; } } else { ApUser.Position = 95; } _context.Attach(ApUser).State = EntityState.Modified; _context.SaveChanges(); ButtonPropList.ForEach((x) => x.Disabled = true); }
public async Task <IActionResult> OnGetAsync() { MainButMessage = "Новая игра"; if (!User.Identity.IsAuthenticated)//проверка на авторизацию { ButtonPropList.ForEach((x) => x.Disabled = true); return(Page()); } else { var userID = _userManager.GetUserId(HttpContext.User); //Узнаем ID текущего пользователя ApUser = await _context.Users.FindAsync(userID); //Устанавливаем в экземпляр ApUser пользователя из контекста по ID if (ApUser == null) //если его ВДРУГ нет, возвращаем NotFound { return(NotFound()); } //ApUser.Score = 5000;//изменяем данные о пользователя //await _context.SaveChangesAsync();//асинхронно сохраняем изменения в контексте switch (ApUser.Position) { case 0: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(0); MainButMessage = "Новая игра"; WinLoseMessage = SitMessage.GetMessage(0); break; case 1: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(1, 2); MainButMessage = "Новая игра"; WinLoseMessage = SitMessage.GetMessage(1); break; case 2: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(0, 3, 4); MainButMessage = "Забрать очки"; WinLoseMessage = SitMessage.GetMessage(2); break; case 3: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(0, 5, 6); MainButMessage = "Забрать очки"; WinLoseMessage = SitMessage.GetMessage(3); break; case 4: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(0, 7, 8); MainButMessage = "Забрать очки"; WinLoseMessage = SitMessage.GetMessage(4); break; case 5: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(0, 9, 10); MainButMessage = "Забрать очки"; WinLoseMessage = SitMessage.GetMessage(5); break; case 99: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(0); MainButMessage = "Забрать очки"; WinLoseMessage = SitMessage.GetMessage(6); break; case 95: ButtonPropList.ForEach((x) => x.Disabled = true); ButtonsEnable(0); MainButMessage = "Новая игра"; WinLoseMessage = SitMessage.GetMessage(7); ApUser.Position = 0; break; default: return(RedirectToPage("/Error")); } ScoreMessage = ApUser.Score.ToString(); return(Page()); } }