Esempio n. 1
0
 public void UpdateDataGrid(Framework.Data.GeocacheCollection list)
 {
     if (!_ignoreUpdate)
     {
         UpdateDataGrid((from Framework.Data.Geocache a in list select a).ToList());
     }
     _ignoreUpdate = false;
 }
Esempio n. 2
0
        public static List <Framework.Data.Geocache> GetSelectedGeocaches(Framework.Data.GeocacheCollection cacheCollection)
        {
            List <Framework.Data.Geocache> result = null;

            result = (from Framework.Data.Geocache wp in cacheCollection
                      where wp.Selected
                      select wp).ToList();

            return(result);
        }
Esempio n. 3
0
        public static List <Framework.Data.Geocache> GetFoundGeocaches(Framework.Data.GeocacheCollection cacheCollection, Framework.Data.LogCollection logCollection, string byUser)
        {
            List <Framework.Data.Geocache> result = null;

            if (byUser.Length == 0)
            {
                result = new List <Framework.Data.Geocache>();
            }
            else
            {
                string tl = byUser.ToLower();
                result = (from Framework.Data.Geocache wp in cacheCollection
                          join Framework.Data.Log l in logCollection on wp.Code equals l.GeocacheCode
                          where l.Finder.ToLower() == tl && l.LogType.AsFound
                          select wp).Distinct().ToList();
            }
            return(result);
        }
Esempio n. 4
0
        public static List <Framework.Data.Geocache> GetFoundGeocaches(Framework.Data.GeocacheCollection cacheCollection, Framework.Data.LogCollection logCollection, Framework.Data.GeocachingComAccountInfo accountInfo)
        {
            List <Framework.Data.Geocache> result = null;

            if (accountInfo.AccountName.Length == 0)
            {
                result = new List <Framework.Data.Geocache>();
            }
            else
            {
                string tl = accountInfo.AccountName.ToLower();
                result = (from Framework.Data.Geocache wp in cacheCollection
                          join Framework.Data.Log l in logCollection on wp.Code equals l.GeocacheCode
                          where l.Finder.ToLower() == tl && l.LogType.AsFound
                          select wp).Distinct().ToList();
                List <Framework.Data.Geocache> result2 = (from Framework.Data.Geocache wp in cacheCollection where wp.Found && !result.Contains(wp) select wp).ToList();
                result.AddRange(result2);
            }
            return(result);
        }
Esempio n. 5
0
        public SimpleCacheListForm(Framework.Interfaces.IPlugin owner, Framework.Interfaces.ICore core)
            : base(owner, core)
        {
            _initializing = true;
            FixedCore     = core;
            InitializeComponent();

            if (PluginSettings.Instance.WindowPos != null && !PluginSettings.Instance.WindowPos.IsEmpty)
            {
                this.Bounds        = PluginSettings.Instance.WindowPos;
                this.StartPosition = FormStartPosition.Manual;
            }

            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_CACHETYPE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SIMPLECACHELIST));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_BACKGROUND));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_ARCHIVED));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_AVAILABLE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_FOUND));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_OWN));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_NOTAVAILABLE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_DEFERREDSCROLLING));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_ENABLEAUTOSORT));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SHOWSELECTEDONLY));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SHOWFLAGGEDONLY));

            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_VIEWGEOCACHE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_VIEWGEOCACHEFROMORG));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_CENTERLOCATION));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_EDITNOTE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SETCOORDS));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_CLEARCOORDS));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_EDITGEOCACHE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_EDITWAYPOINTS));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_PRESET));

            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SELECTED));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SELECTED));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_TYPE));

            for (int i = 0; i < cacheListControl1.GeocacheDataGrid.Columns.Count; i++)
            {
                if (cacheListControl1.GeocacheDataGrid.Columns[i].Header as string == "Test")
                {
                    _fixedColumnCount = i;
                    break;
                }
                else if (!string.IsNullOrEmpty(cacheListControl1.GeocacheDataGrid.Columns[i].Header as string))
                {
                    core.LanguageItems.Add(new Framework.Data.LanguageItem(cacheListControl1.GeocacheDataGrid.Columns[i].Header as string));
                }
                _orgHeader.Add(cacheListControl1.GeocacheDataGrid.Columns[i].Header as string);
            }

            core.SelectedLanguageChanged += new EventHandler(core_SelectedLanguageChanged);
            core_SelectedLanguageChanged(this, EventArgs.Empty);

            _gcCollection = Core.Geocaches;
            _gcCollection.GeocacheAdded            += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_GeocacheAdded);
            _gcCollection.GeocacheRemoved          += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_GeocacheRemoved);
            _gcCollection.GeocacheSelectedChanged  += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_GeocacheSelectedChanged);
            _gcCollection.DataChanged              += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_DataChanged);
            _gcCollection.ListDataChanged          += new EventHandler(_gcCollection_ListDataChanged);
            _gcCollection.ListSelectionChanged     += new EventHandler(_gcCollection_ListSelectionChanged);
            _gcCollection.SelectedChanged          += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_SelectedChanged);
            core.ActiveGeocacheChanged             += new Framework.EventArguments.GeocacheEventHandler(core_ActiveGeocacheChanged);
            core.GeocachingComAccountChanged       += new Framework.EventArguments.GeocacheComAccountEventHandler(core_GeocachingComAccountChanged);
            core.UserWaypoints.ListDataChanged     += new EventHandler(UserWaypoints_ListDataChanged);
            core.UserWaypoints.UserWaypointAdded   += new Framework.EventArguments.UserWaypointEventHandler(UserWaypoints_UserWaypointAdded);
            core.UserWaypoints.UserWaypointRemoved += new Framework.EventArguments.UserWaypointEventHandler(UserWaypoints_UserWaypointRemoved);
            core.Logs.ListDataChanged              += new EventHandler(Logs_ListDataChanged);
            core.GeocachingAccountNames.Changed    += new Framework.EventArguments.GeocachingAccountNamesEventHandler(GeocachingAccountNames_Changed);

            cacheListControl1.InitBrushes();
            cacheListControl1.GeocacheDataGrid.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(GeocacheDataGrid_SelectionChanged);

            if (!string.IsNullOrEmpty(PluginSettings.Instance.VisibleColumns))
            {
                string[] parts = PluginSettings.Instance.VisibleColumns.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < _fixedColumnCount; i++)
                {
                    cacheListControl1.GeocacheDataGrid.Columns[i].Visibility = parts.Contains(i.ToString()) ? System.Windows.Visibility.Visible : System.Windows.Visibility.Hidden;
                }
            }

            if (!string.IsNullOrEmpty(PluginSettings.Instance.ColumnOrder))
            {
                try
                {
                    string[] order = PluginSettings.Instance.ColumnOrder.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < order.Length; i++)
                    {
                        cacheListControl1.GeocacheDataGrid.Columns[i].DisplayIndex = int.Parse(order[i]);
                    }
                }
                catch
                {
                }
            }

            _presetFilename = System.IO.Path.Combine(core.PluginDataPath, "clpresets.xml");
            _presets        = Preset.LoadFromFile(_presetFilename);
            comboBox1.Items.AddRange(_presets.ToArray());

            _initializing = false;
            cacheListControl1.OnMouseEnter += new EventHandler <EventArgs>(cacheListControl1_OnMouseEnter);
        }
Esempio n. 6
0
        public Engine()
        {
            try
            {
                _settingsProvider = new SettingsProvider(null);

                string[] args = Environment.GetCommandLineArgs();
                if (EnablePluginDataPathAtStartup || (args != null && args.Contains("/f")))
                {
                    using (SelectSettingsForm dlg = new SelectSettingsForm(this))
                    {
                        _pluginDataFolderSelected = dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK;
                    }
                }
                else
                {
                    _pluginDataFolderSelected = true;
                }

                if (_pluginDataFolderSelected)
                {
                    _geocachingAccountNames = new Framework.Data.GeocachingAccountNames();
                    var p = _settingsProvider.GetSettingsValueStringCollection("Core.GeocachingAccountNames", null);
                    if (p != null)
                    {
                        foreach (string s in p)
                        {
                            string[] parts = s.Split("|".ToArray(), 2);
                            if (parts.Length == 2)
                            {
                                _geocachingAccountNames.SetAccountName(parts[0], parts[1]);
                            }
                        }
                    }
                    _geocachingAccountNames.Changed += new Framework.EventArguments.GeocachingAccountNamesEventHandler(_geocachingAccountNames_Changed);

                    _geocachingComAccount = new Framework.Data.GeocachingComAccountInfo();
                    _geocachingComAccount.AccountName = _settingsProvider.GetSettingsValue("Core.GCComAccountName", null);
                    _geocachingComAccount.APIToken = _settingsProvider.GetSettingsValue("Core.GCComAccountToken", null);
                    _geocachingComAccount.APITokenStaging = _settingsProvider.GetSettingsValue("Core.GCComAccountTokenStaging", null);
                    _geocachingComAccount.MemberType = _settingsProvider.GetSettingsValue("Core.GCComAccountMemberType", null);
                    _geocachingComAccount.MemberTypeId = _settingsProvider.GetSettingsValueInt("Core.GCComAccountMemberTypeId", 0);
                    _geocachingComAccount.Changed += new Framework.EventArguments.GeocacheComAccountEventHandler(_geocachingComAccount_Changed);
                    GeocachingAccountNames.SetAccountName("GC", _settingsProvider.GetSettingsValue("Core.GCComAccountName", null) ?? "");

                    _logs = new Framework.Data.LogCollection();
                    _userWaypoints = new Framework.Data.UserWaypointCollection();
                    _waypoints = new Framework.Data.WaypointCollection();
                    _geocaches = new Framework.Data.GeocacheCollection(this);
                    _logImages = new Framework.Data.LogImageCollection();
                    _geocacheImages = new Framework.Data.GeocacheImageCollection();
                    _geocacheAttributes = new Framework.Data.GeocacheAttributeCollection();
                    _geocacheTypes = new Framework.Data.GeocacheTypeCollection();
                    _geocacheContainers = new Framework.Data.GeocacheContainerCollection();
                    _logTypes = new Framework.Data.LogTypeCollection();
                    _waypointTypes = new Framework.Data.WaypointTypeCollection();
                    _homeLocation = new Framework.Data.Location();
                    _centerLocation = new Framework.Data.Location();
                    _gpsLocation = new Framework.Data.GPSLocation();
                    _languageItems = new Framework.Data.LanguageItemCollection();

                    _detectedPlugins = new List<string>();
                    _internalStoragePlugins = new List<string>();
                    _selectedLanguage = System.Globalization.CultureInfo.CurrentCulture;
                    _plugins = new List<Framework.Interfaces.IPlugin>();
                    _currentDomain = AppDomain.CurrentDomain;
                    _currentDomain.AssemblyResolve += new ResolveEventHandler(LoadFromSameFolder);

                    //set initial data
                    //default location settings
                    _centerLocation.SetLocation(_settingsProvider.GetSettingsValueDouble("Core.CenterLat", 51.5), _settingsProvider.GetSettingsValueDouble("Core.CenterLon", 5.5));
                    _centerLocation.Changed += new Framework.EventArguments.LocationEventHandler(_centerLocation_Changed);
                    _homeLocation.SetLocation(_settingsProvider.GetSettingsValueDouble("Core.HomeLat", 51.5), _settingsProvider.GetSettingsValueDouble("Core.HomeLon", 5.5));
                    _homeLocation.Changed += new Framework.EventArguments.LocationEventHandler(_homeLocation_Changed);

                    //default (unknown) cache- ,container etc. types. Position 0 means unknown
                    Framework.Data.GeocacheType ct = new Framework.Data.GeocacheType();
                    ct.ID = 0;
                    ct.Name = "Not present";
                    _geocacheTypes.Add(ct);
                    Framework.Data.GeocacheAttribute attr = new Framework.Data.GeocacheAttribute();
                    attr.ID = 0;
                    attr.Name = "Unknown";
                    _geocacheAttributes.Add(attr);
                    Framework.Data.GeocacheContainer cont = new Framework.Data.GeocacheContainer();
                    cont.ID = 0;
                    cont.Name = "Unknown";
                    _geocacheContainers.Add(cont);
                    Framework.Data.LogType lt = new Framework.Data.LogType();
                    lt.ID = 0;
                    lt.Name = "Unknown";
                    lt.AsFound = false;
                    _logTypes.Add(lt);
                    Framework.Data.WaypointType wpt = new Framework.Data.WaypointType();
                    wpt.ID = 0;
                    wpt.Name = "Unknown";
                    _waypointTypes.Add(wpt);

                    _shortcuts = new List<Framework.Data.ShortcutInfo>();
                }
            }
            catch
            {
                RestoreDefaultSettings();
            }
        }
Esempio n. 7
0
        public SimpleCacheListForm(Framework.Interfaces.IPlugin owner, Framework.Interfaces.ICore core)
            : base(owner, core)
        {
            _initializing = true;
            FixedCore = core;
            InitializeComponent();

            if (Properties.Settings.Default.UpgradeNeeded)
            {
                Properties.Settings.Default.Upgrade();
                Properties.Settings.Default.UpgradeNeeded = false;
                Properties.Settings.Default.Save();
            }

            if (Properties.Settings.Default.WindowPos != null && !Properties.Settings.Default.WindowPos.IsEmpty)
            {
                this.Bounds = Properties.Settings.Default.WindowPos;
                this.StartPosition = FormStartPosition.Manual;
            }

            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_CACHETYPE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SIMPLECACHELIST));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_BACKGROUND));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_ARCHIVED));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_AVAILABLE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_FOUND));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_OWN));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_NOTAVAILABLE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_DEFERREDSCROLLING));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(SettingsPanel.STR_ENABLEAUTOSORT));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SHOWSELECTEDONLY));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SHOWFLAGGEDONLY));

            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_VIEWGEOCACHE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_VIEWGEOCACHEFROMORG));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_CENTERLOCATION));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_EDITNOTE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SETCOORDS));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_CLEARCOORDS));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_EDITGEOCACHE));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_EDITWAYPOINTS));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_PRESET));

            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SELECTED));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_SELECTED));
            core.LanguageItems.Add(new Framework.Data.LanguageItem(STR_TYPE));

            for (int i = 0; i < cacheListControl1.GeocacheDataGrid.Columns.Count; i++)
            {
                if (cacheListControl1.GeocacheDataGrid.Columns[i].Header as string == "Test")
                {
                    _fixedColumnCount = i;
                    break;
                }
                else if (!string.IsNullOrEmpty(cacheListControl1.GeocacheDataGrid.Columns[i].Header as string))
                {
                    core.LanguageItems.Add(new Framework.Data.LanguageItem(cacheListControl1.GeocacheDataGrid.Columns[i].Header as string));
                }
                _orgHeader.Add(cacheListControl1.GeocacheDataGrid.Columns[i].Header as string);
            }

            core.SelectedLanguageChanged += new EventHandler(core_SelectedLanguageChanged);
            core_SelectedLanguageChanged(this, EventArgs.Empty);

            _gcCollection = Core.Geocaches;
            _gcCollection.GeocacheAdded += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_GeocacheAdded);
            _gcCollection.GeocacheRemoved += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_GeocacheRemoved);
            _gcCollection.GeocacheSelectedChanged += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_GeocacheSelectedChanged);
            _gcCollection.DataChanged += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_DataChanged);
            _gcCollection.ListDataChanged += new EventHandler(_gcCollection_ListDataChanged);
            _gcCollection.ListSelectionChanged += new EventHandler(_gcCollection_ListSelectionChanged);
            _gcCollection.SelectedChanged += new Framework.EventArguments.GeocacheEventHandler(_gcCollection_SelectedChanged);
            core.ActiveGeocacheChanged += new Framework.EventArguments.GeocacheEventHandler(core_ActiveGeocacheChanged);
            core.GeocachingComAccountChanged += new Framework.EventArguments.GeocacheComAccountEventHandler(core_GeocachingComAccountChanged);
            core.UserWaypoints.ListDataChanged += new EventHandler(UserWaypoints_ListDataChanged);
            core.UserWaypoints.UserWaypointAdded += new Framework.EventArguments.UserWaypointEventHandler(UserWaypoints_UserWaypointAdded);
            core.UserWaypoints.UserWaypointRemoved += new Framework.EventArguments.UserWaypointEventHandler(UserWaypoints_UserWaypointRemoved);
            core.Logs.ListDataChanged += new EventHandler(Logs_ListDataChanged);
            core.GeocachingAccountNames.Changed += new Framework.EventArguments.GeocachingAccountNamesEventHandler(GeocachingAccountNames_Changed);

            cacheListControl1.InitBrushes();
            cacheListControl1.GeocacheDataGrid.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(GeocacheDataGrid_SelectionChanged);

            if (!string.IsNullOrEmpty(Properties.Settings.Default.VisibleColumns))
            {
                string[] parts = Properties.Settings.Default.VisibleColumns.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < _fixedColumnCount; i++)
                {
                    cacheListControl1.GeocacheDataGrid.Columns[i].Visibility = parts.Contains(i.ToString()) ? System.Windows.Visibility.Visible : System.Windows.Visibility.Hidden;
                }
            }

            if (!string.IsNullOrEmpty(Properties.Settings.Default.ColumnOrder))
            {
                try
                {
                    string[] order = Properties.Settings.Default.ColumnOrder.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < order.Length; i++)
                    {
                        cacheListControl1.GeocacheDataGrid.Columns[i].DisplayIndex = int.Parse(order[i]);
                    }
                }
                catch
                {
                }
            }

            _presetFilename = System.IO.Path.Combine(core.PluginDataPath, "clpresets.xml");
            _presets = Preset.LoadFromFile(_presetFilename);
            comboBox1.Items.AddRange(_presets.ToArray());

            _initializing = false;
            cacheListControl1.OnMouseEnter += new EventHandler<EventArgs>(cacheListControl1_OnMouseEnter);
        }
Esempio n. 8
0
 public static Framework.Data.Geocache GetGeocache(Framework.Data.GeocacheCollection cacheCollection, string CacheCode)
 {
     return(cacheCollection.GetGeocache(CacheCode));
 }
Esempio n. 9
0
        public Engine()
        {
            try
            {
                _settingsProvider = new SettingsProvider(null);

                string[] args = Environment.GetCommandLineArgs();
                if (EnablePluginDataPathAtStartup || (args != null && args.Contains("/f")))
                {
                    using (SelectSettingsForm dlg = new SelectSettingsForm(this))
                    {
                        _pluginDataFolderSelected = dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK;
                    }
                }
                else
                {
                    _pluginDataFolderSelected = true;
                }

                if (_pluginDataFolderSelected)
                {
                    _geocachingAccountNames = new Framework.Data.GeocachingAccountNames();
                    var p = _settingsProvider.GetSettingsValueStringCollection("Core.GeocachingAccountNames", null);
                    if (p != null)
                    {
                        foreach (string s in p)
                        {
                            string[] parts = s.Split("|".ToArray(), 2);
                            if (parts.Length == 2)
                            {
                                _geocachingAccountNames.SetAccountName(parts[0], parts[1]);
                            }
                        }
                    }
                    _geocachingAccountNames.Changed += new Framework.EventArguments.GeocachingAccountNamesEventHandler(_geocachingAccountNames_Changed);

                    _geocachingComAccount                 = new Framework.Data.GeocachingComAccountInfo();
                    _geocachingComAccount.AccountName     = _settingsProvider.GetSettingsValue("Core.GCComAccountName", null);
                    _geocachingComAccount.APIToken        = _settingsProvider.GetSettingsValue("Core.GCComAccountToken", null);
                    _geocachingComAccount.APITokenStaging = _settingsProvider.GetSettingsValue("Core.GCComAccountTokenStaging", null);
                    _geocachingComAccount.MemberType      = _settingsProvider.GetSettingsValue("Core.GCComAccountMemberType", null);
                    _geocachingComAccount.MemberTypeId    = _settingsProvider.GetSettingsValueInt("Core.GCComAccountMemberTypeId", 0);
                    _geocachingComAccount.Changed        += new Framework.EventArguments.GeocacheComAccountEventHandler(_geocachingComAccount_Changed);
                    GeocachingAccountNames.SetAccountName("GC", _settingsProvider.GetSettingsValue("Core.GCComAccountName", null) ?? "");

                    _logs               = new Framework.Data.LogCollection();
                    _userWaypoints      = new Framework.Data.UserWaypointCollection();
                    _waypoints          = new Framework.Data.WaypointCollection();
                    _geocaches          = new Framework.Data.GeocacheCollection(this);
                    _logImages          = new Framework.Data.LogImageCollection();
                    _geocacheImages     = new Framework.Data.GeocacheImageCollection();
                    _geocacheAttributes = new Framework.Data.GeocacheAttributeCollection();
                    _geocacheTypes      = new Framework.Data.GeocacheTypeCollection();
                    _geocacheContainers = new Framework.Data.GeocacheContainerCollection();
                    _logTypes           = new Framework.Data.LogTypeCollection();
                    _waypointTypes      = new Framework.Data.WaypointTypeCollection();
                    _homeLocation       = new Framework.Data.Location();
                    _centerLocation     = new Framework.Data.Location();
                    _gpsLocation        = new Framework.Data.GPSLocation();
                    _languageItems      = new Framework.Data.LanguageItemCollection();

                    _detectedPlugins        = new List <string>();
                    _internalStoragePlugins = new List <string>();
                    _selectedLanguage       = System.Globalization.CultureInfo.CurrentCulture;
                    _plugins       = new List <Framework.Interfaces.IPlugin>();
                    _currentDomain = AppDomain.CurrentDomain;
                    _currentDomain.AssemblyResolve += new ResolveEventHandler(LoadFromSameFolder);

                    //set initial data
                    //default location settings
                    _centerLocation.SetLocation(_settingsProvider.GetSettingsValueDouble("Core.CenterLat", 51.5), _settingsProvider.GetSettingsValueDouble("Core.CenterLon", 5.5));
                    _centerLocation.Changed += new Framework.EventArguments.LocationEventHandler(_centerLocation_Changed);
                    _homeLocation.SetLocation(_settingsProvider.GetSettingsValueDouble("Core.HomeLat", 51.5), _settingsProvider.GetSettingsValueDouble("Core.HomeLon", 5.5));
                    _homeLocation.Changed += new Framework.EventArguments.LocationEventHandler(_homeLocation_Changed);

                    //default (unknown) cache- ,container etc. types. Position 0 means unknown
                    Framework.Data.GeocacheType ct = new Framework.Data.GeocacheType();
                    ct.ID   = 0;
                    ct.Name = "Not present";
                    _geocacheTypes.Add(ct);
                    Framework.Data.GeocacheAttribute attr = new Framework.Data.GeocacheAttribute();
                    attr.ID   = 0;
                    attr.Name = "Unknown";
                    _geocacheAttributes.Add(attr);
                    Framework.Data.GeocacheContainer cont = new Framework.Data.GeocacheContainer();
                    cont.ID   = 0;
                    cont.Name = "Unknown";
                    _geocacheContainers.Add(cont);
                    Framework.Data.LogType lt = new Framework.Data.LogType();
                    lt.ID      = 0;
                    lt.Name    = "Unknown";
                    lt.AsFound = false;
                    _logTypes.Add(lt);
                    Framework.Data.WaypointType wpt = new Framework.Data.WaypointType();
                    wpt.ID   = 0;
                    wpt.Name = "Unknown";
                    _waypointTypes.Add(wpt);

                    _shortcuts = new List <Framework.Data.ShortcutInfo>();
                }
            }
            catch
            {
                RestoreDefaultSettings();
            }
        }