/// <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; } } } } } } }
/// <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); } } } } }
/// <summary> /// создать экземпляр с парсингом данных из строки /// </summary> /// <param name="s"></param> public QSO(ContestFile cf, string s, int qso_number) { ContestFile = cf; Raw.Number = qso_number; Parse(s); }