Exemplo n.º 1
0
        public async Task <IActionResult> Add([Bind("ID,Fee,NumberOfSessions,CamperID,ActivityID")] CamperActivity camperActivity, string CamperName)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    _context.Add(camperActivity);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Index", new { camperActivity.CamperID }));
                }
            }
            catch (DbUpdateException dex)
            {
                if (dex.InnerException.Message.ToUpper().Contains("UNIQUE"))
                {
                    ModelState.AddModelError("ActivityID", "Unable to save changes. Remember, a camper canot be in an activity more then once.");
                }
                else
                {
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
                }
            }

            PopulateDropDownLists(camperActivity);
            ViewData["CamperName"] = CamperName;
            return(View(camperActivity));
        }
Exemplo n.º 2
0
        // GET: CamperActivities/ADD
        public IActionResult Add(int?CamperID, string CamperName)
        {
            if (!CamperID.HasValue)
            {
                return(RedirectToAction("Index", "Campers"));
            }
            ViewData["CamperName"] = CamperName;
            CamperActivity a = new CamperActivity()
            {
                CamperID = CamperID.GetValueOrDefault()
            };

            PopulateDropDownLists();
            return(View(a));
        }
Exemplo n.º 3
0
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new CampOrnoContext(
                       serviceProvider.GetRequiredService <DbContextOptions <CampOrnoContext> >()))
            {
                //Create sample data with some random values
                Random random = new Random();

                string[] firstNames = new string[] { "Fred", "Barney", "Wilma", "Betty" };
                string[] kidNames   = new string[] { "Woodstock", "Sally", "Violet", "Charlie", "Lucy", "Linus", "Franklin", "Marcie", "Schroeder" };
                string[] lastNames  = new string[] { "Stovell", "Jones", "Bloggs", "Flintstone", "Rubble", "Brown", "Smith", "Daniel" };
                string[] nicknames  = new string[] { "Hightower", "Wizard", "Kingfisher", "Prometheus", "Broomspun", "Shooter", "Chuckles" };
                string[] compounds  = new string[] { "Nestlings", "Fledglings", "Sharpies" };
                string[] diets      = new string[] { "Peanuts", "Shellfish", "Gluten", "Lactose", "Halal" };
                string[] genders    = new string[] { "M", "F", "N", "T", "O" };
                string[] activities = new string[] { "Canoeing", "Archery", "Ice Fishing", "Karate", "Coding" };

                //For seeding pictures
                string[] pictures = new string[] { "Barney.png", "blankProfile.png", "Fred.png", "Pebbles.png", "Wilma.png" };

                //For Part 5
                //Activities
                if (!context.Activities.Any())
                {
                    //loop through the array of Compound names
                    foreach (string a in activities)
                    {
                        Activity act = new Activity()
                        {
                            Name = a
                        };
                        context.Activities.Add(act);
                    }
                    context.SaveChanges();
                }

                //Dietary Restrictions
                if (!context.DietaryRestrictions.Any())
                {
                    //loop through the array of Compound names
                    foreach (string d in diets)
                    {
                        DietaryRestriction diet = new DietaryRestriction()
                        {
                            Name = d
                        };
                        context.DietaryRestrictions.Add(diet);
                    }
                    context.SaveChanges();
                }

                //Compounds
                if (!context.Compounds.Any())
                {
                    //loop through the array of Compound names
                    foreach (string c in compounds)
                    {
                        Compound compound = new Compound()
                        {
                            Name = c
                        };
                        context.Compounds.Add(compound);
                    }
                    context.SaveChanges();
                }
                //Counselors
                if (context.Counselors.Count() == 0)
                {
                    List <Counselor> counselors = new List <Counselor>();
                    foreach (string lastName in lastNames)
                    {
                        foreach (string firstname in firstNames)
                        {
                            //Construct some counselor details
                            Counselor newCounselor = new Counselor()
                            {
                                FirstName  = firstname,
                                LastName   = lastName,
                                MiddleName = lastName[1].ToString().ToUpper(),
                                SIN        = random.Next(213214131, 989898989).ToString(),
                            };
                            counselors.Add(newCounselor);
                        }
                    }
                    //Now give a few of them nicknames.
                    //We don't want any duplicates so choose one counselor
                    //for each nickname
                    int numNames      = nicknames.Count();
                    int numCounselors = counselors.Count();
                    for (int i = 0; i < numNames; i++)
                    {
                        counselors[random.Next(0, numNames)].Nickname = nicknames[i];
                    }
                    //Now add your list into the DbSet
                    context.Counselors.AddRange(counselors);
                    context.SaveChanges();
                }
                //Create collections of the primary keys
                int[] counselorIDs     = context.Counselors.Select(a => a.ID).ToArray();
                int   counselorIDCount = counselorIDs.Count();
                int[] compoundIDs      = context.Compounds.Select(a => a.ID).ToArray();
                int   compoundIDCount  = compoundIDs.Count();
                int   genderCount      = genders.Count();
                int   pictureCount     = pictures.Count();

                //Campers
                if (!context.Campers.Any())
                {
                    // Start birthdate for randomly produced campers
                    // We will subtract a random number of days from today
                    DateTime startDOB = DateTime.Today;

                    List <Camper> campers = new List <Camper>();
                    int           toggle  = 1; //Used to alternate assigning counselors
                    foreach (string lastName in lastNames)
                    {
                        foreach (string kidname in kidNames)
                        {
                            //Construct some employee details
                            Camper newCamper = new Camper()
                            {
                                FirstName  = kidname,
                                LastName   = lastName,
                                MiddleName = kidname[1].ToString().ToUpper(),
                                DOB        = startDOB.AddDays(-random.Next(1480, 5800)),
                                Gender     = genders[random.Next(genderCount)],
                                //Uncomment these lines to seed profile pictures
                                //imageContent = imageToBytes("wwwroot/pictures/" + pictures[random.Next(pictureCount)]),
                                //imageMimeType = "image/png",
                                //imageFileName = "Profile.png",
                                eMail      = (kidname.Substring(0, 2) + lastName + random.Next(11, 111).ToString() + "@outlook.com").ToLower(),
                                Phone      = Convert.ToInt64(random.Next(2, 10).ToString() + random.Next(213214131, 989898989).ToString()),
                                CompoundID = compoundIDs[random.Next(compoundIDCount)]
                            };
                            if (toggle % 2 == 0)//Every second camper gets a lead counselor assigned
                            {
                                newCamper.CounselorID = counselorIDs[random.Next(counselorIDCount)];
                            }
                            toggle++;
                            campers.Add(newCamper);
                        }
                    }
                    //Now add your list into the DbSet
                    context.Campers.AddRange(campers);
                    context.SaveChanges();
                }

                //Create collections of the primary keys
                int[] camperIDs                 = context.Campers.Select(a => a.ID).ToArray();
                int   camperIDCount             = camperIDs.Count();
                int[] dietaryRestrictionIDs     = context.DietaryRestrictions.Select(a => a.ID).ToArray();
                int   dietaryRestrictionIDCount = dietaryRestrictionIDs.Count();
                //For Part 5
                int[] activityIDs     = context.Activities.Select(a => a.ID).ToArray();
                int   activityIDCount = activityIDs.Count();

                //For Part 5
                //CamperActivities - the Intersection
                //Add an activity to every second Camper
                if (!context.CamperActivities.Any())
                {
                    int toggle = 1; //Used to alternate
                    for (int i = 0; i < camperIDCount; i++)
                    {
                        if (toggle % 2 == 0)//Every second camper
                        {
                            CamperActivity ds = new CamperActivity()
                            {
                                CamperID   = camperIDs[i],
                                ActivityID = activityIDs[random.Next(activityIDCount)]
                            };
                            context.CamperActivities.Add(ds);
                        }
                        toggle++;
                    }
                    context.SaveChanges();
                }

                //CamperDiets - the Intersection
                //Add a few restrictions to every second Camper
                if (!context.CamperDiets.Any())
                {
                    int toggle = 1; //Used to alternate
                    for (int i = 0; i < camperIDCount; i++)
                    {
                        if (toggle % 2 == 0)//Every second camper
                        {
                            CamperDiet ds = new CamperDiet()
                            {
                                CamperID             = camperIDs[i],
                                DietaryRestrictionID = dietaryRestrictionIDs[random.Next(dietaryRestrictionIDCount)]
                            };
                            context.CamperDiets.Add(ds);
                        }
                        toggle++;
                    }
                    context.SaveChanges();
                }
                //CounselorCompounds - the Intersection
                //Add a compound to each counselor
                if (!context.CounselorCompounds.Any())
                {
                    foreach (int i in counselorIDs)
                    {
                        CounselorCompound cc = new CounselorCompound()
                        {
                            CompoundID  = compoundIDs[random.Next(compoundIDCount)],
                            CounselorID = i
                        };
                        context.CounselorCompounds.Add(cc);
                    }
                }
                context.SaveChanges();
            }
        }
Exemplo n.º 4
0
 private void PopulateDropDownLists(CamperActivity camperActivity = null)
 {
     ViewData["ActivityID"] = new SelectList(_context.Activities
                                             .OrderBy(a => a.Name), "ID", "Name", camperActivity?.ActivityID);
 }