private void UpdateDatabaseAsync(IEnumerable <LocalizedItem> items) { CultureInfo culture = Settings.DatabaseCulture; Observable.Start(() => { // select items to update and convert them var dbItems = items .Where(o => o.DatabaseEntity != null && string.IsNullOrEmpty(o.DatabaseEntity.Name) == false && o.TranslatedEntity != null && string.IsNullOrEmpty(o.TranslatedEntity.Name) == false) .Select(GetTranslatedDbItem); if (dbItems.Any() == false) { return; } using (var provider = new MangosProvider()) { dbItems = provider.UpdateItems(dbItems, culture) .ToList(); } // refresh updated items items.Join(dbItems, o => o.DatabaseEntity.Id, o => o.Id, (li, dbi) => new { li, dbi }) .ToList() .ForEach(o => { o.li.Error = null; o.li.DatabaseEntity = o.dbi; }); }); }
public static void ApplyProxySettings() { System.Net.WebProxy proxy = null; if (Properties.Settings.Default.UseProxy == true) { proxy = new System.Net.WebProxy(Properties.Settings.Default.ProxyAddress, Properties.Settings.Default.ProxyPort); switch (Settings.ProxyAuth) { case ProxyAuthEnum.DefaultAuthentification: proxy.UseDefaultCredentials = true; break; case ProxyAuthEnum.CustomAuthentification: proxy.Credentials = new System.Net.NetworkCredential( Settings.ProxyUsername, MangosProvider.Decrypt(Settings.ProxyPassword)); break; case ProxyAuthEnum.NoAuthentification: default: break; } } System.Net.WebRequest.DefaultWebProxy = proxy; }
private void UpdateDatabaseAsync(IEnumerable <LocalizedItem> items) { CultureInfo culture = Settings.DatabaseCulture; Observable.Start(() => { // select items to update and convert them var dbItems = items //.Where(o => o.Status == LocalizationStatus.NotEqual) .Select(GetTranslatedDbItem); if (dbItems.Any() == false) { return; } using (var provider = new MangosProvider()) { dbItems = provider.UpdateItems(dbItems, culture) .ToList(); } // refresh updated items items.Join(dbItems, o => o.DatabaseEntity.Id, o => o.Id, (li, dbi) => new { li, dbi }) .ToList() .ForEach(o => o.li.DatabaseEntity = o.dbi); }); }
private void LoadItemsAsync() { CultureInfo culture = Settings.DatabaseCulture; // get a processId so we can stop it if the user request a new batch before we finished this one int processId = ++_loadProcessId; SetCollectionView(null); Observable.Start(() => { // load items from database using (var provider = new MangosProvider()) using (var pc = new PerformanceChecker("GetItems")) { return(provider.GetItems(culture) .Select(o => new LocalizedItem(o)) .ToList()); } }) .ObserveOnDispatcher() .Subscribe(result => { // check processId to make sure the user has not requested another batch meantime if (processId != _loadProcessId) { return; } // display loaded items to user SetCollectionView(result); }, OnError); }
private void LoadDataAsync() { CultureInfo culture = Settings.DatabaseCulture; // get a processId so we can stop it if the user request a new batch before we finished this one int processId = ++_loadProcessId; SetCollectionView(null); Observable.Start(() => { // load items from database var result = Enumerable.Empty <WowApiLocalizedData>(); using (var provider = new MangosProvider()) { if (SelectedDataType.DataType == typeof(WowApi.Models.Achievement)) { result = provider.GetAchievements(culture) .Select(o => new WowApiLocalizedData { ItemId = o.Id }); } else if (SelectedDataType.DataType == typeof(WowApi.Models.Item)) { result = provider.GetItems(culture) .Select(o => new WowApiLocalizedData { ItemId = o.Id }); } else if (SelectedDataType.DataType == typeof(WowApi.Models.Quest)) { result = provider.GetQuests(culture) .Select(o => new WowApiLocalizedData { ItemId = o.Id }); } return(result.ToList()); } }) .ObserveOnDispatcher() .Subscribe(result => { // check processId to make sure the user has not requested another batch meantime if (processId != _loadProcessId) { return; } // display loaded items to user SetCollectionView(result); }, OnError); }
private void LoadApplicationSettings() { DatabaseHost = Settings.DatabaseHost; DatabasePort = Settings.DatabasePort; DatabaseName = Settings.DatabaseName; DatabaseUsername = Settings.DatabaseUsername; DatabasePassword = MangosProvider.Decrypt(Settings.DatabasePassword); UseProxy = Settings.UseProxy; ProxyAddress = Settings.ProxyAddress; ProxyPort = Settings.ProxyPort; ProxyAuth = Settings.ProxyAuth; ProxyUsername = Settings.ProxyUsername; ProxyPassword = MangosProvider.Decrypt(Settings.ProxyPassword); }
private void SaveApplicationSettings() { Settings.DatabaseHost = DatabaseHost; Settings.DatabasePort = DatabasePort; Settings.DatabaseName = DatabaseName; Settings.DatabaseUsername = DatabaseUsername; Settings.DatabasePassword = MangosProvider.Encrypt(DatabasePassword); Settings.UseProxy = UseProxy; Settings.ProxyAddress = ProxyAddress; Settings.ProxyPort = ProxyPort; Settings.ProxyAuth = ProxyAuth; Settings.ProxyUsername = ProxyUsername; Settings.ProxyPassword = MangosProvider.Encrypt(ProxyPassword); Settings.Save(); }
private void UpdateDatabaseAsync(IEnumerable <LocalizedQuest> items) { CultureInfo culture = Settings.DatabaseCulture; Observable.Start(() => { // select valid items and convert them to update database var dbItems = items .Where(o => string.IsNullOrEmpty(o.Error) == false) .Select(GetTranslatedDbItem); using (var provider = new MangosProvider()) { dbItems = provider.UpdateQuests(dbItems, culture) .ToList(); } items.Join(dbItems, o => o.DatabaseEntity.Id, o => o.Id, (li, dbi) => new { li, dbi }) .ToList() .ForEach(o => o.li.DatabaseEntity = o.dbi); }); }
private void LoadGameObjects() { CultureInfo culture = Settings.DatabaseCulture; Observable.Start(() => { int minId = 0; // load a bunch of objects from database var provider = new MangosProvider(); return(provider.GetGameObjects(culture) .Where(o => o.Type == (int)MangosTEx.Services.DataTypes.GameObjectType.TEXT) //.Where(o => o.Id > minId) .Take(150) .ToList()); }) .ObserveOnDispatcher() .Subscribe(result => { GameObjects = result; UpdateGameObjectLocaleEvent += OnUpdateGameObjectLocale; Task.Factory.StartNew(() => GetGameObjectsLocales(result)); }, OnError); }