public void ConfigureRace(Race race)
        {
            for (int i = 0; i < race.GetMaxRun(); i++)
            {
                RaceRun rr = race.GetRun(i);

                StartListViewProvider slVP = GetStartlistViewProvider(rr);
                rr.SetStartListProvider(slVP);

                RaceRunResultViewProvider rrVP = GetRaceRunResultViewProvider(rr);
                rr.SetResultViewProvider(rrVP);
            }

            RaceResultViewProvider raceVP = GetRaceResultViewProvider(race);

            race.SetResultViewProvider(raceVP);
        }
        string getStartList(RaceRun raceRun, string grouping)
        {
            string output = "";

            Application.Current.Dispatcher.Invoke(() =>
            {
                ViewConfigurator viewConfigurator = new ViewConfigurator(raceRun.GetRace());
                StartListViewProvider vp          = viewConfigurator.GetStartlistViewProvider(raceRun);
                if (grouping != null)
                {
                    vp.ChangeGrouping(grouping);
                }

                output = JsonConversion.ConvertStartList(vp.GetView());
            });

            return(output);
        }
예제 #3
0
        internal string getXmlStartList(RaceRun raceRun)
        {
            using (var sw = new Utf8StringWriter())
            {
                using (var xw = XmlWriter.Create(sw, _xmlSettings))
                {
                    xw.WriteStartDocument();
                    xmlWriteStartElementLivetiming(xw);

                    xw.WriteStartElement("startlist");
                    xw.WriteAttributeString("runno", raceRun.Run.ToString());

                    StartListViewProvider slp = raceRun.GetStartListProvider();
                    var startList             = slp.GetViewList();

                    int i = 1;
                    foreach (var sle in startList)
                    {
                        // Skip participants which are not "FIS compliant"
                        if (checkParticipantFisCompliant(sle.Participant))
                        {
                            xw.WriteStartElement("racer");
                            xw.WriteAttributeString("order", i.ToString());

                            xw.WriteElementString("bib", sle.StartNumber.ToString());
                            xw.WriteElementString("lastname", sle.Name);
                            xw.WriteElementString("firstname", sle.Firstname);
                            xw.WriteElementString("nat", sle.Nation);
                            xw.WriteElementString("fiscode", sle.Code);

                            xw.WriteEndElement(); // racer
                            i++;
                        }
                    }

                    xw.WriteEndElement(); // startlist

                    xw.WriteEndElement(); // Livetiming
                    xw.WriteEndDocument();
                }
                return(sw.ToString());
            }
        }
예제 #4
0
    internal string getStartListData(RaceRun raceRun)
    {
        string result = "";

        StartListViewProvider slp = raceRun.GetStartListProvider();
        var startList             = slp.GetViewList();

        foreach (var sle in startList)
        {
            string item;

            item = string.Format("{0,3}", sle.Participant.Id);

            if (!string.IsNullOrEmpty(result))
            {
                result += "\n";
            }

            result += item;
        }

        return(result);
    }