private void OnOkPressed(string name) { var isReadOnly = cbIsReadOnly.IsChecked.GetValueOrDefault(); short versionNumber = 0; var list = new HashSet <string>(); if (OnSave != null) { versionNumber = OnSave(list); } var isGlobalSet = cbIsGlobalSet.IsChecked.GetValueOrDefault(); string protoSerializetSelected = null; if (OnSaveNew != null) { protoSerializetSelected = OnSaveNew(null); versionNumber = 3; } else { protoSerializetSelected = list.ProtoSerializeToString(); } var newGlobalSet = new Expl_User_Global_Set { User_ID = Manager.User.User_ID, StringName = name, List = protoSerializetSelected, IsGlobal = isGlobalSet, IsReadOnly = isReadOnly, ModuleNameForUse = _moduleNameForUse, VersionNumber = versionNumber, UseProtoSerializer = true, }; try { var userGlobalSetsId = ARM_Service.EXPL_Save_GlobalSet(newGlobalSet); if (userGlobalSetsId == default(Guid)) //Ошибка WCF { ShowMessage("Набор не удалось сохранить"); return; } var set = new TSetView(name, isReadOnly, userGlobalSetsId, list, true, Manager.User.User_ID, versionNumber, true, isGlobalSet, protoSerializetSelected: protoSerializetSelected); lock (_dictSyncLock) { _dict.Add(set); } tbSelectSet.DataContext = set; cbIsReadOnly.IsEnabled = set.IsGlobalSet && string.Equals(newGlobalSet.User_ID, Manager.User.User_ID); } catch (Exception ex) { ShowMessage("Набор не сохранен!\n" + ex.Message); return; } }
private void SaveSet(bool isReadOnly = false, Action onError = null) { var set = tbSelectSet.DataContext as TSetView; if (set == null) { return; } if (string.IsNullOrEmpty(set.SetName)) { ShowMessage("Название набора пустое. Сохранение отменено."); return; } //if (set.Set == null) //{ // ShowMessage("Набор пустой, или не найден. Сохранение отменено."); // return; //} if (set.IsReadOnly) { ShowMessage("Набор недоступен для сохранения."); return; } if (OnSaveNew != null) { set.ProtoSerializetSelected = OnSaveNew(null); set.VersionNumber = 3; } var newGlobalSet = new Expl_User_Global_Set { //Здесь только пользователь создавший набор!!! User_ID = string.IsNullOrEmpty(set.UserId) || !set.IsGlobalSet ? Manager.User.User_ID : set.UserId, UserGlobalSet_ID = set.UserGlobalSetsId ?? Guid.Empty, StringName = set.SetName, List = set.ProtoSerializetSelected, IsGlobal = set.IsGlobalSet, IsReadOnly = isReadOnly, UseProtoSerializer = true, ModuleNameForUse = _moduleNameForUse, VersionNumber = 3, }; Manager.UI.RunUILocked(() => { Guid userGlobalSetsId; try { userGlobalSetsId = ARM_Service.EXPL_Save_GlobalSet(newGlobalSet); if (userGlobalSetsId == default(Guid)) //Ошибка WCF { ShowMessage("Набор не удалось сохранить"); if (onError != null) { onError(); } return; } set.UserGlobalSetsId = userGlobalSetsId; //Если это старый набор, не из глобальной таблицы, то удаляем его if (!set.IsUseGlobalTable && set.Dict != null && set.Dict.Remove(set.SetName)) { Manager.SaveConfig(true); } } catch (Exception ex) { ShowMessage("Набор не сохранен!\n" + ex.Message); if (onError != null) { onError(); } return; } //set.UserGlobalSetsId = userGlobalSetsId; ShowMessage("Набор сохранен!"); _lcv.Refresh(); }); }