/// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        public MainViewModel(IDataService dataService)
        {
            _dataService = dataService;
            _dataService.GetData(
                (item, error) =>
            {
                if (error != null)
                {
                    // Report error here
                    return;
                }
            });

            var displayTuple = Load();

            ColPrefCode    = displayTuple.Item1;
            ColHotel       = displayTuple.Item2;
            ColRoomType    = displayTuple.Item3;
            ColCheckinTime = displayTuple.Item4;

            // 検索条件をXMLからロード
            var selectedSearchSettings = LoadLastSearchSettings();

            if (selectedSearchSettings is null)
            {
                // デフォルトの設定を定義
                selectedSearchSettings = new ProcessFormat
                {
                    HotelID         = default(Hotel),
                    CheckinDate     = DateTime.Now.AddDays(1),
                    Type            = default(RoomType),
                    CheckinValue    = default(CheckinTime),
                    EnableNoSmoking = true,
                    EnableSmoking   = false,
                    SmokingFirst    = false,
                    EnableAutoRetry = false,
                    EnableOverwrite = false
                };
            }
            SelectedPrefCode    = selectedSearchSettings.HotelID is null ? null : ColPrefCode.Where(item => item.ID == selectedSearchSettings.HotelID.PrefCode).First();
            SelectedHotel       = selectedSearchSettings.HotelID is null ? null : ColLimitedHotel.Where(item => item.HotelID == selectedSearchSettings.HotelID.HotelID).First();
            CheckinDate         = selectedSearchSettings.CheckinDate;
            SelectedRoomType    = selectedSearchSettings.Type is null ? null : ColRoomType.Where(item => item.RoomTypeID == selectedSearchSettings.Type.RoomTypeID).First();
            SelectedCheckinTime = selectedSearchSettings.CheckinValue is null ? null : ColCheckinTime.Where(item => item.CheckinValue == selectedSearchSettings.CheckinValue.CheckinValue).First();
            ChkNoSmoking        = selectedSearchSettings.EnableNoSmoking;
            ChkSmoking          = selectedSearchSettings.EnableSmoking;
            IsSmokingFirst      = selectedSearchSettings.SmokingFirst;
            ChkAutoRetry        = selectedSearchSettings.EnableAutoRetry;
            ChkOverwrite        = selectedSearchSettings.EnableOverwrite;

            // 予約照会
            ExecuteCheckLatestReservation();
        }
        /// <summary>
        /// 最後に使用した検索条件をXMLから読み込む
        /// </summary>
        private ProcessFormat LoadLastSearchSettings()
        {
            var ret = new ProcessFormat();

            try
            {
                // ファイルが存在する
                ret = XmlConverter.DeSerialize <ProcessFormat>(String.Format(@"{0}\LastSearchSettings.xml", SiteConfig.BASE_DIR));
            }
            catch
            {
                // ファイルが存在しない
            }

            return(ret);
        }
        public void ExecuteWindowClosing()
        {
            // 検索条件の保存
            var selectedSearchSettings = new ProcessFormat
            {
                HotelID         = SelectedHotel,
                CheckinDate     = CheckinDate,
                Type            = SelectedRoomType,
                CheckinValue    = SelectedCheckinTime,
                EnableNoSmoking = ChkNoSmoking,
                EnableSmoking   = ChkSmoking,
                SmokingFirst    = IsSmokingFirst,
                EnableAutoRetry = ChkAutoRetry,
                EnableOverwrite = ChkOverwrite
            };

            XmlConverter.Serialize(selectedSearchSettings, String.Format(@"{0}\LastSearchSettings.xml", SiteConfig.BASE_DIR));
        }
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="procFormat">予約データクラス</param>
        public ReservationControlViewModel(ProcessFormat procFormat)
        {
            FinderProcessFormat = procFormat;
            // ヘッダ(YYYY/MM/DD HotelName)
            Title = String.Format("{0} {1}", FinderProcessFormat.CheckinDate.ToShortDateString(), FinderProcessFormat.HotelID.HotelName);
            // ツールチップ
            GroupBoxToolTip = GetGroupBoxToolTipText();
            // 自動リトライアイコン
            EnableAutoRetry = FinderProcessFormat.EnableAutoRetry;

            ColorMode             = ColorZoneMode.PrimaryLight;
            IconMode              = PackIconKind.Play;
            ProgressBarVisibility = Visibility.Visible;
            ControlVisibility     = Visibility.Visible;

            // 初期化完了時にLoadedイベントを呼び出すように変更
            Loaded();
        }
        /// <summary>
        /// コマンドを実行
        /// </summary>
        public void Execute()
        {
            // 検索クラス作成
            var finder = new ProcessFormat()
            {
                HotelID = new Hotel()
                {
                    HotelID   = SelectedHotel.HotelID,
                    HotelName = SelectedHotel.HotelName,
                    PrefCode  = SelectedHotel.PrefCode
                },
                CheckinDate     = CheckinDate,
                Type            = SelectedRoomType,
                CheckinValue    = SelectedCheckinTime,
                EnableNoSmoking = ChkNoSmoking,
                EnableSmoking   = ChkSmoking,
                SmokingFirst    = IsSmokingFirst,
                EnableAutoRetry = ChkAutoRetry,
                EnableOverwrite = ChkOverwrite
            };
            var item = new ReservationControlViewModel(finder);

            ReservationList.Add(item);
        }
Beispiel #6
0
        /// <summary>
        /// 监控所有进程,定时更新数据
        /// </summary>
        private static void MonitoringProcesses()
        {
            while (true)
            {
                ProcessMonitor monitor = new ProcessMonitor();
                monitor.StartMonitoring();
                processes = monitor.ProcessesList;
                System.Threading.Thread.Sleep(4000);
                processesFormat.Clear();

                foreach (ProcessInfo process in processes)
                {
                    ProcessFormat temp = new ProcessFormat();
                    temp.id     = process.ID;
                    temp.name   = process.Name;
                    temp.cpu    = process.CpuPercent;
                    temp.memory = process.Memory;
                    temp.path   = process.FileName;
                    processesFormat.Add(temp);
                }

                monitor.StopMonitoring();
            }
        }