Beispiel #1
0
 /// <summary>
 /// последний расчет. закрываем пустышки по возможности.
 /// </summary>
 private void Calculate_LastStand()
 {
     foreach (QSO l in items)
     {
         if (l.Counters.ErrorOnCheck == false &&
             l.Counters.OK == false &&
             l.Errors.Count == 0)
         {
             // получить лог корреспондента
             ContestFile file = ContestFolder.Get(l.Raw.RecvCall);
             if (file != null)
             {
                 foreach (QSO r in file.items)
                 {
                     if (r.Counters.ErrorOnCheck == true &&
                         r.Counters.OK == false)
                     {
                         if (r.LinkedQSO != null && r.LinkedQSO.Equals(l) && r.Errors.Count > 0)
                         {
                             l.Errors.Add(BuildErrorStr(l, r));
                             l.Counters.SetError(ErrorType.correrror);
                             break;
                         }
                     }
                 }
             }
         }
     }
 }
Beispiel #2
0
 /// <summary>
 /// основное связывание радиосвязей
 /// </summary>
 private void Calculate_Loop()
 {
     foreach (QSO item in items)
     {
         if (item.Counters.ErrorOnCheck == false &&
             item.Counters.Filtered == false &&
             item.Counters.OK == false)
         {
             // получить лог корреспондента
             ContestFile file = ContestFolder.Get(item.Raw.RecvCall);
             if (file == null)
             {
                 item.Errors.Add("No log [" + item.Raw.RecvCall + "]");
                 item.Counters.SetError(ErrorType.nolog);
                 ContestFolder.LostFiles.Add(item.Raw.RecvCall);
             }
             else
             {
                 bool found = false;
                 // TODO: сделать нормальную связь
                 foreach (QSO q in file.items)
                 {
                     if (q.Counters.ErrorOnCheck == false &&
                         q.Counters.Filtered == false &&
                         q.Counters.OK == false)
                     {
                         if (Calculate_One(item, q, CalculateMode.withdate))
                         {
                             found = true;
                             break;
                         }
                     }
                 }
                 if (!found)
                 {
                     Calculate_AI(item, file.items);
                 }
             }
         }
     }
 }
Beispiel #3
0
 /// <summary>
 /// создать экземпляр с парсингом данных из строки
 /// </summary>
 /// <param name="s"></param>
 public QSO(ContestFile cf, string s, int qso_number)
 {
     ContestFile = cf;
     Raw.Number  = qso_number;
     Parse(s);
 }