Пример #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CheckFareController"/> class.
 /// </summary>
 /// <param name="executionParam">
 /// The execution param.
 /// </param>
 internal CheckFareController(ExecutionParam executionParam = null)
 {
     this._executionParam = executionParam;
     var liveFareDir = Path.Combine(ProcessUtils.CurrentProcessDirectory, "LiveFare");
     this._liveFareStorage = new LiveFareFileStorage(liveFareDir);
     this._monitors = new AggeratingFareRequestMonitor();
 }
Пример #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CheckFareForm"/> class.
        /// </summary>
        /// <param name="param">
        /// The param.
        /// </param>
        public CheckFareForm(ExecutionParam param)
        {
            this.InitializeComponent();
            this.Text = AppUtil.ProductName + " " + this.Text;

            this.Initialize(param);
            this.trayIcon.Icon = this.Icon;
            GUIBuilder.AttachMenuToTrayIcon(this, this.trayIcon, true);
            this.fareBrowserTabs.ImageList = new ImageList { ImageSize = new Size(6, 6) }; // Get extra empty space on tab header
        }
Пример #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SchedulerForm"/> class.
        /// </summary>
        /// <param name="defaultParam">
        /// The default param.
        /// </param>
        /// <param name="logger">
        /// The logger.
        /// </param>
        public SchedulerForm(ExecutionParam defaultParam, ILogger logger)
        {
            this.InitializeComponent();
            this.InitializeImageList();
            this._logger = logger;
            this._scheduler = new SchedulerManager(this._logger);
            this.Text = AppUtil.ProductName + " " + this.Text;
            this.loadProgress.ControlItem.ContainerControl = this;
            this.loadProgress.ControlItem.ShowInTaskbar = false;
            this.statusStrip.Items.Add(this.loadProgress);
            this._defaultParam = defaultParam.ReflectionDeepClone(logger);
            if (this._defaultParam.OperationMode != OperationMode.GetFareAndSave && this._defaultParam.OperationMode != OperationMode.LiveMonitor)
            {
                this._defaultParam.OperationMode = OperationMode.GetFareAndSave;
            }

            this.loadProgress.VisibleChanged += this.LoadProgress_VisibleChanged;
        }
Пример #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EnvConfiguratorDialog"/> class.
        /// </summary>
        /// <param name="environment">
        /// The environment.
        /// </param>
        /// <param name="executionParam">
        /// The execution param.
        /// </param>
        /// <exception cref="ArgumentException">
        /// </exception>
        internal EnvConfiguratorDialog(MonitorEnvironment environment, ExecutionParam executionParam)
            : this()
        {
            if (environment == null)
            {
                throw new ArgumentException("Environment cannot be null");
            }

            if (environment.Logger == null)
            {
                throw new ArgumentException("Environment logger cannot be null");
            }

            if (environment.ConfigStore == null)
            {
                throw new ArgumentException("Environment config store cannot be null");
            }

            if (executionParam.ConfigHandler == null)
            {
                throw new ArgumentException("Execution param config store cannot be null");
            }

            this._logger = environment.Logger;
            this._typeResolver = new TypeResolver(this._logger);
            this._executionParam = executionParam.ReflectionDeepClone(this._logger);

            this.Height -= this.pnlTop.Height;
            this._env = environment.ReflectionDeepClone(this._logger);
            #if DEBUG
            this._env.Id = Guid.NewGuid().ToString();
            #endif

            this.InitializeData();
        }
Пример #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FlightStatisticForm"/> class.
        /// </summary>
        /// <param name="data">
        /// The data.
        /// </param>
        /// <param name="executionParam">
        /// The execution param.
        /// </param>
        /// <param name="isMainForm">
        /// The is main form.
        /// </param>
        public FlightStatisticForm(IList<TravelRoute> data, ExecutionParam executionParam, bool isMainForm)
        {
            this.InitializeComponent();
            this._isMainForm = isMainForm;
            this._routeData = data;
            if (data != null && data.Count > 0)
            {
                this._activeRoute = data[0];
                this.ReloadRoutes();
            }

            this._executionParam = executionParam;
            this.InitializeView();
        }
Пример #6
0
 /// <summary>
 /// The btn config_ click.
 /// </summary>
 /// <param name="sender">
 /// The sender.
 /// </param>
 /// <param name="e">
 /// The e.
 /// </param>
 private void btnConfig_Click(object sender, EventArgs e)
 {
     using (var configDialog = new EnvConfiguratorDialog(AppContext.MonitorEnvironment, this._executionParam))
     {
         var result = configDialog.ShowDialog(this);
         if (result == DialogResult.OK)
         {
             var resultEnv = configDialog.ResultEnvironment;
             this._executionParam = configDialog.ResultParam;
             WinFormGlobalContext.GetInstance().SetEnvironment(resultEnv);
             this.InitializeView();
             this.ReloadRoutes();
         }
     }
 }
Пример #7
0
        /// <summary>
        /// The get execution param.
        /// </summary>
        /// <param name="autoSync">
        /// The auto sync.
        /// </param>
        /// <param name="exitAfterDone">
        /// The exit after done.
        /// </param>
        /// <param name="isMinimized">
        /// The is minimized.
        /// </param>
        /// <param name="opMode">
        /// The op mode.
        /// </param>
        /// <returns>
        /// The <see cref="ExecutionParam"/>.
        /// </returns>
        private ExecutionParam GetExecutionParam(bool autoSync, bool exitAfterDone, bool isMinimized, OperationMode opMode)
        {
            FilterCondition filter = this.ReadFilter();
            var result = new ExecutionParam
                             {
                                 ConfigHandler = this._executionParam.ConfigHandler,
                                 AutoSync = autoSync,
                                 Departure = filter.Departure,
                                 DepartureDate = filter.DepartureDate,
                                 DepartureDateRange = this._executionParam.DepartureDateRange,
                                 Destination = filter.Destination,
                                 ExitAfterDone = exitAfterDone,
                                 IsMinimized = isMinimized,
                                 PriceLimit = filter.MaxPrice,
                                 ReturnDate = filter.ReturnDate,
                                 ReturnDateRange = this._executionParam.ReturnDateRange,
                                 MinStayDuration = filter.MinDuration,
                                 MaxStayDuration = filter.MaxDuration,
                                 OperationMode = opMode
                             };

            if (result.Departure == null)
            {
                result.Departure = this._executionParam.Departure;
            }

            if (result.Destination == null)
            {
                result.Destination = this._executionParam.Destination;
            }

            return result;
        }
Пример #8
0
        /// <summary>
        /// The initialize.
        /// </summary>
        /// <param name="param">
        /// The param.
        /// </param>
        private void Initialize(ExecutionParam param)
        {
            // Update the view based on Execution parameters
            this._executionParam = param.ReflectionDeepClone(AppContext.Logger);

            this.txtDeparture.SelectedAirport = param.Departure;
            this.txtDestination.SelectedAirport = param.Destination;
            if (param.MinStayDuration == int.MinValue || param.MinStayDuration == int.MaxValue)
            {
                param.MinStayDuration = Settings.Default.DefaultDurationMin;
            }

            if (param.MaxStayDuration == int.MinValue || param.MaxStayDuration == int.MaxValue)
            {
                param.MaxStayDuration = Settings.Default.DefaultDurationMax;
            }

            if (param.DepartureDate.IsUndefined() || param.DepartureDate < DateTime.Now)
            {
                param.DepartureDate = DateTime.Now.AddDays(1);
            }

            if (param.ReturnDate.IsUndefined() || param.ReturnDate < param.DepartureDate)
            {
                param.ReturnDate = param.DepartureDate.AddDays(param.MaxStayDuration);
            }

            this.departureDatePicker.MinDate = this.returnDatePicker.MinDate = DateTime.Now.Date;
            this.departureDatePicker.Value = param.DepartureDate;
            this.returnDatePicker.Value = param.ReturnDate;
            this.numDepartDateRangePlus.Value = param.DepartureDateRange.Plus;
            this.numDepartDateRangeMinus.Value = param.DepartureDateRange.Minus;
            this.numReturnDateRangePlus.Value = param.ReturnDateRange.Plus;
            this.numReturnDateRangeMinus.Value = param.ReturnDateRange.Minus;
            this.numMinDuration.Value = param.MinStayDuration;
            this.numMaxDuration.Value = param.MaxStayDuration;
            this.numPriceLimit.Value = param.PriceLimit > 0 ? param.PriceLimit : 1;

            this.loadProgress.ControlItem.ContainerControl = this;
            this.loadProgress.ControlItem.ShowInTaskbar = false;
            this.statusStrip.Items.Add(this.loadProgress);

            this.statusStrip.Items.Add(this.springLabelStrip);

            this.chkAutoFocusTabStrip.Control.Text = "Auto-focus completed tab";
            this.chkAutoFocusTabStrip.Alignment = ToolStripItemAlignment.Right;
            this.statusStrip.Items.Add(this.chkAutoFocusTabStrip);

            this.chkAutoSyncStrip.Control.Text = "Auto-sync exported data";
            this.chkAutoSyncStrip.Alignment = ToolStripItemAlignment.Right;
            this.chkAutoSyncStrip.ControlItem.DataBindings.Clear();
            this.chkAutoSyncStrip.ControlItem.DataBindings.Add("Checked", this._executionParam, "AutoSync");
            this.statusStrip.Items.Add(this.chkAutoSyncStrip);

            this.chkExitAfterDoneStrip.ControlItem.Text = "Exit after done";
            this.chkExitAfterDoneStrip.ControlItem.DataBindings.Clear();
            this.chkExitAfterDoneStrip.ControlItem.DataBindings.Add("Checked", this._executionParam, "ExitAfterDone");
            this.chkExitAfterDoneStrip.Alignment = ToolStripItemAlignment.Right;
            this.statusStrip.Items.Add(this.chkExitAfterDoneStrip);
            foreach (ToolStripItem item in this.statusStrip.Items)
            {
                item.Margin = new Padding(3, 1, 3, 1);
            }

            this.UpdateViewForDuration();
            this.ResizeStatusStrip();
        }