protected override void SaveData()
        {
            OriginalSettings = EditedSettings.Clone <MediaScheduleSettings, MediaScheduleSettings>();
            OriginalSettings.UpdateDictionaries();

            Schedule.ApplySettingsChanges(ChangeInfo);

            if (ChangeInfo.DigitalContentChanged)
            {
                Schedule.DigitalProductsContent = DigitalContent.Clone <DigitalProductsContent, DigitalProductsContent>();
            }
        }
        protected override void UpdateEditedContet()
        {
            _allowToSave = false;

            if (EditedSettings == null || ContentUpdateInfo.ChangeInfo.WholeScheduleChanged)
            {
                EditedSettings?.Dispose();
                EditedSettings   = OriginalSettings.Clone <MediaScheduleSettings, MediaScheduleSettings>();
                SettingsNotSaved = EditedSettings.IsNew;

                #region Media Tab

                Controller.Instance.HomeBusinessName.EditValue  = EditedSettings.BusinessName;
                Controller.Instance.HomeDecisionMaker.EditValue = EditedSettings.DecisionMaker;

                Controller.Instance.HomePresentationDate.EditValue = EditedSettings.PresentationDate;
                UpdateFlightDates();
                UpdateWeekCount();

                Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek = EditedSettings.StartDayOfWeek;

                switch (EditedSettings.SelectedSpotType)
                {
                case SpotType.Week:
                    pictureEditWeeklySchedule.Checked  = true;
                    pictureEditMonthlySchedule.Checked = false;
                    break;

                case SpotType.Month:
                    pictureEditWeeklySchedule.Checked  = false;
                    pictureEditMonthlySchedule.Checked = true;
                    break;
                }

                stationsControl.LoadData(EditedSettings);
                #endregion
            }

            UpdateScheduleControls();

            _allowToSave = true;
        }
 private void OnFlightDatesEditClick(object sender, EventArgs e)
 {
     using (var form = new FormFlightDatesEdit())
     {
         var currentDateStart = EditedSettings.UserFlightDateStart;
         var currentDateEnd   = EditedSettings.UserFlightDateEnd;
         form.DateStart      = currentDateStart;
         form.DateEnd        = currentDateEnd;
         form.EndDayOfWeek   = EditedSettings.EndDayOfWeek;
         form.StartDayOfWeek = EditedSettings.StartDayOfWeek;
         form.EndDayOfWeek   = EditedSettings.EndDayOfWeek;
         if (form.ShowDialog(Controller.Instance.FormMain) == DialogResult.OK)
         {
             var comparableSettings = EditedSettings.Clone <MediaScheduleSettings, MediaScheduleSettings>();
             comparableSettings.UserFlightDateStart = form.DateStart;
             comparableSettings.UserFlightDateEnd   = form.DateEnd;
             var changeInfo = EditedSettings.GetChangeInfo(comparableSettings);
             if (changeInfo.ScheduleDatesChanged)
             {
                 if (Schedule.ProgramSchedule.Sections.Any(s => s.Programs.Any(p => p.TotalSpots > 0)))
                 {
                     using (var formWarning = new FormFlightDatesChangeWarning(EditedSettings.SelectedSpotType))
                     {
                         if (formWarning.ShowDialog(Controller.Instance.FormMain) != DialogResult.OK)
                         {
                             comparableSettings.Dispose();
                             return;
                         }
                         ChangeInfo.KeepSpotsWhenDatesChanged = formWarning.KeepSpots;
                     }
                 }
                 EditedSettings.UserFlightDateStart = form.DateStart;
                 EditedSettings.UserFlightDateEnd   = form.DateEnd;
                 OnSchedulePropertyValueChanged(sender, e);
                 UpdateFlightDates();
                 UpdateWeekCount();
             }
             comparableSettings.Dispose();
         }
     }
 }