public async Task <IActionResult> Create(SubCompetitionAndCompetitionViewModel model)
        {
            if (ModelState.IsValid)
            {
                var doesSubCompetitionExists = _db.SubCompetition.Include(s => s.Competition).Where(s => s.Name == model.SubCompetition.Name && s.Competition.Id == model.SubCompetition.CompetitionId);

                if (doesSubCompetitionExists.Count() > 0)
                {
                    //Error
                    StatusMessage = "Error : Sub Competition exists under " + doesSubCompetitionExists.First().Competition.Name + " Competition. Please use another name. ";
                }
                else
                {
                    _db.SubCompetition.Add(model.SubCompetition);
                    await _db.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
            }
            SubCompetitionAndCompetitionViewModel modelVM = new SubCompetitionAndCompetitionViewModel()
            {
                CompetitionList    = await _db.Competition.ToListAsync(),
                SubCompetition     = model.SubCompetition,
                SubCompetitionList = await _db.SubCompetition.OrderBy(p => p.Name).Select(p => p.Name).ToListAsync(),
                StatusMessage      = StatusMessage
            };

            return(View(modelVM));
        }
        //GET - CREATE
        public async Task <IActionResult> Create()
        {
            SubCompetitionAndCompetitionViewModel model = new SubCompetitionAndCompetitionViewModel()
            {
                CompetitionList    = await _db.Competition.ToListAsync(),
                SubCompetition     = new Models.SubCompetition(),
                SubCompetitionList = await _db.SubCompetition.OrderBy(p => p.Name).Select(p => p.Name).Distinct().ToListAsync()
            };

            return(View(model));
        }
        //GET - EDIT
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var subCompetition = await _db.SubCompetition.SingleOrDefaultAsync(m => m.Id == id);

            if (subCompetition == null)
            {
                return(NotFound());
            }

            SubCompetitionAndCompetitionViewModel model = new SubCompetitionAndCompetitionViewModel()
            {
                CompetitionList    = await _db.Competition.ToListAsync(),
                SubCompetition     = subCompetition,
                SubCompetitionList = await _db.SubCompetition.OrderBy(p => p.Name).Select(p => p.Name).Distinct().ToListAsync()
            };

            return(View(model));
        }