Exemplo n.º 1
0
 /// <summary>
 /// Delete
 /// </summary>
 /// <param name="attendanceTrackingToDelete"></param>
 public void DeleteAttendanceTracking(AttendanceTracking attendanceTrackingToDelete)
 {
     using (CAAContext context = new CAAContext())
     {
         context.AttendanceTrackings.Remove(attendanceTrackingToDelete);
         context.SaveChanges();
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Update
 /// </summary>
 /// <param name="attendanceTrackingToUpdate"></param>
 public void UpdateAttendanceTracking(AttendanceTracking attendanceTrackingToUpdate)
 {
     using (CAAContext context = new CAAContext())
     {
         context.Update(attendanceTrackingToUpdate);
         context.SaveChanges();
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Add
 /// </summary>
 /// <param name="attendanceTrackingToAdd"></param>
 public void AddAttendanceTracking(AttendanceTracking attendanceTrackingToAdd)
 {
     using (CAAContext context = new CAAContext())
     {
         context.AttendanceTrackings.Add(attendanceTrackingToAdd);
         context.SaveChanges();
     }
 }
        private void btnChooseWinner_Click(object sender, RoutedEventArgs e)
        {
            List <AttendanceTracking> currentListOfPeople = new List <AttendanceTracking>();
            AttendanceTracking        person = new AttendanceTracking();

            try
            {
                List <AttendanceTracking>  attendanceTrackings  = attendanceTrackingRepository.GetAttendanceTrackingByEvent(view.EventID);
                List <EventGameUserAnswer> eventGameUserAnswers = eventGameUserAnswerRepository.GetEventGameUserAnswers(view.EventID);

                if (attendanceTrackings.Count == 0)
                {
                    Jeeves.ShowMessage("Error", "Please chose a different event; this event has no entered data");
                    return;
                }
                else if (ckbOnlyQuizPlayers.IsChecked == true && eventGameUserAnswers.Count == 0)
                {
                    Jeeves.ShowMessage("Error", "Please unselect 'Only Include Quiz Players as this event has no quiz data");
                    return;
                }

                if (rdoNonMembers.IsChecked == true)
                {
                    List <AttendanceTracking> temp = attendanceTrackings
                                                     .Where(c => c.IsMember == "false")
                                                     .Distinct()
                                                     .ToList();
                    foreach (var x in temp)
                    {
                        List <AttendanceTracking> checkPhone = currentListOfPeople
                                                               .Where(c => c.PhoneNo == x.PhoneNo)
                                                               .ToList();
                        if (checkPhone.Count == 0)
                        {
                            currentListOfPeople.Add(x);
                        }
                    }
                }
                else if (rdoMemberOnly.IsChecked == true)
                {
                    List <AttendanceTracking> temp = attendanceTrackings
                                                     .Where(c => c.IsMember == "true")
                                                     .Distinct()
                                                     .ToList();

                    foreach (var x in temp)
                    {
                        List <AttendanceTracking> checkMemNum = currentListOfPeople
                                                                .Where(c => c.MemberNo == x.MemberNo)
                                                                .ToList();
                        List <AttendanceTracking> checkPhone = currentListOfPeople
                                                               .Where(c => c.PhoneNo == x.PhoneNo)
                                                               .ToList();
                        if (checkMemNum.Count == 0 && checkPhone.Count == 0)
                        {
                            currentListOfPeople.Add(x);
                        }
                    }
                }
                else
                {
                    List <AttendanceTracking> temp = attendanceTrackings
                                                     .Distinct()
                                                     .ToList();
                    foreach (var x in temp)
                    {
                        List <AttendanceTracking> checkMemNum = currentListOfPeople
                                                                .Where(c => c.MemberNo == x.MemberNo)
                                                                .ToList();
                        List <AttendanceTracking> checkPhone = currentListOfPeople
                                                               .Where(c => c.PhoneNo == x.PhoneNo)
                                                               .ToList();
                        if (checkMemNum.Count == 0 && checkPhone.Count == 0)
                        {
                            currentListOfPeople.Add(x);
                        }
                    }
                }

                if (ckbOnlyQuizPlayers.IsChecked == true)
                {
                    bool check = false;

                    while (check == false)
                    {
                        int randomNumber = GetRandomNumber(currentListOfPeople.Count);

                        person = currentListOfPeople[randomNumber];
                        List <EventGameUserAnswer> playedGame = eventGameUserAnswers
                                                                .Where(c => c.AttendantID == person.MemberAttendanceID)
                                                                .ToList();
                        if (playedGame.Count > 0)
                        {
                            check = true;
                        }
                    }
                }
                else
                {
                    int randomNumber = GetRandomNumber(currentListOfPeople.Count);
                    person = currentListOfPeople[randomNumber];
                }

                txtWinnerInfo.Text = "Member Number: " + person.MemberNo +
                                     "\nPerson Name: " + person.FirstName + " " + person.LastName +
                                     "\nPerson Phone: " + person.PhoneNo;
            }
            catch
            {
                Jeeves.ShowMessage("Error", "The was a problem getting your winner");
            }
        }
        public static void Initial()
        {
            using (CAAContext context = new CAAContext())
            {
                #region Database Migration

                try
                {
                    context.Database.Migrate();
                }
                catch (Exception ex)
                {
                    if (!ex.Message.Contains("already"))
                    {
                        throw;
                    }
                }

                #endregion

                #region Seed Data

                #region Users

                if (!context.UserAccounts.Any())
                {
                    context.UserAccounts.AddRange(
                        new UserAccount
                    {
                        ID       = Guid.NewGuid().ToString(),
                        UserName = "******",
                        Password = "******",
                        isAdmin  = false
                    },
                        new UserAccount
                    {
                        ID       = Guid.NewGuid().ToString(),
                        UserName = "******",
                        Password = "******",
                        isAdmin  = true
                    },
                        new UserAccount
                    {
                        ID        = Guid.NewGuid().ToString(),
                        FirstName = "CAA",
                        LastName  = "Admin",
                        UserName  = "******",
                        Password  = "******",
                        isAdmin   = true
                    },
                        new UserAccount
                    {
                        ID        = Guid.NewGuid().ToString(),
                        FirstName = "Jon",
                        LastName  = "Doe",
                        UserName  = "******",
                        Password  = "******",
                        isAdmin   = false
                    });
                    context.SaveChanges();
                }

                #endregion

                #region Games

                if (!context.Games.Any())
                {
                    context.Games.AddRange(
                        new Game
                    {
                        Title = "Food Fest"
                    },
                        new Game
                    {
                        Title = "Canal Days"
                    });
                    context.SaveChanges();
                }
                if (!context.Questions.Any())
                {
                    context.Questions.AddRange(
                        new Question
                    {
                        Text      = "CAA Members save 10% on their bill at which restaurants?",
                        TimesUsed = 1
                    },
                        new Question
                    {
                        Text      = "True or False: Members buy one jump pass and get one FREE at Sky Zone Trampoline Park.",
                        TimesUsed = 2
                    }
                        );
                    context.SaveChanges();
                }
                if (!context.Answers.Any())
                {
                    context.Answers.AddRange(
                        new Answer
                    {
                        Text      = "Harvey's",
                        TimesUsed = 1
                    },
                        new Answer
                    {
                        Text      = "Kelsey's",
                        TimesUsed = 1
                    },
                        new Answer
                    {
                        Text      = "Montana's",
                        TimesUsed = 1
                    },
                        new Answer
                    {
                        Text      = "All of the Above",
                        TimesUsed = 1
                    },
                        new Answer
                    {
                        Text      = "True",
                        TimesUsed = 2
                    },
                        new Answer
                    {
                        Text      = "False",
                        TimesUsed = 2
                    }
                        );
                    context.SaveChanges();
                }

                if (!context.GameModels.Any())
                {
                    context.GameModels.AddRange(
                        new GameModel
                    {
                        QuestionText = "CAA Members save 10% on their bill at which restaurants?",
                        OptionsText  = "Harvey's|Kelsey's|Montana's|All of the Above",
                        AnswerText   = "All of the Above",
                        ImageIDs     = "",
                        GameID       = 1
                    },
                        new GameModel
                    {
                        QuestionText = "True or False: Members buy one jump pass and get one FREE at Sky Zone Trampoline Park.",
                        OptionsText  = "True|False",
                        AnswerText   = "True",
                        ImageIDs     = "",
                        GameID       = 1
                    },
                        new GameModel
                    {
                        QuestionText = "True or False: Members buy one jump pass and get one FREE at Sky Zone Trampoline Park.",
                        OptionsText  = "True|False",
                        AnswerText   = "True",
                        ImageIDs     = "",
                        GameID       = 2
                    }
                        );
                }

                #endregion

                #region Events

                if (!context.Events.Any())
                {
                    context.Events.AddRange(
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "Ribfest",
                        EventStart     = DateTime.Today.AddDays(3),
                        EventEnd       = DateTime.Today.AddDays(3),
                        AbrevEventname = "RF1",
                        MembersOnly    = true,
                        DisplayName    = "RibFest"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "Heart & Stroke Fundraiser",
                        EventStart     = DateTime.Today.AddDays(-1),
                        EventEnd       = DateTime.Today.AddDays(-1),
                        AbrevEventname = "HS1",
                        MembersOnly    = true,
                        DisplayName    = "Heart & Stroke Fundraiser"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "CAA Charity BBQ",
                        EventStart     = DateTime.Today.AddDays(7),
                        EventEnd       = DateTime.Today.AddDays(7),
                        AbrevEventname = "CCB1",
                        MembersOnly    = true,
                        DisplayName    = "CAA Charity BBQ"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "Food Truck Wars",
                        EventStart     = DateTime.Today,
                        AbrevEventname = "FT1",
                        MembersOnly    = false,
                        DisplayName    = "Food Truck Wars"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "Wingfest",
                        EventStart     = DateTime.Today.AddDays(3),
                        EventEnd       = DateTime.Today.AddDays(3),
                        AbrevEventname = "WF1",
                        MembersOnly    = true,
                        DisplayName    = "WingFest"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "Very Important Gala",
                        EventStart     = DateTime.Today.AddDays(1),
                        EventEnd       = DateTime.Today.AddDays(1),
                        AbrevEventname = "VIG1",
                        MembersOnly    = true,
                        DisplayName    = "Very Important Gala"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "Arctic Marathon",
                        EventStart     = DateTime.Today.AddDays(-30),
                        EventEnd       = DateTime.Today.AddDays(-32),
                        AbrevEventname = "AM1",
                        MembersOnly    = true,
                        DisplayName    = "Arctic Marathon"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "Beef Jerky Invitational",
                        EventStart     = DateTime.Today.AddDays(-5),
                        EventEnd       = DateTime.Today.AddDays(-3),
                        AbrevEventname = "BJ1",
                        MembersOnly    = false,
                        DisplayName    = "Beef Jerky Invitational"
                    },
                        new Event
                    {
                        EventID        = Guid.NewGuid().ToString(),
                        EventName      = "CAA Christmas Party",
                        EventStart     = DateTime.Today.AddDays(5),
                        EventEnd       = DateTime.Today.AddDays(5),
                        AbrevEventname = "CP1",
                        MembersOnly    = true,
                        DisplayName    = "CAA Christmas Party"
                    });
                    context.SaveChanges();
                }

                #endregion

                #region AttendanceTracking

                string[] firstNames = new string[] { "Brian", "Jon", "Max", "Nathan", "Oli", "Geri", "Joe", "Kaila", "Richard", "Marsha", "Hunter", "Dave", "Nicholas" };
                string[] lastNames  = new string[] { "Culp", "Yade", "Smith", "Cashmore", "Crroj", "Johnson", "Brown", "Henderson", "Anderson", "Doe", "Stovell", "Baddeley", "Kendall" };
                Random   random     = new Random();

                if (context.AttendanceTrackings.Count() == 0)
                {
                    //list to hold attendees we are working with
                    List <AttendanceTracking> attendees = new List <AttendanceTracking>();

                    //loop to create seed data of swipes into Heart & Stroke event(member only)
                    //all inserts are members with unique member number
                    //30 records
                    #region loop for MemberOnly event w/ Unique membership numbers

                    //30 records (members with unique membership numbers)
                    for (int i = 0; i < 30; i++)
                    {
                        //create 2 sets of 8 digit random numbers and concat together in string
                        //(done in 2 sets to avoid long integer and keep int)
                        string memberNum = random.Next(11111111, 99999999).ToString() + random.Next(11111111, 99999999).ToString();

                        //check if the member number has been used already
                        //if it has, lower i by 1 and repeat the process
                        if (context.AttendanceTrackings.Where(e => e.MemberNo == memberNum).Count() > 0)
                        {
                            i--;
                            return;
                        }

                        //create new Attendance Tracking
                        AttendanceTracking newAttendee = new AttendanceTracking()
                        {
                            MemberAttendanceID = Guid.NewGuid().ToString(),
                            EventID            = context.Events.Where(e => e.EventName == "Heart & Stroke Fundraiser").Select(e => e.EventID).FirstOrDefault(),
                            FirstName          = firstNames[random.Next(0, 12)].ToString(),
                            LastName           = lastNames[random.Next(0, 12)].ToString(),
                            IsMember           = "true",
                            PhoneNo            = "905" + random.Next(1111111, 9999999).ToString(),
                            MemberNo           = memberNum
                        };
                        attendees.Add(newAttendee);
                    }
                    //add records to database
                    context.AttendanceTrackings.AddRange(attendees);
                    context.SaveChanges();

                    #endregion

                    //clear list of attendees for next insert
                    attendees.Clear();

                    //loop to create records for Beef Jerky Invitational(non member event)
                    //50 total records (20 unique members, 20 unique non members, 5 duplicate members, 5 duplicate non members)
                    #region loop for Non-Member exclusive Event w/members, non-members, and a few duplicates

                    //get eventId for the event we are using
                    string eventid = context.Events.Where(e => e.EventName == "Beef Jerky Invitational").Select(e => e.EventID).FirstOrDefault();

                    //******
                    //20 member records with unique membership numbers
                    //******
                    for (int i = 0; i < 20; i++)
                    {
                        //create 2 sets of 8 digit random numbers and concat together in string
                        //(done in 2 sets to avoid long integer and keep int)
                        string memberNum = random.Next(11111111, 99999999).ToString() + random.Next(11111111, 99999999).ToString();

                        //check if the member number has been used already
                        //if it has, lower i by 1 and repeat the process
                        if (context.AttendanceTrackings.Where(e => e.MemberNo == memberNum).Count() > 0)
                        {
                            i--;
                            return;
                        }

                        //create new Attendance Tracking
                        AttendanceTracking newAttendee = new AttendanceTracking()
                        {
                            MemberAttendanceID = Guid.NewGuid().ToString(),
                            EventID            = context.Events.Where(e => e.EventName == "Beef Jerky Invitational").Select(e => e.EventID).FirstOrDefault(),
                            FirstName          = firstNames[random.Next(0, 12)].ToString(),
                            LastName           = lastNames[random.Next(0, 12)].ToString(),
                            IsMember           = "true",
                            PhoneNo            = "905" + random.Next(1111111, 9999999).ToString(),
                            MemberNo           = memberNum
                        };
                        attendees.Add(newAttendee);
                    }
                    //add records to database
                    context.AttendanceTrackings.AddRange(attendees);
                    context.SaveChanges();

                    attendees.Clear();

                    //******
                    //20 non member records with unique phone numbers
                    //******
                    for (int i = 0; i < 20; i++)
                    {
                        //create phone number
                        string phone = "905" + random.Next(1111111, 9999999).ToString();

                        //search the Attendance Tracking table by the EventID and find if the phone number created already exists
                        //if it exists, decrease i by 1 and restart process
                        if (context.AttendanceTrackings.Where(e => e.EventID == eventid).Where(e => e.PhoneNo == phone).Count() > 0)
                        {
                            i--;
                            return;
                        }

                        //create new Attendance Tracking
                        AttendanceTracking newAttendee = new AttendanceTracking()
                        {
                            MemberAttendanceID = Guid.NewGuid().ToString(),
                            EventID            = eventid,
                            FirstName          = firstNames[random.Next(0, 12)].ToString(),
                            LastName           = lastNames[random.Next(0, 12)].ToString(),
                            IsMember           = "false",
                            PhoneNo            = phone
                        };
                        attendees.Add(newAttendee);
                    }
                    //add records to database
                    context.AttendanceTrackings.AddRange(attendees);
                    context.SaveChanges();

                    attendees.Clear();

                    //******
                    //5 duplicate members (duplicate membership number especially)
                    //******
                    //get all attendees from the event we are using and that are members
                    attendees = context.AttendanceTrackings.Where(e => e.EventID == eventid).Where(e => e.IsMember == "true").ToList();

                    //loop through list to add 5 records as duplicates
                    for (int i = 0; i < 5; i++)
                    {
                        //give the attendee record a new memberAttendanceID
                        attendees[i].MemberAttendanceID = Guid.NewGuid().ToString();
                        //add record to database and save
                        context.AttendanceTrackings.Add(attendees[i]);
                        context.SaveChanges();
                    }

                    attendees.Clear();

                    //******
                    //5 duplicate non members (duplicate phone number especially)
                    //******
                    //get all attendees from event we are using that are non members
                    attendees = context.AttendanceTrackings.Where(e => e.EventID == eventid).Where(e => e.IsMember == "false").ToList();

                    //loop through list to add 5 records as duplicates
                    for (int i = 0; i < 5; i++)
                    {
                        //give the attendee record a new membershipAttendanceID
                        attendees[i].MemberAttendanceID = Guid.NewGuid().ToString();
                        //add record to database and save
                        context.AttendanceTrackings.Add(attendees[i]);
                        context.SaveChanges();
                    }
                }

                #endregion

                #endregion

                if (context.EventGameUserAnswers.Count() == 0)
                {
                    string beefjerky = context.Events.Where(e => e.EventName == "Beef Jerky Invitational").Select(e => e.EventID).FirstOrDefault();
                    List <AttendanceTracking> beefjerkyAttendees = context.AttendanceTrackings.Where(e => e.EventID == beefjerky).ToList();
                    bool correct = true;
                    for (int i = 0; i < 10; i++)
                    {
                        EventGameUserAnswer egua = new EventGameUserAnswer()
                        {
                            ID               = Guid.NewGuid().ToString(),
                            EventID          = beefjerky,
                            AttendantID      = beefjerkyAttendees[i + 2].MemberAttendanceID,
                            answerID         = 3,
                            answerWasCorrect = correct,
                            QuestionID       = 1
                        };

                        context.EventGameUserAnswers.Add(egua);
                        context.SaveChanges();

                        correct = !correct;
                    }
                }

                #region Items

                if (!context.Items.Any())
                {
                    context.Items.AddRange(
                        new Item
                    {
                        ItemID    = Guid.NewGuid().ToString(),
                        ItemName  = "How Many People in Family?",
                        ValueType = "Numbers"
                    },
                        new Item
                    {
                        ItemID    = Guid.NewGuid().ToString(),
                        ItemName  = "Are You a Member?",
                        ValueType = "Yes-No"
                    },
                        new Item
                    {
                        ItemID    = Guid.NewGuid().ToString(),
                        ItemName  = "What is your Primary Car's Colour?",
                        ValueType = "Words"
                    });;
                    context.SaveChanges();
                }

                #endregion

                #region EventItems - Commented out

                //if (!context.EventItems.Any())
                //{
                //    context.EventItems.AddRange(
                //     new EventItem
                //     {
                //         EventID = 1,
                //         ItemID = 1
                //     },
                //     new EventItem
                //     {
                //         EventID = 3,
                //         ItemID = 2
                //     },
                //     new EventItem
                //     {
                //         EventID = 2,
                //         ItemID = 3
                //     });
                //    context.SaveChanges();
                //}

                #endregion

                #region AttendanceItems - Commented out

                //if (!context.AttendanceItems.Any())
                //{
                //    context.AttendanceItems.AddRange(
                //     new AttendanceItem
                //     {
                //         EventItemID = 1,
                //         MemberAttendanceID = 1,
                //         Answer = "Yes"
                //     },
                //     new AttendanceItem
                //     {
                //         EventItemID = 2,
                //         MemberAttendanceID = 3,
                //         Answer = "no"
                //     },
                //     new AttendanceItem
                //     {
                //         EventItemID = 3,
                //         MemberAttendanceID = 2,
                //         Answer = "15"
                //     });
                //    context.SaveChanges();
                //}

                #endregion

                #endregion
            }
        }