/// <summary> /// 作業の作成 /// </summary> /// <param name="subject"></param> /// <param name="categoryId"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="workId"></param> /// <returns></returns> public Work CreateWork( string subject, int categoryId, DateTime startTime, DateTime endTime ) { long workId; if( Api.CreateWork( subject, categoryId, startTime, endTime, out workId ) == false ) { MessageBox.Show( "作業の作成に失敗しました。", "作業の作成", MessageBoxButton.OK, MessageBoxImage.Error ); return null; } var work = new Work( workId ) { UserId = Api.LoginUser.Id, CategoryId = categoryId, Subject = subject, StartTime = startTime, EndTime = endTime, }; return work; }
/// <summary> /// 作業アイテムの作成 /// </summary> /// <param name="work"></param> /// <returns></returns> WorkItem _CreateWorkItem( Work work ) { var category = Controllers.Category.Categories.Find( c => c.Id == work.CategoryId ); var background = (Color)ColorConverter.ConvertFromString( category.Background ); var item = new WorkItem() { Background = new SolidColorBrush( background ), Margin = new Thickness( 0, 0, 0, 1 ), Tag = work, }; item.Subject.Text = work.Subject; item.TopBarMoveing += _Item_TopBarMoveing; item.TopBarMoved += _Item_TopBarMoved; item.BottomBarMoveing += _Item_BottomBarMoveing; item.BottomBarMoved += _Item_BottomBarMoved; item.SubjectChanged += _Item_SubjectChanged; return item; }
/// <summary> /// マウスアップ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _TimeBackGrid_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { if( IsReadOnly ) { return; } if( m_createGhostStart ) { m_createGhostStart = false; m_timeBackGrid.ReleaseMouseCapture(); m_createGhostLock = true; m_reserveWork = _CreateWork( m_createStartPos.Y, e.GetPosition( m_timeBackGrid ).Y ); // カテゴリーの選択ツールボックスを表示する { var pos = e.GetPosition( this ); var screenPos = this.PointToScreen( pos ); var selectCategoryToolBox = new SelectCategoryToolBox(); selectCategoryToolBox.SetCategories( Controllers.Category.Categories ); selectCategoryToolBox.Left = screenPos.X + 10; selectCategoryToolBox.Top = screenPos.Y - 100; selectCategoryToolBox.SelectedCategory += _SelectCategoryToolBox_SelectedCategory; selectCategoryToolBox.Closed += _SelectCategoryToolBox_Closed; selectCategoryToolBox.Show(); } } }
/// <summary> /// 作業の作成 /// </summary> /// <param name="startPosY"></param> /// <param name="endPosY"></param> /// <returns></returns> Work _CreateWork( double startPosY, double endPosY ) { if( startPosY > endPosY ) { // 上にドラッグしている var temp = startPosY; startPosY = endPosY; endPosY = temp; var startTime = _GetTime( startPosY, false ); var endTime = _GetTime( endPosY, true ); // 重複させない startTime = _GetLastFreeTime( startTime, endTime ); // 仮 var startDateTime = DateTime.Now.Date.Add( startTime ); var endDateTime = DateTime.Now.Date.Add( endTime ); var work = new Work() { CategoryId = 1, StartTime = startDateTime, EndTime = endDateTime, Subject = "新規作成", }; return work; } else { // 下にドラッグしている var startTime = _GetTime( startPosY, false ); var endTime = _GetTime( endPosY, true ); // 重複させない endTime = _GetFirstFreeTime( startTime, endTime ); // 仮 var startDateTime = DateTime.Now.Date.Add( startTime ); var endDateTime = DateTime.Now.Date.Add( endTime ); var work = new Work() { CategoryId = 1, StartTime = startDateTime, EndTime = endDateTime, Subject = "新規作成", }; return work; } }