Пример #1
0
        public List <FlashCard> GetAllFlashCards(int deckID)
        {
            List <FlashCard> cardsList = new List <FlashCard>();

            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(SQL_GetAllCardsAssociatedWithDeck, conn);
                    cmd.Parameters.AddWithValue("@Deck_id", deckID);
                    SqlDataReader reader = cmd.ExecuteReader();


                    while (reader.Read())
                    {
                        FlashCard tempCard = new FlashCard();
                        tempCard.cardID   = Convert.ToInt32(reader["Card_id"]);
                        tempCard.question = Convert.ToString(reader["Question"]);
                        tempCard.answer   = Convert.ToString(reader["Answer"]);
                        tempCard.image    = Convert.ToString(reader["Image"]);
                        tempCard.tag      = Convert.ToString(reader["Name"]);
                        cardsList.Add(tempCard);
                    }
                }
            }
            catch (SqlException)
            {
                throw;
            }
            return(cardsList);
        }
Пример #2
0
        public bool UpdateCard(int id, FlashCard card)
        {
            int rowsAffected = -1;

            try
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    SqlCommand cmd = new SqlCommand(SQL_UpdateCard, connection);

                    cmd.Parameters.AddWithValue("@question", card.question);
                    cmd.Parameters.AddWithValue("@image", card.image);
                    cmd.Parameters.AddWithValue("@answer", card.answer);
                    cmd.Parameters.AddWithValue("@tagName", card.tag);
                    cmd.Parameters.AddWithValue("@cardId", card.cardID);

                    rowsAffected = cmd.ExecuteNonQuery();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(rowsAffected > 0);
        }
Пример #3
0
        public void CreateCard(FlashCard newCard, int deckID)
        {
            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(SQL_CreateNewCardInCardTable, conn);
                    cmd.Parameters.AddWithValue("@Question", newCard.question);
                    cmd.Parameters.AddWithValue("@Answer", newCard.answer);
                    cmd.Parameters.AddWithValue("@Image", newCard.image);
                    cardID = Convert.ToInt32(cmd.ExecuteScalar());

                    cmd = new SqlCommand(SQL_CreateNewTagInTagTable, conn);
                    cmd.Parameters.AddWithValue("@Name", newCard.tag);
                    tagID = Convert.ToInt32(cmd.ExecuteScalar());

                    cmd = new SqlCommand(SQL_CreateNewCardDeckRelationship, conn);
                    cmd.Parameters.AddWithValue("@Deck_id", deckID);
                    cmd.Parameters.AddWithValue("@Card_id", cardID);
                    cmd.ExecuteScalar();

                    cmd = new SqlCommand(SQL_CreateNewTagCardRelationship, conn);
                    cmd.Parameters.AddWithValue("@Card_id", cardID);
                    cmd.Parameters.AddWithValue("@Tag_id", tagID);
                    cmd.ExecuteScalar();
                }
            }
            catch (SqlException)
            {
                throw;
            }
        }
Пример #4
0
        public FlashCard GetSingleCard(int id)
        {
            FlashCard singleFlashCard = new FlashCard();

            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(SQL_GetSingleCard, conn);
                    cmd.Parameters.AddWithValue("@id", id);
                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        singleFlashCard.cardID   = Convert.ToInt32(reader["Card_id"]);
                        singleFlashCard.question = Convert.ToString(reader["Question"]);
                        singleFlashCard.image    = Convert.ToString(reader["Image"]);
                        singleFlashCard.answer   = Convert.ToString(reader["Answer"]);
                        singleFlashCard.tag      = Convert.ToString(reader["Name"]);
                    }
                }
            } catch (SqlException)
            {
                throw;
            }

            return(singleFlashCard);
        }
        private void VerifyFlashCards(Collection newCollection, IEnumerable <FlashCardCollection> flashcards)
        {
            foreach (var fc in flashcards)
            {
                var flashCard = _flashCardRepository.Obter(fcp => fcp.Question == fc.FlashCard.Question, i => i.Samples).SingleOrDefault();
                if (flashCard == null)
                {
                    flashCard = new FlashCard
                    {
                        Question = fc.FlashCard.Question,
                        Answer   = fc.FlashCard.Answer,
                        Status   = fc.FlashCard.Status,
                        Samples  = fc.FlashCard.Samples
                    };
                }
                else
                {
                    /*
                     * foreach (var sample in fc.FlashCard.Samples)
                     * {
                     *  flashCard.Samples.Add(sample);
                     * }*/
                }

                newCollection.AddFlashCard(flashCard, fc.Occurrences);
            }
        }
Пример #6
0
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            deckName = NavigationContext.QueryString["deck"];
            cardName = NavigationContext.QueryString["card"];
            var folder = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFolderAsync("decks", CreationCollisionOption.OpenIfExists);

            var stream = await(await(await folder.GetFolderAsync(deckName)).GetFileAsync(cardName)).OpenStreamForReadAsync();

            using (StreamReader reader = new StreamReader(stream))
            {
                string s = await reader.ReadToEndAsync();

                FlashCard f = JsonConvert.DeserializeObject <FlashCard>(s);
                panel.DataContext = f;
                foreach (var v in f.Definitions)
                {
                    PhoneTextBox box = new PhoneTextBox();
                    box.Style        = this.Resources["temp"] as Style;
                    box.Text         = v;
                    box.TextWrapping = TextWrapping.Wrap;
                    boxes.Add(box);
                    list.Children.Add(box);
                }
            }
        }
Пример #7
0
        public void FlashCard_Constructor()
        {
            // Données du test
            FlashCard cardTestOK = new FlashCard("test", "test");

            FlashCard cardTestEmpty1 = new FlashCard("", "test");
            FlashCard cardTestEmpty2 = new FlashCard("test", "");
            FlashCard cardTestEmpty3 = new FlashCard("", "");

            FlashCard cardTestSpace1 = new FlashCard("     ", "test");
            FlashCard cardTestSpace2 = new FlashCard("test", "    ");
            FlashCard cardTestSpace3 = new FlashCard("        ", "    ");

            FlashCard cardTestNull1 = new FlashCard(null, "test");
            FlashCard cardTestNull2 = new FlashCard("test", null);
            FlashCard cardTestNull3 = new FlashCard(null, null);

            // Test

            Boolean result1 = cardTestOK.IsCardOK();
            Boolean result2 = cardTestEmpty1.IsCardOK() || cardTestEmpty2.IsCardOK() || cardTestEmpty3.IsCardOK();
            Boolean result3 = cardTestSpace1.IsCardOK() || cardTestSpace2.IsCardOK() || cardTestSpace3.IsCardOK();
            Boolean result4 = cardTestNull1.IsCardOK() || cardTestNull2.IsCardOK() || cardTestNull3.IsCardOK();

            // Vérification

            Assert.IsTrue(result1, "Echec du test sur la valeur correct");
            Assert.IsFalse(result2, "Echec du test sur une chaîne de caractères vide");
            Assert.IsFalse(result3, "Echec du test sur une chaîne de caractère remplis d'espace");
            Assert.IsFalse(result4, "Echec du test sur une chaîne de caractère NULL");
        }
Пример #8
0
        public void IsCardAlreadyIn()
        {
            // Data
            FlashCard cardBase           = new FlashCard("test", "test");
            FlashCard cardReplica        = new FlashCard("test", "test");
            FlashCard cardOtherReference = cardBase;

            Quiz quizTest = new Quiz("quizTest");

            // Tests

            quizTest.AddCard(cardBase);
            Boolean result1 = (quizTest.GetCards().Count == 1);

            quizTest.AddCard(cardBase);
            Boolean result2 = (quizTest.GetCards().Count == 1);

            quizTest.GetCards().Clear();
            quizTest.AddCard(cardBase);
            quizTest.AddCard(cardReplica);
            Boolean result3 = (quizTest.GetCards().Count == 1);

            quizTest.GetCards().Clear();
            quizTest.AddCard(cardBase);
            quizTest.AddCard(cardOtherReference);
            Boolean result4 = (quizTest.GetCards().Count == 1);

            // Verification

            Assert.IsTrue(result1, "Erreur l'ajout d'une carte à un quiz vide ne fonctionne pas");
            Assert.IsTrue(result2, "Erreur l'ajout d'une carte deux fois au même quiz a été autorisé");
            Assert.IsTrue(result3, "Erreur l'ajout de deux carte différente mais dont les valeurs sont identiques a été autorisé");
            Assert.IsTrue(result4, "Erreur l'ajout d'une copie d'une carte avec une référence différente a été autorisé");
        }
Пример #9
0
        private async void ApplicationBarIconButton_Click(object sender, EventArgs e)
        {
            var folder = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFolderAsync("decks", CreationCollisionOption.OpenIfExists);

            folder = await folder.GetFolderAsync(deckName);

            ObservableCollection <string> ss = new ObservableCollection <string>();

            foreach (var v in boxes)
            {
                ss.Add(v.Text);
            }

            FlashCard f    = new FlashCard(cardName, ss);
            string    fs   = JsonConvert.SerializeObject(f);
            var       file = await folder.CreateFileAsync(cardName, CreationCollisionOption.ReplaceExisting);

            using (var stream = await file.OpenStreamForWriteAsync())
            {
                byte[] bytes = System.Text.Encoding.UTF8.GetBytes(fs.ToCharArray());
                await stream.WriteAsync(bytes, 0, bytes.Length);
            }

            NavigationService.GoBack();
        }
Пример #10
0
		/// <summary>
		/// Executes a docking station diagnostic operation.
		/// </summary>
		/// <returns>Docking station event</returns>
		public DockingStationEvent Execute()
		{
            // Initialize resource manager's culture to be same as current configuration culture.
            DiagnosticResources.Culture = Configuration.DockingStation.Language.Culture;
			
            // Make the return event and return diagnostic and wire them together.
            DiagnosticEvent dsEvent = new DiagnosticEvent( this );
            dsEvent.DockingStation = Controller.GetDockingStation(); // Retrieve IDS's complete information.

            // Make the builder for the details.
            DetailsBuilder details = new DetailsBuilder();

            details.AddDockingStation( dsEvent.DockingStation );

            // SGF  23-May-2011  INS-1741
            ReportDiagnosticDate(details);

            GeneralDiagnostic generalDiagnostic = new GeneralDiagnostic( Configuration.DockingStation.SerialNumber, DateTime.UtcNow );

            ExecuteDiagnostics( dsEvent, details );

			// Retrieve the details.
			dsEvent.Details = details.ToString();

			// Write the details to a log file.
            FlashCard.WriteTextFile( LAST_RUN_DETAILS_FILE_NAME, dsEvent.Details );

            dsEvent.Diagnostics.Add( generalDiagnostic );
            generalDiagnostic.Items = _gdpList.ToArray();

            return dsEvent;  // Return the event
		}
Пример #11
0
 protected void Page_Load(object sender, EventArgs e)
 {
     db = (FlashEntities)Session["db"];
     if (Session["user"] == null)
     {
         Response.Redirect("~/Default.aspx");
     }
     user = (Student)Session["user"];
     if (Session["quiz"] == null)
     {
         quiz            = new FlashCard();
         Session["quiz"] = quiz;
     }
     else
     {
         quiz = (FlashCard)Session["quiz"];
     }
     if (!IsPostBack)
     {
         quiz.Op            = "+";
         btnAnswer.Enabled  = false;
         lblQuestion.Text   = "----------";
         lblCorrect.Text    = "";
         lblWelcome.Text    = "Welcome " + user.FirstName + " " + user.LastName;
         lblMessage.Visible = false;
         lblCorrect.Visible = false;
     }
 }
Пример #12
0
        public void ViewModelTestEditACard()
        {
            Group m = new Group();

            m.Setup();

            m.testMode = true;
            FlashCard card    = new FlashCard("Question", "Answer", "Test");
            FlashCard newCard = new FlashCard("que", "ans", "Test");

            m.Cards.Add(card);
            FlashCardsViewModel vm = new FlashCardsViewModel("Test", m.Cards, m);

            vm.EditFlashCard(card, newCard);
            bool found = false;

            foreach (FlashCard f in vm.AllCards)
            {
                if (f.ToString() == card.ToString())
                {
                    found = true;
                }
            }
            Assert.IsFalse(found); // this should be false
        }
Пример #13
0
        public void ViewModelTestEditAGroup()
        {
            Group m = new Group();

            m.Setup();
            m.testMode = true;
            FirstPageViewModel vm = new FirstPageViewModel(m);

            vm.NewGroup = "Test";
            FlashCard card = new FlashCard("Example question", "Example answer", "Test");

            vm.AddGroupToList();
            ListOfUniqueGroups L = new ListOfUniqueGroups();

            vm.EditGroupName("Test", "Edit");
            bool found = false;

            foreach (FlashCard f in vm.FlashCards)
            {
                if (f.Group == card.Group)
                {
                    found = true;
                }
            }
            Assert.IsFalse(found); // this should be false
        }
Пример #14
0
        public ActionResult <List <FlashCard> > updateFlashCard([FromForm] FlashCard updatedCard, int id)
        {
            //for security, make sure that the id used in API call matches the id in the flashcard object that's passed in
            if (updatedCard.image == null)
            {
                updatedCard.image = "";
            }

            //make sure this card is, in fact, already existing in the DB
            var existingCard = Dal.GetSingleCard(id);

            if (existingCard == null || existingCard.cardID == 0)
            {
                return(NotFound());
            }

            //For fields passed in from the API ... if those fields are null, keep the existing data in the DB
            //For the fields passed in from API that are NOT null, update that data in the DB

            existingCard.question = updatedCard.question == "" ? existingCard.question : updatedCard.question;
            existingCard.image    = updatedCard.image == "" ? existingCard.image : updatedCard.image;
            existingCard.answer   = updatedCard.answer == "" ? existingCard.answer : updatedCard.answer;
            existingCard.tag      = updatedCard.tag == "" ? existingCard.tag : updatedCard.tag;

            bool isNowUpdated = Dal.UpdateCard(id, existingCard);

            if (isNowUpdated)
            {
                return(Dal.GetFlashCardsByTag(existingCard.tag));
            }
            return(NotFound());
        }
Пример #15
0
        public void FlashCard_IsStringValid()
        {
            // Données du test

            string ok          = "test OK";
            string emptyString = "";
            string nullString  = null;
            string spaceString = "       ";

            FlashCard cardTest = new FlashCard("test", "test");

            // Test

            Boolean Result1 = cardTest.IsStringValid(ok);
            Boolean Result2 = cardTest.IsStringValid(emptyString);
            Boolean Result3 = cardTest.IsStringValid(nullString);
            Boolean Result4 = cardTest.IsStringValid(spaceString);

            // Vérification

            Assert.IsTrue(Result1, "Echec du test sur la valeur correct");
            Assert.IsFalse(Result2, "Echec du test sur la valeur vide");
            Assert.IsFalse(Result3, "Echec du test sur la valeur null");
            Assert.IsFalse(Result4, "Echec du test sur la valeur espace");
        }
Пример #16
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Question,Answer,UserId")] FlashCard flashCard)
        {
            if (id != flashCard.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(flashCard);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FlashCardExists(flashCard.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["UserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", flashCard.UserId);
            return(View(flashCard));
        }
Пример #17
0
        public ActionResult AddFlashCard([Bind(Include = "ID,Word1,Word2,Image")] FlashCard flashCard)
        {
            int    id    = flashCard.ID;
            String Word1 = flashCard.Word1;

            String  Word2   = flashCard.Word2;
            Chapter chapter = db.Chapters.Find(flashCard.ID);
            int     rc      = chapter.FlashCards.FindLastIndex(a => a.ID > 0);

            rc++;
            flashCard.Word1  = Word1;
            flashCard.Word2  = Word2;
            flashCard.ID     = rc;
            flashCard.UserID = User.Identity.Name;
            HttpPostedFileBase file = Request.Files["Imagefile"];

            if (file != null && file.ContentLength > 0)
            {
                flashCard.Image = file.FileName;
                file.SaveAs(HttpContext.Server.MapPath("~/images/") + flashCard.Image);
            }
            db.FlashCards.Add(flashCard);
            chapter.FlashCards.Add(flashCard);
            db.Entry(chapter).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Details" + "/" + id));
        }
Пример #18
0
        public void ViewModelTestDeleteAGroup()
        {
            Group m = new Group();

            m.Setup();
            m.testMode = true;
            FirstPageViewModel vm = new FirstPageViewModel(m);

            vm.NewGroup = "Test";
            FlashCard card = new FlashCard("Example question", "Example answer", "Test");

            vm.AddGroupToList();
            ListOfUniqueGroups L = new ListOfUniqueGroups();

            L.Name = "Test";
            vm.DeleteItem(L);
            bool found = false;

            foreach (FlashCard f in vm.FlashCards)
            {
                if (f.ToString() == card.ToString())
                {
                    found = true;
                }
            }
            Assert.IsFalse(found); // this should be false
        }
Пример #19
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Welcome to the FLASH CARD quiz");
            FlashCard quiz = new FlashCard();

            Console.Write("Please select an operation (+, -, * or /)? ");
            quiz.Op = Console.ReadLine();
            Console.WriteLine("To exit the quiz enter a blank answer.");
            bool playing = true;

            while (playing)
            {
                string equation = quiz.BuildEquation();
                Console.Write(equation);
                string temp = Console.ReadLine();
                if (temp.Length == 0)
                {
                    playing = false;
                }
                else
                {
                    double answer = double.Parse(temp);
                    if (quiz.CheckAnswer(answer) == true)
                    {
                        Console.WriteLine("CORRECT");
                    }
                    else
                    {
                        Console.WriteLine("INCORRECT");
                    }
                }
            }
        }
Пример #20
0
    public void GetRandomQuestion()
    {
        int randomQuestionIndex = Random.Range(0, unansweredQuestions.Count);

        currentQuestion = unansweredQuestions[randomQuestionIndex];

        factText.text = currentQuestion.fact;
    }
        public ActionResult DeleteConfirmed(int id)
        {
            FlashCard flashCard = db.FlashCards.Find(id);

            db.FlashCards.Remove(flashCard);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #22
0
        public IActionResult Complete(int fId)
        {
            FlashCard leCurrent = dbContext.FlashCards.FirstOrDefault(a => a.FlashCardId == fId);

            leCurrent.IsComplete = true;
            dbContext.SaveChanges();
            return(RedirectToAction("Study", new { ChId = leCurrent.ChapterId }));
        }
Пример #23
0
        public EditFlashCardViewModel(FlashCard card, FlashCardsViewModel flashCardsViewModel)
        {
            this.oldFlashCard        = card;
            this.flashCardsViewModel = flashCardsViewModel;
            Question = card.Question;
            Answer   = card.Answer;

            SaveCommand = new Command(execute: SaveNewCard);
        }
Пример #24
0
        public static double TypingGameStart()
        {
            Console.WriteLine("Type without errors: ");
            FileStream fs   = new FileStream("dotnet.txt", FileMode.Open);
            Deck       deck = new Deck("CSharp");

            using (StreamReader sr = new StreamReader(fs))
            {
                String line;

                FlashCard card = new FlashCard();
                while ((line = sr.ReadLine()) != null)
                {
                    if (line.Count() > 4)//is valid line
                    {
                        //Console.WriteLine(line);
                        card          = new FlashCard();
                        card.Question = line;
                        deck.Add(card);
                    }
                }
            }
            deck.cards = deck.cards.Randomize();
            double points = 0;

            Stopwatch sw = Stopwatch.StartNew();

            for (int i = 0; i < 2; i++)
            {
                //Question must contain one word
                FlashCard c  = (FlashCard)deck.cards[i];
                Regex     rx = new Regex(@"\b([a-zA-Z]+)\b");

                if (rx.IsMatch(c.Question))
                {
                    var taa = "";
                    int j   = 0;

                    while (!taa.Equals(c.Question.Trim()) && j < 1)
                    {
                        Console.WriteLine("\n{0}", c.Question);
                        sw.Restart();
                        taa = Console.ReadLine();
                        sw.Stop();
                        j++;
                        if (taa.Equals(c.Question.Trim()))
                        {
                            points += 1;
                            /// sw.Elapsed.TotalSeconds;
                            Console.WriteLine("points: \n{0}\naverage: {1}", points, points / i);
                        }
                    }
                }
            }
            return(points);
        }
Пример #25
0
        /// <summary>
        /// function to enqueue more cards to the Cards card queue to keep the game going
        /// </summary>
        public void EnqueueCard()
        {
            Random    random = new Random();
            FlashCard fc     = new FlashCard(random.Next(0, 100), random.Next(0, 100), random.Next(0, 4));

            switch (fc.Operator)
            {
            case (0):     //add
                fc.OperatorSymbol = "+";
                fc.Answer         = fc.FirstOperand + fc.SecondOperand;
                break;

            case (1):                                   //subtract
                fc.OperatorSymbol = "-";
                if (fc.FirstOperand < fc.SecondOperand) //make sure the first operand is always greater than the second operand
                {
                    int temp = fc.FirstOperand;
                    fc.FirstOperand  = fc.SecondOperand;
                    fc.SecondOperand = temp;
                }
                fc.Answer = fc.FirstOperand - fc.SecondOperand;
                break;

            case (2):                                              //multiply
                fc.OperatorSymbol = "X";
                if (fc.FirstOperand > 10 && fc.SecondOperand > 10) //make sure at least one of the operands is <=10 for calculation simplicity
                {
                    int randomizer = random.Next(0, 2);            ///randomize the position of the operand <10 in the arithmetic problem
                    switch (randomizer)
                    {
                    case (0):
                        fc.FirstOperand = random.Next(0, 11);
                        break;

                    case (1):
                        fc.SecondOperand = random.Next(0, 11);
                        break;
                    }
                }
                fc.Answer = fc.FirstOperand * fc.SecondOperand;
                break;

            case (3):                                                                              //divide
                fc.OperatorSymbol = "/";
                fc.SecondOperand  = random.Next(1, 20);                                            //regenerate the second operand to prevent it from being 0 or too large
                if (fc.FirstOperand < fc.SecondOperand || fc.FirstOperand % fc.SecondOperand != 0) //make sure at least one of the operand or the answer of the problem is <=10 for calculation simplicity
                {
                    fc.FirstOperand = fc.SecondOperand * random.Next(1, 11);
                }

                fc.Answer = fc.FirstOperand / fc.SecondOperand;
                break;
            }
            Cards.Enqueue(fc);
            InputAnswer = null;
        }
Пример #26
0
        public void UpdateFlashCard(FlashCard frontEndCard)
        {
            FlashCard updateCard = FCContext.FCards.Single(x => x.Id == frontEndCard.Id);

            updateCard.Category = frontEndCard.Category;
            updateCard.Front    = frontEndCard.Front;
            updateCard.Back     = frontEndCard.Back;

            FCContext.SaveChanges();
        }
 public ActionResult Edit([Bind(Include = "CardId,CardType,Question,Answer")] FlashCard flashCard)
 {
     if (ModelState.IsValid)
     {
         db.Entry(flashCard).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(flashCard));
 }
Пример #28
0
        public bool NextFlashCard(out FlashCard card)
        {
            if (_gameState == GameState.NotReady || _gameState == GameState.Result)
            {
                throw new ServiceException("Invalid state");
            }

            if (_gameState != GameState.Ready && !_currentGuessed)
            {
                _skipNumber++;
            }

            if (_currentIndex == _cardList.Count)
            {
                _gameState   = GameState.Result;
                card         = null;
                _currentCard = null;
                return(false);
            }

            _gameState      = GameState.Playing;
            card            = _cardList.ElementAt(_currentIndex++);
            card.Number     = _currentIndex;
            _currentCard    = card;
            _currentGuessed = false;
            _currentWrong   = false;

            _hintCts?.Cancel();
            _hintCts = new CancellationTokenSource();

            if (ConfigurationService.Current.ShowHint)
            {
                Task.Factory.StartNew(() => RequestHint(_hintCts.Token));
            }

            if (_gameMode == GameMode.GuessMode)
            {
                _tangoService.Mark(_currentCard.Tango, Mark.Seen);

                var tmpTangoList = new List <Tango>(_tangoList);
                tmpTangoList.Shuffle();
                tmpTangoList.Remove(card.Tango);

                var correctIndex = new Random().Next(NumberOfCards);
                var guessList    = new List <Tango>();

                for (var i = 0; i < NumberOfCards; i++)
                {
                    guessList.Add(i == correctIndex ? card.Tango : tmpTangoList.ElementAt(i));
                }

                GuessTangoList = guessList;
            }
            return(true);
        }
Пример #29
0
 public IActionResult NewWordSubmit(FlashCard NewCard, int ChId)
 {
     if (ModelState.IsValid)
     {
         NewCard.ChapterId = ChId;
         dbContext.FlashCards.Add(NewCard);
         dbContext.SaveChanges();
         return(RedirectToAction("NewWord", new { ChId = ChId }));
     }
     return(View("NewWord"));
 }
        public ActionResult Create([Bind(Include = "CardId,CardType,Question,Answer")] FlashCard flashCard)
        {
            if (ModelState.IsValid)
            {
                db.FlashCards.Add(flashCard);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(flashCard));
        }