コード例 #1
0
        private string createTeamResults(Structs.ResultsReturnTeam[] results,
                                         Structs.ResultWeaponsClass wclass)
        {
            StringBuilder html = new StringBuilder();

            html.Append("<h1>Lagtävling</h1>");
            html.Append("Vapenklass " + wclass.ToString() + ":");
            html.Append("<table>\r\n");
            html.Append("<tr>" +
                        "<td><b>Pl</b></td>" +
                        "<td><b>Klubb</b></td>" +
                        "<td><b>Lag</b></td>" +
                        "<td><b>Resultat</b></td>" +
                        "</tr>\r\n");

            int place = 0;

            foreach (Structs.ResultsReturnTeam result in results)
            {
                place++;
                html.Append("<tr>");
                html.Append("<td class=\"resultevenline\">" + place.ToString() + "</td>");
                html.Append("<td class=\"resultevenline\">" + myInterface.GetClub(result.ClubId).Name + "</td>");
                html.Append("<td class=\"resultevenline\">" + result.TeamName + "</td>");
                if (myInterface.GetCompetitions()[0].NorwegianCount)
                {
                    html.Append("<td class=\"resultevenline\">" + (result.Hits + result.FigureHits).ToString() + "</td>");
                }
                else
                {
                    html.Append("<td class=\"resultevenline\">" + result.Hits.ToString() + "/" + result.FigureHits.ToString() + "</td>");
                }
                html.Append("</tr>\r\n");

                // The total results
                html.Append("<tr><td colspan=2></td>");
                html.Append("<td colspan=2>" + result.HitsPerStn.Replace(";", " ") + "</td>");
                html.Append("</tr>\r\n");

                Structs.Team team  = myInterface.GetTeam(result.TeamId);
                ArrayList    comps = new ArrayList();
                if (team.CompetitorId1 != -1)
                {
                    comps.Add(team.CompetitorId1);
                }
                if (team.CompetitorId2 != -1)
                {
                    comps.Add(team.CompetitorId2);
                }
                if (team.CompetitorId3 != -1)
                {
                    comps.Add(team.CompetitorId3);
                }
                if (team.CompetitorId4 != -1)
                {
                    comps.Add(team.CompetitorId4);
                }

                foreach (int compId in (int[])comps.ToArray(typeof(int)))
                {
                    Structs.Competitor comp = myInterface.GetCompetitor(compId);
                    html.Append("<tr><td colspan=2></td>");
                    html.Append("<td>" + GetNameForCompetitor(comp) + "</td>");
                    html.Append("<td>" + GetResultForCompetitor(comp) + "</td>");
                    html.Append("</tr>\r\n");
                }
            }
            html.Append("</table>");
            return(html.ToString());
        }
コード例 #2
0
 internal ResultsReturn ResultsGetCompetitor(
     Structs.Competitor competitor)
 {
     return(result.ResultsGetCompetitor(competitor));
 }
コード例 #3
0
        private DSPatrolManagement getCompetitors(int shooterId, bool preserveShooterOrder)
        {
            Trace.WriteLine("CPatrolManagement: getCompetitors() started on thread \"" +
                            Thread.CurrentThread.Name + "\" ( " +
                            System.Threading.Thread.CurrentThread.ManagedThreadId.ToString() +
                            " )");

            try
            {
                // Get the competitors from the database
                Structs.Competitor[] temp = myInterface.GetCompetitors(shooterId);
                ArrayList            competitorsUnfiltered =
                    new ArrayList(temp);
                for (int i = 0; i < competitorsUnfiltered.Count;)
                {
                    object             obj  = competitorsUnfiltered[i];
                    Structs.Competitor comp = (Structs.Competitor)obj;
                    if (comp.PatrolId != -1)
                    {
                        competitorsUnfiltered.Remove(obj);
                    }
                    i++;
                }
                Structs.Competitor[] competitors = (Structs.Competitor[])
                                                   competitorsUnfiltered.ToArray(
                    typeof(Structs.Competitor));

                // Insert them into a temporary table
                DSPatrolManagement dblistunsorted = new DSPatrolManagement();
                foreach (Structs.Competitor row in competitors)
                {
                    DSPatrolManagement.CompetitorsRow newRow =
                        dblistunsorted.Competitors.NewCompetitorsRow();

                    newRow.CompetitorId = row.CompetitorId;
                    newRow.PatrolClass  =
                        (int)myInterface.ConvertWeaponsClassToPatrolClass(
                            myInterface.GetWeapon(row.WeaponId).WClass);

                    dblistunsorted.Competitors.AddCompetitorsRow(newRow);
                }

                // Sort the table into a new table
                string sorting = "PatrolClass desc";
                if (preserveShooterOrder)
                {
                    sorting = "CompetitorId," + sorting;
                }
                else
                {
                    sorting += ", CompetitorId";
                }

                DSPatrolManagement.CompetitorsRow[] rows = (DSPatrolManagement.CompetitorsRow[])
                                                           dblistunsorted.Competitors.Select("", sorting);

                DSPatrolManagement dblistsorted = new DSPatrolManagement();
                foreach (DSPatrolManagement.CompetitorsRow row in rows)
                {
                    DSPatrolManagement.CompetitorsRow newRow =
                        dblistsorted.Competitors.NewCompetitorsRow();

                    newRow.CompetitorId = row.CompetitorId;
                    newRow.PatrolClass  = row.PatrolClass;

                    dblistsorted.Competitors.AddCompetitorsRow(newRow);
                }

                return(dblistsorted);
            }
            finally
            {
                Trace.WriteLine("CPatrolManagement: getCompetitors() ended.");
            }
        }
コード例 #4
0
 private string GetNameForCompetitor(Structs.Competitor comp)
 {
     Structs.Shooter shooter = myInterface.GetShooter(comp.ShooterId);
     return(shooter.Surname + " " + shooter.Givenname);
 }
コード例 #5
0
        private string createTeamResults(ResultsReturnTeam[] results,
                                         Structs.ResultWeaponsClass wclass)
        {
            StringBuilder html = new StringBuilder();

            html.Append("<h1>Lagtävling</h1>");
            html.Append("Vapengrupp " + wclass.ToString() + ":");
            html.Append("<table>\r\n");
            html.Append("<tr>" +
                        "<td><b>Pl</b></td>" +
                        "<td><b>Klubb</b></td>" +
                        "<td><b>Lag</b></td>" +
                        "<td><b>Resultat</b></td>" +
                        "</tr>\r\n");

            int place = 0;

            foreach (ResultsReturnTeam result in results)
            {
                place++;
                html.Append("<tr>");
                html.Append("<td class=\"resultevenline\">" + place.ToString() + "</td>");
                html.Append("<td class=\"resultevenline\">" + myInterface.GetClub(result.ClubId).Name + "</td>");
                html.Append("<td class=\"resultevenline\">" + result.TeamName + "</td>");
                switch (myInterface.GetCompetitions()[0].Type)
                {
                case Structs.CompetitionTypeEnum.Field:
                {
                    if (myInterface.GetCompetitions()[0].NorwegianCount)
                    {
                        html.Append("<td class=\"resultevenline\">" + (result.Hits + result.FigureHits).ToString() + "</td>");
                    }
                    else
                    {
                        html.Append("<td class=\"resultevenline\">" + result.Hits.ToString() + "/" + result.FigureHits.ToString() + "</td>");
                    }
                    break;
                }

                case Structs.CompetitionTypeEnum.Precision:
                {
                    html.Append("<td class=\"resultevenline\">" + result.Hits.ToString() + "</td>");
                    break;
                }
                }
                html.Append("</tr>\r\n");

                // The total results
                html.Append("<tr><td colspan=2></td>");
                html.Append("<td colspan=2>" + result.HitsPerStn.Replace(";", " ") + "</td>");
                html.Append("</tr>\r\n");

                Structs.Team team = myInterface.GetTeam(result.TeamId);

                foreach (int compId in (int[])team.CompetitorIds.ToArray(typeof(int)))
                {
                    Structs.Competitor comp = myInterface.GetCompetitor(compId);
                    html.Append("<tr><td colspan=2></td>");
                    html.Append("<td>" + GetNameForCompetitor(comp) + "</td>");
                    html.Append("<td>" + GetResultForCompetitor(comp) + "</td>");
                    html.Append("</tr>\r\n");
                }
            }
            html.Append("</table>");
            return(html.ToString());
        }
コード例 #6
0
ファイル: CResult.cs プロジェクト: dasca/WinShooter-Legacy
        private List <ResultsReturn> markMedals(List <ResultsReturn> results)
        {
            int i = 0;

            Structs.Competition competition = myInterface.CompetitionCurrent;
            switch (competition.Type)
            {
            case Structs.CompetitionTypeEnum.Field:
            {
                if (useNorwegianCount)
                {
                    foreach (ResultsReturn row in results)
                    {
                        i++;
                        if (row.NorwegianPoints >= standardSilverMedal)
                        {
                            row.Medal = Structs.Medal.StandardSilver;
                        }
                        else if (row.NorwegianPoints >= standardBronsMedal)
                        {
                            row.Medal = Structs.Medal.StardardBrons;
                        }
                        else
                        {
                            row.Medal = Structs.Medal.None;
                        }
                    }
                }
                else
                {
                    foreach (ResultsReturn row in results)
                    {
                        i++;
                        if (row.HitsTotal >= standardSilverMedal)
                        {
                            row.Medal = Structs.Medal.StandardSilver;
                        }
                        else if (row.HitsTotal >= standardBronsMedal)
                        {
                            row.Medal = Structs.Medal.StardardBrons;
                        }
                        else
                        {
                            row.Medal = Structs.Medal.None;
                        }
                    }
                }
                break;
            }

            case Structs.CompetitionTypeEnum.MagnumField:
            {
                foreach (ResultsReturn row in results)
                {
                    i++;
                    if (row.HitsTotal >= standardSilverMedal)
                    {
                        row.Medal = Structs.Medal.StandardSilver;
                    }
                    else if (row.HitsTotal >= standardBronsMedal)
                    {
                        row.Medal = Structs.Medal.StardardBrons;
                    }
                    else
                    {
                        row.Medal = Structs.Medal.None;
                    }
                }
                break;
            }

            case Structs.CompetitionTypeEnum.Precision:
            {
                int series = myInterface.GetStationsCount();
                foreach (ResultsReturn row in results)
                {
                    i++;
                    if (row.HitsTotal >= standardSilverMedal)
                    {
                        row.Medal = Structs.Medal.StandardSilver;
                    }
                    else if (row.HitsTotal >= standardBronsMedal)
                    {
                        row.Medal = Structs.Medal.StardardBrons;
                    }
                    else
                    {
                        row.Medal = Structs.Medal.None;
                    }

                    Structs.Competitor         competitor = myInterface.GetCompetitor(row.CompetitorId);
                    Structs.Weapon             weapon     = myInterface.GetWeapon(competitor.WeaponId);
                    Structs.ResultWeaponsClass wclass     =
                        CConvert.ConvertWeaponsClassToResultClass(
                            weapon.WClass, competition.Type);
                    switch (series)
                    {
                    case 6:
                    {
                        switch (wclass)
                        {
                        case Structs.ResultWeaponsClass.A:
                        {
                            if (row.HitsTotal >= 277)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 267 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }

                        case Structs.ResultWeaponsClass.B:
                        {
                            if (row.HitsTotal >= 282)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 273 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }

                        case Structs.ResultWeaponsClass.C:
                        {
                            if (row.HitsTotal >= 283)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 276 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }
                        }
                        break;
                    }

                    case 7:
                    {
                        switch (wclass)
                        {
                        case Structs.ResultWeaponsClass.A:
                        {
                            if (row.HitsTotal >= 323)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 312 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }

                        case Structs.ResultWeaponsClass.B:
                        {
                            if (row.HitsTotal >= 329)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 319 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }

                        case Structs.ResultWeaponsClass.C:
                        {
                            if (row.HitsTotal >= 330)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 322 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }
                        }
                        break;
                    }

                    case 10:
                    {
                        switch (wclass)
                        {
                        case Structs.ResultWeaponsClass.A:
                        {
                            if (row.HitsTotal >= 461)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 445 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }

                        case Structs.ResultWeaponsClass.B:
                        {
                            if (row.HitsTotal >= 470)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 455 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }

                        case Structs.ResultWeaponsClass.C:
                        {
                            if (row.HitsTotal >= 471)
                            {
                                row.Medal = Structs.Medal.StandardSilver;
                            }
                            else if (row.HitsTotal >= 460 & row.Medal != Structs.Medal.StandardSilver)
                            {
                                row.Medal = Structs.Medal.StardardBrons;
                            }
                            break;
                        }
                        }
                        break;
                    }
                    }
                }
                break;
            }

            default:
                throw new ApplicationException("Unknown competition type");
            }

            return(results);
        }
コード例 #7
0
ファイル: CResult.cs プロジェクト: dasca/WinShooter-Legacy
 internal ResultsReturn ResultsGetCompetitor(
     int CompetitorId)
 {
     Structs.Competitor comp = myInterface.GetCompetitor(CompetitorId);
     return(ResultsGetCompetitor(comp));
 }
コード例 #8
0
        private void ImportDatasetThread()
        {
            Trace.WriteLine("CFileImport: ImportDatasetThread started " +
                            "on thread \"" + Thread.CurrentThread.Name + "\" ( " +
                            System.Threading.Thread.CurrentThread.ManagedThreadId.ToString() + " )");

            int i = -1;

            foreach (DataRow row in this.ViewDatatable.Rows)
            {
                i++;
                string classString = null;

                Trace.WriteLine("CFileImport: ImportDatasetThread calling " +
                                "updatedFileImportCount(" + i.ToString() + ", " +
                                ViewDatatable.Rows.Count.ToString() + ")");
                myInterface.updatedFileImportCount(
                    i, ViewDatatable.Rows.Count);

                // Get shooter
                string shooterCard = (string)row[viewTableColumnNames.Skyttekort.ToString().Trim()];

                // Get shooter from DB
                Structs.Shooter shooter;
                try
                {
                    shooter = myInterface.GetShooter(shooterCard);

                    classString = (string)row[viewTableColumnNames.Klass.ToString()];
                    if (classString.IndexOf("1") >= 0)
                    {
                        shooter.Class = Structs.ShootersClass.Klass1;
                    }
                    if (classString.IndexOf("2") >= 0)
                    {
                        shooter.Class = Structs.ShootersClass.Klass2;
                    }
                    if (classString.IndexOf("3") >= 0)
                    {
                        shooter.Class = Structs.ShootersClass.Klass3;
                    }

                    myInterface.UpdateShooter(shooter);
                }
                catch (CannotFindIdException)
                {
                    // Add user to DB with values from file.
                    shooter = new Structs.Shooter();
                    // What class?
                    classString = (string)row[viewTableColumnNames.Klass.ToString()];
                    Structs.ShootersClass sclass = Structs.ShootersClass.Klass1;
                    if (classString.IndexOf("1") >= 0)
                    {
                        sclass = Structs.ShootersClass.Klass1;
                    }
                    if (classString.IndexOf("2") >= 0)
                    {
                        sclass = Structs.ShootersClass.Klass2;
                    }
                    if (classString.IndexOf("3") >= 0)
                    {
                        sclass = Structs.ShootersClass.Klass3;
                    }

                    if (shooterCard == "")
                    {
                        try
                        {
                            Random rnd = new Random();
                            while (true)
                            {
                                shooterCard = (-rnd.Next(100000)).ToString();
                                myInterface.GetShooter(shooterCard);
                            }
                        }
                        catch (CannotFindIdException)
                        {
                        }
                    }
                    // Create shooter and insert into database
                    shooter.Automatic   = false;
                    shooter.CardNr      = shooterCard.ToString();
                    shooter.Class       = sclass;
                    shooter.ClubId      = ((string)row[viewTableColumnNames.Klubb.ToString()]).Trim();
                    shooter.Email       = ((string)row[viewTableColumnNames.Epost.ToString()]).Trim();
                    shooter.Givenname   = ((string)row[viewTableColumnNames.Efternamn.ToString()]).Trim();
                    shooter.Surname     = ((string)row[viewTableColumnNames.Fornamn.ToString()]).Trim();
                    shooter.Payed       = 0;
                    shooter.ToAutomatic = false;

                    shooter.ShooterId = myInterface.NewShooter(shooter, false);
                    if (shooter.ShooterId < 0)
                    {
                        throw new ApplicationException("ShooterId is " + shooter.ShooterId);
                    }
                }

                // Ok, shooter is done. Create competitor
                classString = (string)row[viewTableColumnNames.Klass.ToString().ToUpper()];
                Structs.ShootersClass cclass = shooter.Class;
                if (classString.IndexOf("D") >= 0)
                {
                    cclass = (Structs.ShootersClass)(
                        (int)Structs.ShootersClass.Damklass1 - 1 +
                        (int)cclass);
                }
                if (classString.IndexOf("J") >= 0)
                {
                    cclass = Structs.ShootersClass.Juniorklass;
                }
                if (classString.IndexOf("VY") >= 0)
                {
                    cclass = Structs.ShootersClass.VeteranklassYngre;
                }
                if (classString.IndexOf("VÄ") >= 0)
                {
                    cclass = Structs.ShootersClass.VeteranklassÄldre;
                }
                if (classString.IndexOf("Ö") >= 0)
                {
                    cclass = Structs.ShootersClass.Öppen;
                }

                // Phu, class is done. Continue with competitor
                Structs.Competitor competitor = new Structs.Competitor();
                competitor.CompetitionId = myInterface.GetCompetitions()[0].CompetitionId;
                competitor.ShooterId     = shooter.ShooterId;
                competitor.WeaponId      = (string)row[viewTableColumnNames.Vapen.ToString()];
                competitor.PatrolId      = -1;
                competitor.Lane          = -1;
                competitor.ShooterClass  = cclass;

                if (!row.IsNull(viewTableColumnNames.Patrull.ToString()) &&
                    ((string)row[viewTableColumnNames.Patrull.ToString()]).Trim() != "")
                {
                    try
                    {
                        // Patrol defined in importfile
                        string patrolString = (string)row[viewTableColumnNames.Patrull.ToString()];
                        int    patrolId     = -1;
                        patrolId = int.Parse(patrolString);
                        while (patrolId > myInterface.GetPatrolsCount())
                        {
                            myInterface.PatrolAddEmpty(false);
                        }
                        competitor.PatrolId = patrolId;
                        string laneString = null;
                        if (!row.IsNull(viewTableColumnNames.Bana.ToString()))
                        {
                            laneString = (string)row[viewTableColumnNames.Bana.ToString()];
                        }

                        if (laneString != null &&
                            laneString.Trim() != "")
                        {
                            competitor.Lane = int.Parse(laneString);
                        }
                        else
                        {
                            competitor.Lane = myInterface.PatrolGetNextLane(patrolId);
                        }
                    }
                    catch (System.FormatException)
                    {
                        // If this occurres, just ignore. It really shouldn't, since
                        // it has already been checked
                    }
                }

                myInterface.NewCompetitor(competitor, false);
            }

            myInterface.updatedFileImportCount(
                ViewDatatable.Rows.Count,
                ViewDatatable.Rows.Count);
            myInterface.updatedShooter(new Structs.Shooter());
            myInterface.updatedCompetitor(new Structs.Competitor());
            myInterface.updatedPatrol();
        }