Ejemplo n.º 1
0
        /// <summary>
        /// This method checks whether any of the data fields have different information
        /// than the one in the passed competitor object.
        /// </summary>
        /// <param name="c">Competitor object to compare with.</param>
        public bool ChangesMade(Competitor c)
        {
            int id;
            String lastName;
            String firstName;
            Address address;
            PhoneNumber phone;
            DateTime dob;
            int age;
            bool gender;
            String sponsors;
            String bikeBrand;
            String bikeNumber;
            TagId tagNumber;
            TagId tagNumber2;
            bool propagateChanges;

            String errorMessage;

            bool result = this.GetData(out id, out lastName, out firstName, out address, out phone, out dob,
                out age, out gender, out sponsors, out bikeBrand, out bikeNumber, out tagNumber, out tagNumber2, out errorMessage, out propagateChanges);

            if (!lastName.Equals(c.LastName) || !firstName.Equals(c.FirstName) || !address.Equals(c.Address) || !phone.Equals(c.Phone) ||
                !dob.Equals(c.DOB) || age != c.Age || gender != c.Gender || !sponsors.Equals(c.Sponsors) || !bikeBrand.Equals(c.BikeBrand) ||
                !bikeNumber.Equals(c.BikeNumber) || !tagNumber.Equals(c.TagNumber) || !tagNumber2.Equals(c.TagNumber2))
            {
                return true;
            }

            return false;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This method checks whether there exists a competitor with the given id
        /// and loads his/her information to the dialog UI.
        /// </summary>
        public void SetCompetitorData(int competitorID, PassingsInfo pi, BindingList<PassingsInfo> passingsDataList, 
            RaceInformationControl parent)
        {
            this.pi = pi;
            this.passingsDataList = passingsDataList;
            this.raceInformationControl = parent;

            if (parent.GetCurrentRace() != null)
            {
                BindingList<String> validClasses = new BindingList<String>();
                foreach (Class cl in parent.GetCurrentRace().validClasses)
                {
                    validClasses.Add( (cl.name != null ? cl.name : "" ));
                }
                classComboBox.DataSource = validClasses;
            }

            //Console.WriteLine((raceInformationControl.RaceCompetitorsHash[pi.ID] as CompetitorRace).className);
            //String className = (raceInformationControl.RaceCompetitorsHash[pi.ID] as CompetitorRace).className;
            //if (className != null)//now only for existing competitors with event entries
            //    this.eventEntryClassTextBox.Text = className;

            foreach (Competitor c in DataManager.Instance.Competitors)
            {
                if (c.ID == competitorID)
                {
                    competitorDataInput.SetData(c);
                    competitor = c;
                    return;
                }
            }

            //if no competitor found:
            //load tag id only, populate other fields with some default values
            //may need a button that checks whether a person with a given name
            //exists in the list of competitors - to help the admin
            competitorDataInput.SetData("", "", new Address(), new PhoneNumber(),
                DateTime.Now, 30, true, "", "", "3333", pi.ID, new TagId());
        }
Ejemplo n.º 3
0
        //TODO: rename to ImportCompetitorsCSV
        public bool ImportCompetitorsXLS(String filename, bool append)
        {
            try
            {
                //DataSet ds = new DataSet();
                //string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                //    "Data Source=" + System.IO.Path.GetDirectoryName(filename) + ";" + "Extended Properties=\"Text;HDR=Yes;FMT=Delimited\"";
                //using (System.Data.OleDb.OleDbConnection conText = new System.Data.OleDb.OleDbConnection(strConnectionString))
                //{
                //    System.Data.OleDb.OleDbDataAdapter oleb = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" + System.IO.Path.GetFileName(filename) + "]", conText);
                //    oleb.Fill(ds, "whatever");
                //    oleb.Dispose();
                //}

                if(!append)
                    this.competitors.Clear();

                //OleDB has a nasty problem - if it reads a field, say 20, it assumes that it is number, and
                //in the following rows this fields is supposed to be integer
                //the way to enforce certain data types is to have schema file (.ini) in the same directory as the
                //original file; unfortunately it looks like there is no other (nicer) way to achieve this
                //
                //Thus, instead of using OleDB, we use a free library for reading CSV files:
                //http://www.codeproject.com/KB/database/CsvReader.aspx
                //
                using (CsvReader csv = new CsvReader(new StreamReader(filename), true))
                {
                    //int fieldCount = csv.FieldCount;
                    //string[] headers = csv.GetFieldHeaders();

                    csv.MissingFieldAction = MissingFieldAction.ReplaceByNull;

                    while (csv.ReadNextRecord())
                    {
                        String idStr = (csv["ID"] != null) ? csv["ID"].ToString() : "";
                        String lastNameStr = (csv["lastName"] != null) ? csv["lastName"].ToString() : "";
                        String firstNameStr = (csv["firstName"] != null) ? csv["firstName"].ToString() : "";
                        String addressStr = (csv["address"] != null) ? csv["address"].ToString() : "";
                        String phoneStr = (csv["phoneNumber"] != null) ? csv["phoneNumber"].ToString() : "";
                        String dobStr = (csv["dob"] != null) ? csv["dob"].ToString() : "";
                        String ageStr = (csv["age"] != null) ? csv["age"].ToString() : "";
                        String genderStr = (csv["gender"] != null) ? csv["gender"].ToString() : "";
                        String sponsorsStr = (csv["sponsors"] != null) ? csv["sponsors"].ToString() : "";
                        String bikeBrandStr = (csv["bikeBrand"] != null) ? csv["bikeBrand"].ToString() : "";
                        String bikeNumberStr = (csv["compNumber"] != null) ? csv["compNumber"].ToString() : "";
                        String tagNumberStr = (csv["tagNumber"] != null) ? csv["tagNumber"].ToString() : "";
                        String tagNumber2Str = (csv["tagNumber2"] != null) ? csv["tagNumber2"].ToString() : "";

                        //for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        //{
                        //    String idStr = ds.Tables[0].Rows[i]["ID"].ToString();
                        //    String lastNameStr = ds.Tables[0].Rows[i]["lastName"].ToString();
                        //    String firstNameStr = ds.Tables[0].Rows[i]["firstName"].ToString();
                        //    String addressStr = ds.Tables[0].Rows[i]["address"].ToString();
                        //    String phoneStr = ds.Tables[0].Rows[i]["phoneNumber"].ToString();
                        //    String dobStr = ds.Tables[0].Rows[i]["dob"].ToString();
                        //    String ageStr = ds.Tables[0].Rows[i]["age"].ToString();
                        //    String genderStr = ds.Tables[0].Rows[i]["gender"].ToString();
                        //    String sponsorsStr = ds.Tables[0].Rows[i]["sponsors"].ToString();
                        //    String bikeBrandStr = ds.Tables[0].Rows[i]["bikeBrand"].ToString();
                        //    String bikeNumberStr = ds.Tables[0].Rows[i]["bikeNumber"].ToString();
                        //    String tagNumberStr = ds.Tables[0].Rows[i]["tagNumber"].ToString();
                        //    String tagNumber2Str = ds.Tables[0].Rows[i]["tagNumber2"].ToString();

                        String[] addressArr = new String[] { "", "", "", "12345" };
                        try
                        {
                            String[] adrAr = addressStr.Split(new char[] { ';' });
                            if (adrAr[0] != null)
                                addressArr[0] = adrAr[0];
                            if (adrAr[1] != null)
                                addressArr[1] = adrAr[1];
                            if (adrAr[2] != null)
                                addressArr[2] = adrAr[2];
                            if (adrAr[3] != null)
                                addressArr[3] = adrAr[3];
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.StackTrace);
                            DataManager.Log(e.StackTrace);
                        }

                        int cID = 0;
                        String lastName = "";
                        String firstName = "";
                        Address address = new Address("", "", "", 12345);
                        PhoneNumber phoneNumber = new PhoneNumber("");
                        DateTime dob = DateTime.Now;
                        int age = 20;
                        bool gender = true;
                        String sponsors = "";
                        String bikeBrand = "";
                        String bikeNumber = "0";
                        TagId tagNumber = new TagId();
                        TagId tagNumber2 = new TagId();

                        try
                        {
                            try
                            {
                                cID = int.Parse(idStr);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e.StackTrace);
                                DataManager.Log(e.StackTrace);
                            }
                            lastName = lastNameStr;
                            firstName = firstNameStr;
                            try
                            {
                                address = new Address(addressArr[0].Trim(), addressArr[1].Trim(), addressArr[2].Trim(), int.Parse(addressArr[3].Trim()));
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e.StackTrace);
                                DataManager.Log(e.StackTrace);
                            }
                            phoneNumber = new PhoneNumber(phoneStr);

                            try
                            {
                                dob = DateTime.Parse(dobStr);

                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e.StackTrace);
                                DataManager.Log(e.StackTrace);
                            }

                            try
                            {
                                age = int.Parse(ageStr);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e.StackTrace);
                                DataManager.Log(e.StackTrace);
                            }
                            gender = genderStr.ToLower().Equals("true") ? true : false;
                            if (genderStr.ToLower().Equals(""))
                                gender = true;
                            sponsors = sponsorsStr;
                            bikeBrand = bikeBrandStr;

                            bikeNumber = bikeNumberStr;
                            //try
                            //{
                            //    bikeNumber = int.Parse(bikeNumberStr);
                            //}
                            //catch (Exception e)
                            //{
                            //    Console.WriteLine(e.StackTrace);
                            //    DataManager.Log(e.StackTrace);
                            //}

                            tagNumber = new TagId(tagNumberStr);
                            tagNumber2 = new TagId(tagNumber2Str);
                        }
                        catch (Exception exc)
                        {
                            Console.WriteLine(exc.StackTrace);
                            DataManager.Log("Exception caught!" + exc.StackTrace);
                        }
                        Competitor c = new Competitor(cID, lastName, firstName, address, phoneNumber,
                            dob, age, gender, sponsors, bikeBrand, bikeNumber, tagNumber, tagNumber2);
                        this.competitors.Add(c);
                    }
                }
            }
            catch (Exception exc)
            {
                return false;
            }

            return true;
        }
Ejemplo n.º 4
0
        private void LoadTestData()
        {
            BindingList<DateTime> event1Dates = new BindingList<DateTime>();
            event1Dates.Add(new DateTime(2011, 02, 15));
            event1Dates.Add(new DateTime(2011, 02, 16));
            Event event1 = new Event()
            {
                ID = 1,
                name = "OSU Race February",
                city = "Columbus",
                state = "OH",
                dates = event1Dates
            };

            BindingList<DateTime> event2Dates = new BindingList<DateTime>();
            event2Dates.Add(new DateTime(2011, 03, 20));
            event2Dates.Add(new DateTime(2011, 03, 21));
            Event event2 = new Event()
            {
                ID = 2,
                name = "OSU Race March",
                city = "Columbus",
                state = "OH",
                dates = event2Dates
            };

            events.Add(event1);
            events.Add(event2);

            Competitor cmp = new Competitor()
            {
                ID = 1,
                LastName = "Doe",
                FirstName = "John",
                Address = new Address("OSU", "Columbus", "OH", 43201),
                Phone = new PhoneNumber("123-456-7890"),
                DOB = DateTime.Now,
                Age = 29,
                Gender = true,
                Sponsors = "Honda",
                BikeBrand = "Honda",
                BikeNumber = "33",
                TagNumber = new TagId("0343")
            };

            Competitor cmp2 = new Competitor()
            {
                ID = 2,
                LastName = "Smith",
                FirstName = "Mike",
                Address = new Address("OSU", "Columbus", "OH", 43201),
                Phone = new PhoneNumber("123-456-7890"),
                DOB = DateTime.Now,
                Age = 40,
                Gender = true,
                Sponsors = "Suzuki",
                BikeBrand = "Suzuki",
                BikeNumber = "37",
                TagNumber = new TagId("0365")
            };

            competitors.Add(cmp);
            competitors.Add(cmp2);

            event1.competitors.Add(cmp);
            event2.competitors.Add(cmp);

            event1.competitors.Add(cmp2);
            event2.competitors.Add(cmp2);

            Class class125cc = new Class();
            class125cc.name = "125cc";
            class125cc.description = "125cc";

            Class class250cc = new Class();
            class250cc.name = "250cc";
            class250cc.description = "250cc";

            classes.Add(class125cc);
            classes.Add(class250cc);

            Race event1Race1 = new Race("qualify race 1", "Qualifying");
            Race event1Race2 = new Race("qualify race 2", "Qualifying");
            Race event1Race3 = new Race("final race", "Race");

            Race event2Race1 = new Race("qualify race 1", "Qualifying");
            Race event2Race2 = new Race("qualify race 2", "Qualifying");
            Race event2Race3 = new Race("final race", "Race");

            event1.races = new BindingList<Race>() { event1Race1, event1Race2, event1Race3 };
            event2.races = new BindingList<Race>() { event2Race1, event2Race2, event2Race3 };

            EventEntry eve1 = new EventEntry();
            eve1.competitor = cmp;
            eve1.eventID = event1.ID;
            eve1.className = "250cc";

            EventEntry eve2 = new EventEntry();
            eve2.competitor = cmp2;
            eve2.eventID = event1.ID;
            eve2.className = "250cc";

            eventEntries.Add(eve1);
            eventEntries.Add(eve2);

            LoadTagFile("");
        }
Ejemplo n.º 5
0
        private void GetDataForCompetitor()
        {
            Competitor c = DataManager.Instance.GetCompetitorByID(competitorID);
            if (c != null)
            {
                tagID = c.TagNumber;
                tagID2 = c.TagNumber2;
                bikeNumber = c.BikeNumber;
                firstName = c.FirstName;
                lastName = c.LastName;

                cmp = c;
                c.PropertyChangedEvent += new Competitor.PropertyChanged(c_PropertyChangedEvent);
            }
        }
Ejemplo n.º 6
0
        private void c_PropertyChangedEvent(Competitor source)
        {
            if (source == null) return;

            if (!competitor.Equals(source))//should not happen
            {
                competitor = source;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args0 = new PropertyChangedEventArgs("competitor");
                PropertyChanged(this, args0);
            }

            if (competitorID != source.ID)
            {
                competitorID = source.ID;

                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args1 = new PropertyChangedEventArgs("competitorID");
                PropertyChanged(this, args1);
            }
            //if (!tagID.Equals(source.TagNumber))
            //{
            //    //need this to pass old value
            //    PropertyUpdateEventArgs args2 = new PropertyUpdateEventArgs("tagID", tagID, source.TagNumber);
            //    tagID = source.TagNumber;
            //    if(this.PropertyUpdated != null)
            //        PropertyUpdated(this, args2);

            //    RecheckPassings();

            //    if (this.PropertyChanged == null) return;
            //    PropertyChangedEventArgs args2C = new PropertyChangedEventArgs("tagID");
            //    PropertyChanged(this, args2C);
            //}
            //if (!tagID2.Equals(source.TagNumber2))
            //{
            //    tagID2 = source.TagNumber2;
            //    RecheckPassings();
            //    if (this.PropertyChanged == null) return;
            //    PropertyChangedEventArgs args3 = new PropertyChangedEventArgs("tagID2");
            //    PropertyChanged(this, args3);
            //}
            //if (bikeNumber != source.BikeNumber)
            //{
            //    bikeNumber = source.BikeNumber;
            //    if (this.PropertyChanged == null) return;
            //    PropertyChangedEventArgs args4 = new PropertyChangedEventArgs("bikeNumber");
            //    PropertyChanged(this, args4);
            //}
            if (!firstName.Equals(source.FirstName))
            {
                firstName = source.FirstName;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args5 = new PropertyChangedEventArgs("firstName");
                PropertyChanged(this, args5);
            }
            if (!lastName.Equals(source.LastName))
            {
                lastName = source.LastName;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args6 = new PropertyChangedEventArgs("lastName");
                PropertyChanged(this, args6);
            }
        }
Ejemplo n.º 7
0
        private void AddCompetitor_Click(object sender, EventArgs e)
        {
            //get data from the data input table and put into DataGridControl
            int id;
            String lastName;
            String firstName;
            Address address;
            PhoneNumber phone;
            DateTime dob;
            int age;
            bool gender;
            String sponsors;
            String bikeBrand;
            String bikeNumber;
            TagId tagNumber;
            TagId tagNumber2;
            bool propagateChanges;

            String errorMessage;

            bool dataResult = competitorDataInput.GetData(out id, out lastName, out firstName, out address, out phone, out dob,
                out age, out gender, out sponsors, out bikeBrand, out bikeNumber, out tagNumber, out tagNumber2, out errorMessage, out propagateChanges);
            if (!dataResult)
            {
                MessageBox.Show(errorMessage);
                return;
            }

            //check whether such a user exists already (identified by Last Name/First Name)
            bool competitorExists = false;
            foreach(Competitor c in DataManager.Instance.Competitors)
            {
                if (c.LastName == lastName && c.FirstName == firstName)
                {
                    competitorExists = true;
                    break;
                }
            }
            if (competitorExists)
            {
                if (MessageBox.Show("Would you really like to add a competitor with the first name and last name that is already in the list?",
                    "Confirmation Dialog", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return;
                }
            }

            Competitor newCompetitor = new Competitor(id, lastName, firstName, address, phone, dob, age, gender, sponsors, bikeBrand, bikeNumber, tagNumber, tagNumber2);
            newCompetitor.propagateChanges = propagateChanges;
            DataManager.Instance.Competitors.Add(newCompetitor);

            competitorDataInput.ClearControls();
            DeselectEventEntriesUI();

            DataManager.Instance.SerializeData();
        }
Ejemplo n.º 8
0
 protected void OnPropertyChanged(Competitor source)
 {
     if (PropertyChangedEvent != null)
     {
         PropertyChangedEvent(source);
     }
 }
Ejemplo n.º 9
0
        private void c_PropertyChangedEvent(Competitor source)
        {
            if (source == null) return;

            if (!competitor.Equals(source))
            {
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args0 = new PropertyChangedEventArgs("competitor");
                PropertyChanged(this, args0);
            }

            if (competitorID != source.ID)
            {
                competitorID = source.ID;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args1 = new PropertyChangedEventArgs("competitorID");
                PropertyChanged(this, args1);
            }

            //
            if (!tagNumber.Equals(source.TagNumber) && source.propagateChanges)
            {
                tagNumber = source.TagNumber;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args2 = new PropertyChangedEventArgs("tagNumber");
                PropertyChanged(this, args2);
            }
            if (!tagNumber2.Equals(source.TagNumber2) && source.propagateChanges)
            {
                tagNumber2 = source.TagNumber2;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args3 = new PropertyChangedEventArgs("tagNumber2");
                PropertyChanged(this, args3);
            }
            //if (bikeNumber != source.BikeNumber && source.propagateChanges)
            if (bikeNumber != null && !bikeNumber.Equals(source.BikeNumber) && source.propagateChanges)
            {
                bikeNumber = source.BikeNumber;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args4 = new PropertyChangedEventArgs("bikeNumber");
                PropertyChanged(this, args4);
            }
            if (bikeBrand != null && !bikeBrand.Equals(source.BikeBrand) && source.propagateChanges)
            {
                bikeBrand = source.BikeBrand;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args5 = new PropertyChangedEventArgs("bikeBrand");
                PropertyChanged(this, args5);
            }
            //

            if (!sponsors.Equals(source.Sponsors))
            {
                sponsors = source.Sponsors;
                if (this.PropertyChanged == null) return;
                PropertyChangedEventArgs args6 = new PropertyChangedEventArgs("sponsors");
                PropertyChanged(this, args6);
            }
        }
Ejemplo n.º 10
0
        private void AddNewCompetitor(Competitor newCompetitor, bool addToCompetitorsList = true)
        {
            if(addToCompetitorsList)
                DataManager.Instance.Competitors.Add(newCompetitor);

            competitor = newCompetitor;
            EventEntry newEventEntry = new EventEntry();
            newEventEntry.competitor = newCompetitor;
            Event currentEvent = raceInformationControl.GetSelectedEvent();
            if (currentEvent != null)
            {
                newEventEntry.eventID = currentEvent.ID;
                newEventEntry.tagNumber = newCompetitor.TagNumber;
                newEventEntry.tagNumber2 = newCompetitor.TagNumber2;
                newEventEntry.bikeNumber = newCompetitor.BikeNumber;
                if (classComboBox.SelectedIndex != -1)
                {
                    newEventEntry.className = classComboBox.Items[classComboBox.SelectedIndex] as String;
                }

                DataManager.Instance.EventEntries.Add(newEventEntry);
            }
            CompetitorRace cr = new CompetitorRace(newEventEntry.competitorID);
            cr.EventEntry = newEventEntry;
            cr.lastName = newCompetitor.LastName;
            cr.firstName = newCompetitor.FirstName;
            cr.competitorID = newCompetitor.ID;
            cr.tagID = newCompetitor.TagNumber;
            cr.tagID2 = newCompetitor.TagNumber2;
            cr.bikeNumber = newCompetitor.BikeNumber;
            cr.className = newEventEntry.className;
            cr.raceParent = raceInformationControl.GetCurrentSession();
            raceInformationControl.GetCurrentSession().AddCompetitorRace(cr);

            UpdatePassings();
        }
Ejemplo n.º 11
0
        private void okButton_Click(object sender, EventArgs e)
        {
            //
            //1. Unknown tag info came, no competitor is originally known for the incoming tag
            //
            //possible cases:
            //a) cancel (nothing done)
            //b) new competitor added
            //c) old competitor (existing in the competitor's list, but not racing list)
            //   added to the race
            //
            if (competitor == null)
            {
                Competitor newCompetitor = new Competitor();
                newCompetitor.ID = DataManager.getNextID();//important! otherwise will have id = 0
                bool res = competitorDataInput.UpdateCompetitorData(ref newCompetitor);
                if (!res)
                {
                    MessageBox.Show("There was a problem with the entered data.");
                    return;
                }

                //Competitor existingCompetitor = DataManager.Instance.GetCompetitorByTagID(newCompetitor.TagNumber);
                //TODO: have to check as well for the name (assume the admin has entered John Doe,
                //but John Doe already exists somewhere in the competitors list, though with a different
                //or no tag. How to proceed there? Show the same warning dialog?
                Competitor existingCompetitor = null;
                List<Competitor> existingCmps = DataManager.Instance.GetCompetitorByName(newCompetitor.FirstName, newCompetitor.LastName);
                if (existingCmps.Count > 0)
                    existingCompetitor = existingCmps[0];
                if (existingCompetitor != null)
                {
                    //AddNewCompetitor(existingCompetitor, false);
                    //this.Dispose();
                    //return;

                    //TEMPORARILY COMMENTED OUT

                    Form userDialog = GetUserDialog("Warning!",
                        "There already exists a competitor with the name " +
                        existingCompetitor.FirstName + " " + existingCompetitor.LastName +
                        ". Do you want to proceed with this user or create a new one?",
                        "Proceed with current user", "Create a new one");
                    DialogResult dr = userDialog.ShowDialog();
                    if (dr == System.Windows.Forms.DialogResult.Cancel)
                    {
                        this.Dispose();
                        return;
                    }
                    else if (dr == System.Windows.Forms.DialogResult.Ignore)
                    {
                        if (newCompetitor.FirstName.Equals("") && newCompetitor.LastName.Equals(""))
                        {
                            if (MessageBox.Show("Are you sure you would like to add competitor with empty name fields?",
                                "Please confirm", MessageBoxButtons.YesNo) == DialogResult.No)
                            {
                                return;
                            }
                        }

                        AddNewCompetitor(newCompetitor);
                        this.Dispose();
                        return;
                    }
                    else if (dr == System.Windows.Forms.DialogResult.OK)//proceed
                    {
                        if (newCompetitor.FirstName.Equals("") && newCompetitor.LastName.Equals(""))
                        {
                            if (MessageBox.Show("Are you sure you would like to add competitor with empty name fields?",
                                "Please confirm", MessageBoxButtons.YesNo) == DialogResult.No)
                            {
                                return;
                            }
                        }

                        //have to overwrite tags
                        existingCompetitor.TagNumber = newCompetitor.TagNumber;
                        existingCompetitor.TagNumber2 = newCompetitor.TagNumber2;

                        AddNewCompetitor(existingCompetitor, false);
                        this.Dispose();
                        return;
                    }

                    //AddNewCompetitor(newCompetitor, false);
                    //this.Dispose();
                    //return;

                }
                else //just save new competitor to the competitors list
                {
                    if (newCompetitor.FirstName.Equals("") && newCompetitor.LastName.Equals(""))
                    {
                        if (MessageBox.Show("Are you sure you would like to add competitor with empty name fields?",
                            "Please confirm", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            return;
                        }
                    }
                    AddNewCompetitor(newCompetitor);
                    this.Dispose();
                    return;
                }
            }

            //
            //2. some existing competitor was originally selected in the grid
            //
            //possible cases:
            //update or cancel
            //
            if (competitor != null && haveToAddEventEntry)// && !competitorDataInput.ChangesMade(competitor))
            {
                if (MessageBox.Show("Are you sure you would like to proceed?",
                    "Confirmation Dialog", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    this.Dispose();
                }

                EventEntry newEventEntry = new EventEntry();
                newEventEntry.competitor = competitor;
                Event currentEvent = raceInformationControl.GetSelectedEvent();
                if (currentEvent != null)
                {
                    newEventEntry.eventID = currentEvent.ID;
                    DataManager.Instance.EventEntries.Add(newEventEntry);
                }
                CompetitorRace cr = new CompetitorRace(newEventEntry.competitorID);
                cr.tagID = competitor.TagNumber;
                cr.tagID2 = competitor.TagNumber2;
                cr.bikeNumber = competitor.BikeNumber;
                //cr.className = newCompetitor.//newEventEntry.className;
                cr.raceParent = raceInformationControl.GetCurrentSession();
                raceInformationControl.GetCurrentSession().AddCompetitorRace(cr);

                UpdatePassings();

                this.Dispose();
            }
            else if(competitor != null && !haveToAddEventEntry)
            {
                if (MessageBox.Show("Are you sure you would like to save the changes?",
                    "Confirmation Dialog", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    this.Dispose();
                }
                else
                {
                    bool updateResult = competitorDataInput.UpdateCompetitorData(ref competitor);
                    if (!updateResult)
                    {
                        MessageBox.Show("There was a problem with the entered data.");
                        return;
                    }

                    UpdatePassings();

                    this.Dispose();
                }
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Update the competitor with the values from the UI elements.
        /// Please note that competitor parameter is a reference parameter.
        /// </summary>
        /// <param name="c"></param>
        /// <returns>True if the update was successfull, false otherwise.</returns>
        public bool UpdateCompetitorData(ref Competitor c)
        {
            int id;
            String lastName;
            String firstName;
            Address address;
            PhoneNumber phone;
            DateTime dob;
            int age;
            bool gender;
            String sponsors;
            String bikeBrand;
            String bikeNumber;
            TagId tagNumber;
            TagId tagNumber2;
            String errorMessage;
            bool propagateChanges;

            bool dataResult = this.GetData(out id, out lastName, out firstName, out address, out phone, out dob,
                out age, out gender, out sponsors, out bikeBrand, out bikeNumber, out tagNumber, out tagNumber2, out errorMessage, out propagateChanges);
            if (!dataResult)
            {
                return false;
            }
            c.propagateChanges = propagateChanges;
            c.LastName = lastName;
            c.FirstName = firstName;
            c.Address = address;
            c.Phone = phone;
            c.DOB = dob;
            c.Age = age;
            c.Gender = gender;
            c.Sponsors = sponsors;
            c.BikeBrand = bikeBrand;
            c.BikeNumber = bikeNumber;
            c.TagNumber = tagNumber;
            c.TagNumber2 = tagNumber2;

            return true;
        }
Ejemplo n.º 13
0
 /// <summary>
 /// Populate the UI controls with the given competitor's data. Please note that there is no
 /// error checking, we assume that the data is properly formatted, etc.
 /// </summary>        
 public void SetData(Competitor c)
 {
     syncChangesCheckBox.Checked = c.propagateChanges;
     this.SetData(c.LastName, c.FirstName, c.Address, c.Phone, c.DOB,
             c.Age, c.Gender, c.Sponsors, c.BikeBrand, c.BikeNumber, c.TagNumber, c.TagNumber2);
 }