/// <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); }
/// <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(); } }