Exemplo n.º 1
0
        public bool Delete(int id, [FromBody]string deleteQuestionPassword)
        {
            if (deleteQuestionPassword != "fred.51")
                return false;

            try
            {
                using (var db = new FlashCardsDb())
                {
                    FlashCardEntry e = (from n in db.FlashCards where n.FlashCardEntryId == id select n).FirstOrDefault();
                    if (e == null)
                        return false;

                    db.FlashCards.Remove(e);
                    db.SaveChanges();

                    //Now redo the numbering
                    int number = 0;
                    foreach (FlashCardEntry ent in db.FlashCards)
                    {
                        ent.FlashCardQuestionNumber = number++;
                    }

                    db.SaveChanges();

                    return true;
                }
            }
            catch (Exception ex)
            {

                return false;
            }
        }
        public IHttpActionResult Get()
        {
            FlashCardEntry ent = null;

            using (var db = new FlashCardsDb())
            {
                //Get count of entries using question number field.
                var lastEntry = db.FlashCards.OrderByDescending(i => i.FlashCardQuestionNumber).FirstOrDefault();

                if (lastEntry == null)
                    return NotFound();

                //Create random number generator
                Random rnd = new Random((int)System.DateTime.Now.Ticks);

                //set max tries
                int count = 0;

                do
                {
                    //get random number value
                    int value = rnd.Next(lastEntry.FlashCardQuestionNumber + 1) ;

                    var result = (from c in db.FlashCards
                                  where c.FlashCardQuestionNumber == value
                                  select new
                                  {
                                      FlashCardEntryId = c.FlashCardEntryId,
                                      Question = c.Question,
                                      Answer = c.Answer,
                                      FlashCardQuestionNumber = c.FlashCardQuestionNumber
                                  }).SingleOrDefault();

                    if (result != null)
                    {
                        ent = new FlashCardEntry();
                        ent.Answer = result.Answer;
                        ent.FlashCardEntryId = result.FlashCardEntryId;
                        ent.Question = result.Question;
                    }

                } while (ent == null && count < 10);

                if (ent == null)
                    return NotFound();

                return Ok(ent);
            }
        }
Exemplo n.º 3
0
        public ActionResult Index()
        {
            ViewBag.FlashCardCount = "--";

            //Get number of flash cards
            using (var db = new FlashCardsDb())
            {
                //Get count of entries using question number field.
                var lastEntry = db.FlashCards.OrderByDescending(i => i.FlashCardQuestionNumber).FirstOrDefault();

                if (lastEntry != null)
                {
                    ViewBag.FlashCardCount = lastEntry.FlashCardQuestionNumber;
                }
            }

            ViewBag.Title = "Home Page";

            return View();
        }
Exemplo n.º 4
0
        public IHttpActionResult Get(int id)
        {
            using (var db = new FlashCardsDb())
            {
                var result = (from c in db.FlashCards
                             where c.FlashCardEntryId == id
                             select new
                             {
                                 FlashCardEntryId = c.FlashCardEntryId,
                                 Question = c.Question,
                                 Answer = c.Answer
                             }).SingleOrDefault();

                if (result == null)
                    return NotFound();

                FlashCardEntry ent = new FlashCardEntry();
                ent.Answer = result.Answer;
                ent.FlashCardEntryId = result.FlashCardEntryId;
                    ent.Question = result.Question;

                return Ok(ent);
            }
        }
Exemplo n.º 5
0
 public FlashCardsController()
 {
     db = new FlashCardsDb();
     db.Configuration.ProxyCreationEnabled = false;
 }
Exemplo n.º 6
0
        public bool Post(string addQuestionPassword, [FromBody]string questionList)
        {
            if (addQuestionPassword != "fred.51")
                return false;

            //Parse incoming list into entries
            List<FlashCardEntry> entries = ParseData(questionList);

            //Add new entries into the datbase

            using (var db = new FlashCardsDb())
            {
                try
                {

                    foreach (FlashCardEntry e in entries)
                    {
                        bool found = false;
                        foreach (FlashCardEntry dbEntry in db.FlashCards)
                        {
                            if (dbEntry.Question.ToUpper().Trim() == e.Question.ToUpper().Trim())
                            {
                                //update answer if found
                                dbEntry.Answer = e.Answer;
                                found = true;
                                break;
                            }

                            if (found)
                                break;
                        }

                        //not found, so insert
                        if (!found)
                            db.FlashCards.Add(e);
                    }

                    db.SaveChanges();

                    //Now redo the numbering
                    int number = 0;
                    foreach (FlashCardEntry ent in db.FlashCards)
                    {
                        ent.FlashCardQuestionNumber = number++;
                    }

                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    return false;
                }

            }

            return true;
        }