public void UpdateDirectionsDictionary() { Dictionary <uint, string[]> fisDictionaryItems = FIS_Connector.GetDirectionsDictionaryItems(_FIS_Address, _FIS_Login, _FIS_Password); Dictionary <uint, string[]> dbDictionaryItems = _DB_Helper.GetDirectionsDictionaryItems(); string addedReport = "В справочник №" + 10 + " \"" + "Направления подготовки" + "\" добавлены элементы:"; ushort addedCount = 0; string deletedReport = ""; foreach (var item in fisDictionaryItems) { if (dbDictionaryItems.ContainsKey(item.Key)) { for (byte i = 0; i < item.Value.Length; ++i) //TODO Если несколько изменений { if (item.Value[i] != dbDictionaryItems[item.Key][i] && SharedClasses.Utility.ShowChoiceMessageWithConfirmation( "В ФИС изменилось значение " + (i + 2) + " столбца элемента с кодом " + item.Key + ":\nC \"" + dbDictionaryItems[item.Key][i] + "\"\nна \"" + item.Value[i] + "\".\n\nОбновить значение в БД?", "Действие" )) { _DB_Connection.Update(DB_Table.DICTIONARY_10_ITEMS, new Dictionary <string, object> { { "name", item.Value[0] }, { "code", item.Value[1] }, { "qualification_code", item.Value[2] }, { "period", item.Value[3] }, { "ugs_code", item.Value[4] }, { "ugs_name", item.Value[5] } }, new Dictionary <string, object> { { "id", item.Key } } ); } } } else { _DB_Connection.Insert(DB_Table.DICTIONARY_10_ITEMS, new Dictionary <string, object> { { "id", item.Key }, { "name", item.Value[0] }, { "code", item.Value[1] }, { "qualification_code", item.Value[2] }, { "period", item.Value[3] }, { "ugs_code", item.Value[4] }, { "ugs_name", item.Value[5] } } ); addedReport += "\n" + item.Key; addedCount++; } } foreach (var item in dbDictionaryItems) { if (!fisDictionaryItems.ContainsKey(item.Key)) { deletedReport += item.Key + ", "; } } if (addedCount == 0) { addedReport = "Новых направлений нет."; } else { addedReport += "\nВсего: " + addedCount; } if (deletedReport != "") { deletedReport = "\n\nВнимание: в ФИС отсутствуют направления с ID: " + deletedReport.Remove(deletedReport.Length - 2); } ShowUpdateMessage(addedReport + deletedReport); }