protected override void UpdatingItem(TASheet newVal, TASheet original, AttendanceDataContext attendance) { attendance.GetTable <TASheet>().Attach(newVal, original); foreach (TASheetItem item in newVal.Items) { TASheetItem old = original.Items.SingleOrDefault(it => it.ID == item.ID); if (old != null) { attendance.GetTable <TASheetItem>().Attach(item, old); } else { attendance.GetTable <TASheetItem>().InsertOnSubmit(item); } } foreach (TASheetItem item in original.Items) { if (newVal.Items.SingleOrDefault(it => it.ID == item.ID) == null) { attendance.GetTable <TASheetItem>().Attach(item); attendance.GetTable <TASheetItem>().DeleteOnSubmit(item); } } }
protected override object GetItemFromInput() { TASheetGroup item = UpdatingItem as TASheetGroup; if (item == null) { item = new TASheetGroup(); item.SheetType = SheetType; item.CreateDate = DateTime.Now; } item.StartDate = dtStartDate.Value; item.EndDate = dtEndDate.Value; if (item.Items == null) { item.Items = new List <TASheetItem>(); } item.Items.Clear(); if (chkTime1.Checked) { TASheetItem ti = new TASheetItem(); ti.ID = Guid.NewGuid(); ti.StartTime = new MyTime((int)txtStartHour1.Value, (int)txtStartMinute1.Value, 0); ti.NextDay = chkNextDay1.Checked; ti.EndTime = new MyTime((int)txtEndHour1.Value, (int)txtEndMinute1.Value, 0); ti.Duration = txtDuration1.Value; item.Items.Add(ti); } if (chkTime2.Checked) { TASheetItem ti = new TASheetItem(); ti.ID = Guid.NewGuid(); ti.StartTime = new MyTime((int)txtStartHour2.Value, (int)txtStartMinute2.Value, 0); ti.NextDay = chkNextDay2.Checked; ti.EndTime = new MyTime((int)txtEndHour2.Value, (int)txtEndMinute2.Value, 0); ti.Duration = txtDuration2.Value; item.Items.Add(ti); } if (chkTime3.Checked) { TASheetItem ti = new TASheetItem(); ti.ID = Guid.NewGuid(); ti.StartTime = new MyTime((int)txtStartHour3.Value, (int)txtStartMinute3.Value, 0); ti.NextDay = chkNextDay3.Checked; ti.EndTime = new MyTime((int)txtEndHour3.Value, (int)txtEndMinute3.Value, 0); ti.Duration = txtDuration3.Value; item.Items.Add(ti); } item.Category = GetCategory(); item.Memo = txtMemo.Text; item.Header = txtHeader.Text; item.Manager = txtManager.Text; if (item.Staff == null) { item.Staff = new List <Staff>(); } item.Staff.Clear(); foreach (TreeNode node in treeView1.Nodes) { item.Staff.Add(node.Tag as Staff); } return(item); }