예제 #1
0
 internal List <NamespaceModel> GetNamespaceModels(SettingContext context, IReadOnlyCollection <SettingType> types, List <SettingValueError> settingValueErrors, GrViewModelBase viewModel)
 {
     return(context
            .Namespaces
            .SelectMany(
                n => GetNamespaceModels(n, context.Name + " > ", types, settingValueErrors, viewModel))
            .ToList());
 }
예제 #2
0
        static void Main(string[] args)
        {
            // Create
            SettingContext settingContext = Program.Create();

            // End
            Console.WriteLine("\nPress enter to end...");
            Console.ReadLine();
        }
예제 #3
0
 /// <summary>
 /// Конструктор, принимает объект иконки трея
 /// </summary>
 /// <param name="tb"></param>
 public HeadViewModel(TaskbarIcon tb)
 {
     try
     {
         dispatcher    = Dispatcher.CurrentDispatcher;
         thread_object = new Object();
         //инициализируем объект иконки и объект класса всплывающих сообщений
         this.Tb = tb;
         mb      = new MyBalloon(tb.GetPopupTrayPosition().X, tb.GetPopupTrayPosition().Y);
         mb.baloon_panel.ItemsSource = FormatText.baloon_msg;
         mb.Show();
         //инициализируем переменную для хранения настроек окна
         CheckBoxSettings = new MySettings();
         //инициализируем сериализатор
         formatter = new XmlSerializer(typeof(MySettings));
         //загружаем данные из xml при открытии приложения
         Deserializable();
         //выгружаем из бд список аккаунтов
         dbAccounts = new AccountContext();
         dbAccounts.Accounts.Load();
         Accounts = dbAccounts.Accounts.Local.ToBindingList();
         //выгружаем из бд офсеты
         dbOffsets = new OffsetContext();
         dbOffsets.Offsets.Load();
         offsetsFromDb = dbOffsets.Offsets.FirstOrDefault((p) => p.Version == "1.5.5_2591");
         if (offsetsFromDb != null)
         {
             OpenOffsets();
         }
         //выгружаем настройки из бд, в будующем планируется выполнять этот шаг через вебсервис
         dbSettings = new SettingContext();
         dbSettings.Settings.Load();
         //генерируем уникльный ключ компьютера
         String serial = CalcMethods.GenerateSerialNumber();
         //проверяем, есть ли в бд настройки, привязанные к этому ключу
         settings = dbSettings.Settings.FirstOrDefault((p) => p.Serialnumber == serial);
         //если настройки отсутствуют, то создаем новые и заносим в бд
         if (settings == null)
         {
             settings = new Models.Login.Setting
             {
                 Downloader   = "Downloader/12650 MailRuGameCenter/1265",
                 Serialnumber = CalcMethods.GenerateSerialNumber(),
                 UserId_1     = CalcMethods.RandomStringValue(20),
                 UserId_2     = CalcMethods.RandomStringValue(20),
                 Filepath     = String.Empty
             };
             dbSettings.Settings.Add(settings);
             dbSettings.SaveChanges();
         }
         ApplySettings();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
예제 #4
0
        public List <SettingNamespace> GetSettingNamespaces(IEnumerable <string> namespaceCodes)
        {
            Dictionary <string, bool> codes = namespaceCodes
                                              .Distinct()
                                              .ToDictionary(code => code, code => false);

            var result = new SettingNamespace[codes.Count];

            foreach (var pair in GetFacade <SettingContextFacade>().LoadSettingContext())
            {
                int            counter = -1;
                SettingContext context = pair.Value;

                foreach (string code in codes.Keys.ToList())
                {
                    counter++;
                    if (codes[code])
                    {
                        continue;
                    }

                    var nSpace = FindNamespace(context.Namespaces, code);

                    if (nSpace != null)
                    {
                        result[counter] = nSpace;
                        codes[code]     = true;
                    }
                }

                if (codes.All(p => p.Value))
                {
                    break;
                }
            }

            var notFoundCodes = codes.Where(p => !p.Value).Select(p => p.Key).ToList();

            if (!notFoundCodes.IsNullOrEmpty())
            {
                throw CdiHelper.CreateException(
                          notFoundCodes
                          .Select(code => new ErrorDetail
                {
                    Code   = SettingsErrorCode.SettingNamespaceNotFound,
                    Reason = $"Namespace '{code}' not found."
                })
                          .ToList());
            }

            return(result.ToList());
        }
예제 #5
0
        public UnitOfWork(SettingsContextWrapper context)
        {
            Context = context;

            if (context.Context == null)
            {
                DbContext = new SettingContext();
            }
            else
            {
                DbContext = context.Context;
            }
        }
예제 #6
0
        static void Main(string[] args)
        {
            // Create
            SettingContext settingContext = Program.Create();

            // Set
            settingContext.AppSettings.Remove("Argument03");

            settingContext.ConnectionStrings.Remove("Database02");

            // End
            Console.WriteLine("\nPress enter to end...");
            Console.ReadLine();
        }
예제 #7
0
            // Constructors
            public ProgramService(SettingContext settingContext)
            {
                #region Contracts

                if (settingContext == null)
                {
                    throw new ArgumentException(nameof(settingContext));
                }

                #endregion

                // Default
                _settingContext = settingContext;
            }
예제 #8
0
        static void Main(string[] args)
        {
            // Create
            SettingContext settingContext = Program.Create();

            // Set
            settingContext.AppSettings.Add("Argument04", "DDDDDDDDDDDDD");

            settingContext.ConnectionStrings.Add("Database03", "Data Source=192.168.3.3;Initial Catalog=DB03");

            // End
            Console.WriteLine("\nPress enter to end...");
            Console.ReadLine();
        }
예제 #9
0
        // Methods
        public static void Run(SettingContext settingContext)
        {
            #region Contracts

            if (settingContext == null)
            {
                throw new ArgumentException(nameof(settingContext));
            }

            #endregion

            // SettingContext
            Console.WriteLine(settingContext.GetValue());
        }
예제 #10
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            using (var db = new SettingContext())
            {
                db.Database.EnsureCreated();

                List <Setting> settings = new List <Setting>();

                foreach (var d in db.Settings)
                {
                    settings.Add(d);
                }

                searchResultList.ItemsSource = settings;
            }
        }
        public IEnumerable <KeyValuePair <string, SettingContext> > LoadSettingContext(bool blockFiles = false)
        {
            var templateFileConfig = GrConfigManager.Current.Sections[GrConfigKeys.Settings.Name].Configs[GrConfigKeys.Settings.TemplateSettingFile];

            if (templateFileConfig == null)
            {
                throw CdiHelper.CreateException(SettingsErrorCode.InvalidConfig, $"The GetcuReone.config does not contain config '{GrConfigKeys.Settings.TemplateSettingFile}'.");
            }

            var lockerFacade = GetFacade <LockerFacade>();
            var fileAdapter  = GetAdapter <FileAdapter>();

            var files = GetAdapter <SettingsFolderAdapter>().GetFiles(templateFileConfig.Value);

            foreach (var file in files)
            {
                SettingContext context = null;

                lockerFacade.WaitUnblock(file);
                if (blockFiles)
                {
                    lockerFacade.Block(file);
                }

                lock (lockerFacade.GetLocker(file))
                {
                    try
                    {
                        using (var fileStream = fileAdapter.OpenRead(file))
                            context = fileStream.DeserializeFromXml <SettingContext>();
                    }
                    catch
                    {
                        lockerFacade.Unblock(file);
                        throw;
                    }
                }

                context.Namespaces.FillFullCodes(null);
                yield return(new KeyValuePair <string, SettingContext>(file, context));
            }
        }
예제 #12
0
파일: Program.cs 프로젝트: wushian/CLK
        static void Main(string[] args)
        {
            // Create
            SettingContext settingContext = Program.Create();

            // Get
            Console.WriteLine("\nAppSettings");
            string argumentString = settingContext.AppSettings["Argument01"];

            Console.WriteLine(argumentString);

            Console.WriteLine("\nConnectionStrings");
            string connectionString = settingContext.ConnectionStrings["Database01"];

            Console.WriteLine(connectionString);

            // End
            Console.WriteLine("\nPress enter to end...");
            Console.ReadLine();
        }
예제 #13
0
        private void searchButton_Click(object sender, RoutedEventArgs e)
        {
            var request = WebRequest.Create("http://localhost/settings/getsetting?searchField=" + searchField.Text);

            request.ContentType = "application/json; charset=utf-8";
            var response = (HttpWebResponse)request.GetResponse();

            using (var sr = new StreamReader(response.GetResponseStream()))
            {
                string         json     = sr.ReadToEnd();
                List <Setting> settings = JsonConvert.DeserializeObject <List <Setting> >(json);
                searchResultList.ItemsSource = settings;

                using (var db = new SettingContext())
                {
                    var all = db.Settings;
                    db.Settings.RemoveRange(all);
                    db.SaveChanges();
                    db.Settings.AddRange(settings);
                    db.SaveChanges();
                }
            }
        }
        public SettingContext GetSettingContext(bool loadNamespace = false)
        {
            SettingContext result = null;

            foreach (var pair in LoadSettingContext())
            {
                if (result == null)
                {
                    result = pair.Value;
                }
                else
                {
                    result.Namespaces.AddRange(pair.Value.Namespaces);
                }

                if (!loadNamespace)
                {
                    result.Namespaces = null;
                    break;
                }
            }

            return(result);
        }
예제 #15
0
        static void Main(string[] args)
        {
            // Create
            SettingContext settingContext = Program.Create();

            // List
            Console.WriteLine("\nAppSettings");
            foreach (string key in settingContext.AppSettings.Keys)
            {
                string argumentString = settingContext.AppSettings[key];
                Console.WriteLine(argumentString);
            }

            Console.WriteLine("\nConnectionStrings");
            foreach (string key in settingContext.ConnectionStrings.Keys)
            {
                string connectionString = settingContext.ConnectionStrings[key];
                Console.WriteLine(connectionString);
            }

            // End
            Console.WriteLine("\nPress enter to end...");
            Console.ReadLine();
        }
예제 #16
0
 private async Task LoadStatusAsync()
 {
     cmbStatus.ItemsSource = await SettingContext.GetStatus();
 }
예제 #17
0
 public SettingService(SettingContext context)
 {
     this.context = context;
 }
예제 #18
0
 public ConfigReflectContext(IReflectRepository reflectRepository, SettingContext settingContext) : base(reflectRepository, settingContext)
 {
 }
예제 #19
0
 private void LoadActiveIssueAsync()
 {
     LvActiveIssues.ItemsSource = issues.Where(i => i.Status != "closed").Take(SettingContext.GetMaxItemsCount()).ToList();
 }
 public SettingsContextWrapper(SettingContext context)
 {
     Context  = context;
     Injected = true;
 }