private List <Monster> GetAllMonsters()
        {
            List <Monster> monsters = null;

            FileIoStatus = FileIoMessage.None;
            if (_xmlBool)
            {
                try
                {
                    using (MonstersRepository monstersRepository = new MonstersRepository())
                    {
                        monsters = monstersRepository.GetAll() as List <Monster>;
                    };

                    if (monsters != null)
                    {
                        FileIoStatus = FileIoMessage.Complete;
                    }
                    else
                    {
                        FileIoStatus = FileIoMessage.NoRecordsFound;
                    }
                }
                catch (Exception)
                {
                    FileIoStatus = FileIoMessage.FileAccessError;
                }
            }
            else
            {
                monsters = MonsterSeedData.GenerateListOfMonsters();
            }

            return(monsters);
        }
 public ActionResult Index()
 {
     using (var db = MonstersRepository.Get())
     {
         return(View(new Tuple <IEnumerable <string>, IEnumerable <Monster> >(db.Categories, db.Monsters)));
     }
 }
        private Monster GetMonster(int id)
        {
            Monster monster = null;

            FileIoStatus = FileIoMessage.None;

            try
            {
                using (MonstersRepository monstersRepository = new MonstersRepository())
                {
                    monster = monstersRepository.GetById(id);
                };

                if (monster != null)
                {
                    FileIoStatus = FileIoMessage.Complete;
                }
                else
                {
                    FileIoStatus = FileIoMessage.RecordNotFound;
                }
            }
            catch (Exception)
            {
                FileIoStatus = FileIoMessage.FileAccessError;
            }

            return(monster);
        }
示例#4
0
 public ActionResult List()
 {
     using (var db = MonstersRepository.Get())
     {
         return(View("List", Tuple.Create(db.Monsters.AsEnumerable(), "")));
     }
 }
示例#5
0
        public ViewResult Search(string query, AdvancedSearchOptions opt)
        {
            var q       = (query ?? "").Trim().ToLower();
            var options = opt ?? new AdvancedSearchOptions();
            IEnumerable <Monster> results;

            if (string.IsNullOrWhiteSpace(query))
            {
                results = null;
            }
            else
            {
                var categories = options.Categories ?? new string[0];
                results = MonstersRepository.Get().Monsters
                          .Where(m =>
                                 (m.Name.ToLower().Contains(q) || m.Description.ToLower().Contains(q)) &&
                                 (!options.IsDangerous || m.IsDangerous) &&
                                 (categories.All(cat => m.Categories.Contains(cat))));
            }

            this.ViewBag.AllCategories = MonstersRepository.Get().Categories;
            return(View("Search", new SearchFormModel()
            {
                SearchString = q, Options = options, Results = results
            }));
        }
示例#6
0
 public ActionResult ListCategory(string category)
 {
     using (var db = MonstersRepository.Get())
     {
         var monstersInCategory = db.Monsters.Where(m => m.Categories.Contains(category));
         return(View("List", Tuple.Create(monstersInCategory, category)));
     }
 }
示例#7
0
 public ActionResult ShowExisting(int id)
 {
     using (var db = MonstersRepository.Get())
     {
         var monster = db.Monsters.FirstOrDefault(m => m.Id == id);
         if (monster == null)
         {
             return(HttpNotFound("Cannot find monster " + id));
         }
         return(MonsterView(monster));
     }
 }
示例#8
0
        public ActionResult Delete(int id)
        {
            using (var db = MonstersRepository.Get())
            {
                var monster = db.Monsters.FirstOrDefault(m => m.Id == id);
                if (monster != null)
                {
                    db.Monsters.Remove(monster);
                }
            }

            return(this.RedirectTo(SiteUrls.MonsterList));
        }
示例#9
0
        public ActionResult SaveNewOrExisting(int?id, Monster monster)
        {
            if (!this.ModelState.IsValid)
            {
                return(MonsterView(monster));
            }

            using (var db = MonstersRepository.Get())
            {
                // 'Add' works here even if it already exists in the collection--SaveChanges fixes things up.
                // (It's not a real application anyway:) Use the correct data access type shenanigans for your app.
                db.Monsters.Add(monster);
                db.SaveChanges();
            }

            return(this.RedirectTo(SiteUrls.MonsterDetail[monster.Id]));
        }
        public void AddMonster(Monster monster)
        {
            try
            {
                if (monster != null)
                {
                    using (MonstersRepository monstersRepository = new MonstersRepository())
                    {
                        monstersRepository.Add(monster);
                    };

                    FileIoStatus = FileIoMessage.Complete;
                }
            }
            catch (Exception)
            {
                FileIoStatus = FileIoMessage.FileAccessError;
            }
        }
        public void DeleteMonster(int id)
        {
            try
            {
                if (GetMonster(id) != null)
                {
                    using (MonstersRepository repo = new MonstersRepository())
                    {
                        repo.Delete(id);
                    }

                    FileIoStatus = FileIoMessage.Complete;
                }
                else
                {
                    FileIoStatus = FileIoMessage.RecordNotFound;
                }
            }
            catch (Exception)
            {
                FileIoStatus = FileIoMessage.FileAccessError;
            }
        }
        public void UpdateMonster(Monster updatedMonster)
        {
            try
            {
                if (GetMonster(updatedMonster.Id) != null)
                {
                    using (MonstersRepository repo = new MonstersRepository())
                    {
                        repo.Update(updatedMonster);
                    }

                    FileIoStatus = FileIoMessage.Complete;
                }
                else
                {
                    FileIoStatus = FileIoMessage.RecordNotFound;
                }
            }
            catch (Exception)
            {
                FileIoStatus = FileIoMessage.FileAccessError;
            }
        }
示例#13
0
 public ViewResult MonsterView(Monster monster)
 {
     this.ViewBag.AllCategories = MonstersRepository.Get().Categories;
     return(View("Detail", monster));
 }