예제 #1
0
 private void datasetBindToDataGrid()
 {
     Trace.WriteLine("FResultsView.datasetBindToDataGrid() " +
                     "started on thread \"" +
                     Thread.CurrentThread.Name + "\" ( " +
                     Thread.CurrentThread.ManagedThreadId.ToString() + " )");
     try
     {
         Trace.WriteLine("datasetResults1.Results contains columns:");
         foreach (DataColumn col in this.datasetResults1.Results.Columns)
         {
             Trace.WriteLine("Name: \"" + col.ColumnName + "\", " +
                             "Type: \"" + col.DataType.ToString() + "\"");
         }
         this.dataGrid1.SetDataBinding(this.datasetResults1,
                                       "Results");
         this.datasetResults1 = null;
     }
     catch (Exception exc)
     {
         Trace.WriteLine("FResultsView.datasetBindToDataGrid " +
                         "Exception:\r\n" + exc.ToString());
     }
     finally
     {
         Trace.WriteLine("FResultsView.datasetBindToDataGrid() " +
                         "ended.");
     }
 }
예제 #2
0
		private void datasetBindToDataGrid()
		{
			Trace.WriteLine("FResultsView.datasetBindToDataGrid() " + 
				"started on thread \"" +
				Thread.CurrentThread.Name + "\" ( " +
				Thread.CurrentThread.ManagedThreadId.ToString() + " )");
			try
			{
				Trace.WriteLine("datasetResults1.Results contains columns:");
				foreach(DataColumn col in this.datasetResults1.Results.Columns)
				{
					Trace.WriteLine("Name: \"" + col.ColumnName + "\", " + 
						"Type: \"" + col.DataType.ToString() + "\"");
				}
				this.dataGrid1.SetDataBinding(this.datasetResults1,
					"Results");
				this.datasetResults1 = null;
			}
			catch(Exception exc)
			{
				Trace.WriteLine("FResultsView.datasetBindToDataGrid " + 
					"Exception:\r\n" + exc.ToString());
			}
			finally
			{
				Trace.WriteLine("FResultsView.datasetBindToDataGrid() " + 
					"ended.");
			}
		}
예제 #3
0
        private void updateDatasetwithThread()
        {
            try
            {
                Trace.WriteLine("FResultsView.populateDatasetwithThread() " +
                                "started on thread \"" +
                                Thread.CurrentThread.Name + "\" ( " +
                                Thread.CurrentThread.ManagedThreadId.ToString() + " )");

                if (populateDatasetwithThreadsCount > 0)
                {
                    Trace.WriteLine("FResultsView.populateDatasetwithThread() " +
                                    " already has threads waiting");
                    return;
                }
                Interlocked.Increment(ref populateDatasetwithThreadsCount);

                Trace.WriteLine("FResultsView.populateDatasetwithThread() locking \"" +
                                "lockObject\" on thread \"" +
                                Thread.CurrentThread.Name + "\" ( " +
                                Thread.CurrentThread.ManagedThreadId.ToString() + " )");
                lock (lockObject)
                {
                    Trace.WriteLine("FResultsView.populateDatasetwithThread() locked \"" +
                                    "lockObject\" on thread \"" +
                                    Thread.CurrentThread.Name + "\" ( " +
                                    Thread.CurrentThread.ManagedThreadId.ToString() + " )");

                    Thread.Sleep(100);
                    DateTime start = DateTime.Now;

                    if (CommonCode.GetCompetitions().Length == 0)
                    {
                        return;
                    }

                    this.datasetResults1             = new DatasetResults();
                    this.datasetResults1.DataSetName = "DatasetResults";
                    this.datasetResults1.Locale      =
                        new System.Globalization.CultureInfo("sv");

                    Structs.ResultWeaponsClass wclass = getCurrentWeaponClass();
                    Structs.ShootersClass      uclass = getCurrentShootersClass();
                    if (uclass == Structs.ShootersClass.Okänd)
                    {
                        return;
                    }

                    ResultsReturn[] results = CommonCode.ResultsGet(wclass,
                                                                    uclass,
                                                                    CommonCode.GetCompetitions()[0],
                                                                    false);

                    datasetResults1 = new Allberg.Shooter.Windows.DatasetResults();

                    int       i            = 1;
                    bool      useNorwegian = CommonCode.GetCompetitions()[0].NorwegianCount;
                    Hashtable clubs        = new Hashtable();
                    foreach (ResultsReturn result in results)
                    {
                        DatasetResults.ResultsRow newRow =
                            this.datasetResults1.Results.NewResultsRow();

                        newRow.Place = i;
                        if (clubs.ContainsKey(result.ClubId))
                        {
                            newRow.Club = (string)clubs[result.ClubId];
                        }
                        else
                        {
                            string clubName = getClubName(result.ClubId);
                            newRow.Club = clubName;
                            clubs.Add(result.ClubId, clubName);
                        }
                        switch ((Structs.Medal)result.Medal)
                        {
                        case Structs.Medal.StandardSilver:
                            newRow.Medal = "S";
                            break;

                        case Structs.Medal.StardardBrons:
                            newRow.Medal = "B";
                            break;

                        default:
                            newRow.Medal = "";
                            break;
                        }
                        newRow.Points      = result.PointsTotal;
                        newRow.ShooterName = result.ShooterName;
                        switch (CommonCode.GetCompetitions()[0].Type)
                        {
                        case Structs.CompetitionTypeEnum.Field:
                        {
                            if (useNorwegian)
                            {
                                newRow.Hits           = (result.HitsTotal + result.FigureHitsTotal).ToString();
                                newRow.HitsPerStation = "";
                                foreach (string str in result.HitsPerStnString.Split(';'))
                                {
                                    if (str != "")
                                    {
                                        newRow.HitsPerStation += str + " ";
                                    }
                                }
                                newRow.HitsPerStation = newRow.HitsPerStation.TrimEnd();
                            }
                            else
                            {
                                newRow.Hits = result.HitsTotal.ToString() + " / " +
                                              result.FigureHitsTotal.ToString();
                                newRow.HitsPerStation =
                                    result.HitsPerStnString.Replace(";", " ");
                            }
                            break;
                        }

                        case Structs.CompetitionTypeEnum.MagnumField:
                        {
                            newRow.Hits = result.HitsTotal.ToString() + " / " +
                                          result.FigureHitsTotal.ToString();
                            newRow.HitsPerStation =
                                result.HitsPerStnString.Replace(";", " ");
                            break;
                        }

                        case Structs.CompetitionTypeEnum.Precision:
                        {
                            newRow.Hits           = result.HitsTotal.ToString();
                            newRow.HitsPerStation =
                                result.HitsPerStnString.Replace(";", " ");
                            break;
                        }

                        default:
                            throw new ApplicationException("Unknown CompetitionType");
                        }

                        if (result.FinalShootingPlace != 100)
                        {
                            newRow.HitsPerStation += " (" + result.FinalShootingPlace.ToString() + ")";
                        }

                        this.datasetResults1.Results.AddResultsRow(newRow);
                        i++;
                    }
                    if (this.InvokeRequired)
                    {
                        this.Invoke(DatasetBindToDataGrid);
                    }
                    else
                    {
                        DatasetBindToDataGrid();
                    }
                    Trace.WriteLine("FResultsView.populateDatasetwithThread took " +
                                    (DateTime.Now - start).TotalMilliseconds.ToString() +
                                    " ms.");
                }

                Trace.WriteLine("FResultsView.populateDatasetwithThread() unlocking \"" +
                                "lockObject\" on thread \"" +
                                Thread.CurrentThread.Name + "\" ( " +
                                Thread.CurrentThread.ManagedThreadId.ToString() + " )");
            }
            finally
            {
                Interlocked.Decrement(ref populateDatasetwithThreadsCount);
                Trace.WriteLine("FResultsView.populateDatasetwithThread() ended");
            }
        }
예제 #4
0
		private void updateDatasetwithThread()
		{
			try
			{
				Trace.WriteLine("FResultsView.populateDatasetwithThread() " + 
					"started on thread \"" +
					Thread.CurrentThread.Name + "\" ( " +
					Thread.CurrentThread.ManagedThreadId.ToString() + " )");
				
				if (populateDatasetwithThreadsCount>0)
				{
					Trace.WriteLine("FResultsView.populateDatasetwithThread() " +
						" already has threads waiting");
					return;
				}
				Interlocked.Increment(ref populateDatasetwithThreadsCount);

				Trace.WriteLine("FResultsView.populateDatasetwithThread() locking \"" +
					"lockObject\" on thread \"" +
					Thread.CurrentThread.Name + "\" ( " +
					Thread.CurrentThread.ManagedThreadId.ToString() + " )");
				lock(lockObject)
				{
					Trace.WriteLine("FResultsView.populateDatasetwithThread() locked \"" +
						"lockObject\" on thread \"" +
						Thread.CurrentThread.Name + "\" ( " +
						Thread.CurrentThread.ManagedThreadId.ToString() + " )");

					Thread.Sleep(100);
					DateTime start = DateTime.Now;

					if (CommonCode.GetCompetitions().Length == 0)
						return;

					this.datasetResults1 = new DatasetResults();
					this.datasetResults1.DataSetName = "DatasetResults";
					this.datasetResults1.Locale = 
						new System.Globalization.CultureInfo("sv");

					Structs.ResultWeaponsClass wclass = getCurrentWeaponClass();
					Structs.ShootersClass uclass = getCurrentShootersClass();
					if (uclass == Structs.ShootersClass.Okänd)
						return;

					ResultsReturn[] results = CommonCode.ResultsGet(wclass, 
						uclass, 
						CommonCode.GetCompetitions()[0],
						false);

					datasetResults1 = new Allberg.Shooter.Windows.DatasetResults();

					int i = 1;
					bool useNorwegian = CommonCode.GetCompetitions()[0].NorwegianCount;
					Hashtable clubs = new Hashtable();
					foreach(ResultsReturn result in results)
					{
						DatasetResults.ResultsRow newRow =
							this.datasetResults1.Results.NewResultsRow();

						newRow.Place = i;
						if (clubs.ContainsKey(result.ClubId))
							newRow.Club = (string)clubs[result.ClubId];
						else
						{
							string clubName = getClubName(result.ClubId);
							newRow.Club = clubName;
							clubs.Add(result.ClubId, clubName);
						}
						switch((Structs.Medal)result.Medal)
						{
							case Structs.Medal.StandardSilver:
								newRow.Medal = "S";
								break;
							case Structs.Medal.StardardBrons:
								newRow.Medal = "B";
								break;
							default:
								newRow.Medal = "";
								break;
						}
						newRow.Points = result.PointsTotal;
						newRow.ShooterName = result.ShooterName;
						switch(CommonCode.GetCompetitions()[0].Type)
						{
							case Structs.CompetitionTypeEnum.Field:
							{
								if (useNorwegian)
								{
									newRow.Hits = (result.HitsTotal + result.FigureHitsTotal).ToString();
									newRow.HitsPerStation = "";
									foreach(string str in result.HitsPerStnString.Split(';'))
									{
										if (str != "")
										{
											newRow.HitsPerStation += str + " ";
										}
									}
									newRow.HitsPerStation = newRow.HitsPerStation.TrimEnd();
								}
								else
								{
									newRow.Hits = result.HitsTotal.ToString() + " / " + 
										result.FigureHitsTotal.ToString();
									newRow.HitsPerStation = 
										result.HitsPerStnString.Replace(";", " ");
								}
								break;
							}
							case Structs.CompetitionTypeEnum.MagnumField:
							{
								newRow.Hits = result.HitsTotal.ToString() + " / " + 
									result.FigureHitsTotal.ToString();
								newRow.HitsPerStation = 
									result.HitsPerStnString.Replace(";", " ");
								break;
							}
							case Structs.CompetitionTypeEnum.Precision:
							{
								newRow.Hits = result.HitsTotal.ToString();
								newRow.HitsPerStation = 
									result.HitsPerStnString.Replace(";", " ");
								break;
							}
							default:
								throw new ApplicationException("Unknown CompetitionType");
						}

						if (result.FinalShootingPlace != 100)
							newRow.HitsPerStation += " (" + result.FinalShootingPlace.ToString() + ")";

						this.datasetResults1.Results.AddResultsRow(newRow);
						i++;
					}
					if (this.InvokeRequired)
						this.Invoke(DatasetBindToDataGrid);
					else
						DatasetBindToDataGrid();
					Trace.WriteLine("FResultsView.populateDatasetwithThread took " +
						(DateTime.Now - start).TotalMilliseconds.ToString() +
						" ms.");
				}

				Trace.WriteLine("FResultsView.populateDatasetwithThread() unlocking \"" +
					"lockObject\" on thread \"" +
					Thread.CurrentThread.Name + "\" ( " +
					Thread.CurrentThread.ManagedThreadId.ToString() + " )");
			}
			finally
			{
				Interlocked.Decrement(ref populateDatasetwithThreadsCount);
				Trace.WriteLine("FResultsView.populateDatasetwithThread() ended");
			}
		}