Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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();
            });
        }