Exemplo n.º 1
0
        public void DecideWhatToDo()
        {
            SavePoints();
            User user = null;

            if (points >= 10)
            {
                user = userRepo.GetUserAsync(bestCandidate).Result;
                var room = roomRepo.GetRoomAsync(user.RoomNumber).Result;
                if (!RoomHasFreeSlot(room))
                {
                    ContactWithAdmin();
                }
                else
                {
                    Accomodate(room);
                }
            }
            else
            {
                var room = FindFreeRoom();
                if (room == null)
                {
                    var roomBestCandidate = roomRepo.GetRoomAsync(user.RoomNumber).Result;
                    if (!RoomHasFreeSlot(roomBestCandidate))
                    {
                        ContactWithAdmin();
                    }
                    else
                    {
                        Accomodate(roomBestCandidate);
                    }
                }
                else
                {
                    room.StudentA        = this.user.Index;
                    this.user.RoomNumber = room.RoomNumber;
                    roomRepo.SaveRoomAsync(room);
                    userRepo.SaveUserAsync(this.user);
                    Wynik = $"Twój pokój to {room.RoomNumber}.";
                }
            }
        }