1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using Comal.Classes;
- using InABox.Clients;
- using InABox.Core;
- using InABox.DynamicGrid;
- namespace PRSDesktop
- {
- public class AssignmentGrid : DynamicDataGrid<Assignment>
- {
- public AssignmentGrid()
- {
- HiddenColumns.Add(x => x.JobLink.Deleted);
- }
- protected override Dictionary<string, object> EditorValueChanged(DynamicEditorForm editor, Assignment[] items, string name, object value)
- {
- var result = base.EditorValueChanged(editor, items, name, value);
- if (name.Equals("EmployeeLink.ID"))
- {
- var activity = editor.FindEditor("ActivityLink.ID") as ILookupEditorControl;
- if (activity != null)
- DefineLookups(activity, items);
- }
- else if (name.Equals("JobLink.ID"))
- {
- var itp = editor.FindEditor("ITP.ID") as ILookupEditorControl;
- if (itp != null)
- DefineLookups(itp, items);
- }
- else if (name.Equals("Task.ID"))
- {
- var jobid = new Client<Kanban>().Query(
- new Filter<Kanban>(x => x.ID).IsEqualTo(value),
- new Columns<Kanban>(x => x.JobLink.ID)
- ).Rows.FirstOrDefault()?.Get<Kanban, Guid>(x => x.JobLink.ID);
- DynamicGridUtils.UpdateEditorValue(items, "JobLink.ID", jobid.HasValue ? jobid.Value : Guid.Empty);
- DynamicGridUtils.UpdateEditorValue(items, "ITP.ID", Guid.Empty);
- var itp = editor.FindEditor("ITP.ID") as ILookupEditorControl;
- if (itp != null)
- DefineLookups(itp, items);
- }
- return result;
- }
- protected override void AfterLoad(DynamicEditorForm editor, Assignment[] items)
- {
- base.AfterLoad(editor, items);
- if (items.FirstOrDefault().ID == Guid.Empty)
- ReloadForms<Assignment, AssignmentForm, ActivityForm>(editor, items.FirstOrDefault(), x => x.Activity.ID,
- items.FirstOrDefault().ActivityLink.ID);
- }
- }
- }
|