Ejemplo n.º 1
0
        public void BtnSiteDone()
        {
            try
            {
                DataSet.Site.GpsLocation = GPSCoords.Parse(Latitude, Longitude);
                DataSet.Site.Owner       = Owner;
                OwnerHelper.Add(Owner);
                DataSet.Site.SiteNotes        = Notes;
                DataSet.Site.PrimaryContact   = PrimaryContact;
                DataSet.Site.SecondaryContact = SecondaryContact;
                DataSet.Site.Elevation        = float.Parse(Elevation);
                DataSet.Site.Images           = _siteImages.ToList();

                var bw = new BackgroundWorker();

                bw.DoWork += (o, e) =>
                {
                    var oldFile = DataSet.SaveLocation;
                    var oldName = DataSet.Site.Name;
                    DataSet.Site.Name = SiteName;
                    DataSet.SaveToFile(false);

                    if (SiteName.CompareTo(oldName) != 0)
                    {
                        File.Delete(oldFile);
                    }
                };

                bw.RunWorkerCompleted += (o, e) =>
                {
                    EventLogger.LogInfo(DataSet, GetType().ToString(), "Site saved. Site name: " + DataSet.Site.Name);

                    CreateEditDeleteVisible = Visibility.Visible;
                    DoneCancelVisible       = Visibility.Collapsed;
                    DoneCancelEnabled       = true;
                    SiteControlsEnabled     = false;
                    ApplicationCursor       = Cursors.Arrow;

                    if (!IsNewSite)
                    {
                        return;
                    }

                    WasCompleted = true;
                    TryClose();
                };

                ApplicationCursor = Cursors.Wait;
                DoneCancelEnabled = false;
                bw.RunWorkerAsync();
            }
            catch (Exception e)
            {
                Common.ShowMessageBox("Error", e.Message, false, true);
                EventLogger.LogError(DataSet, GetType().ToString(), "Tried to create site but failed. Details: " + e.Message);
            }
        }