示例#1
0
        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);
        }