public T Get <T>(TaskField <T> field, TaskId id) { Debug.Assert(field != null); Debug.Assert(!id.IsDefault); return(_taskMap[id].GetValue(field)); }
public ProjectData SetRaw(TaskField field, TaskId id, object value) { Debug.Assert(field != null); Debug.Assert(!id.IsDefault); var task = _taskMap[id].SetValue(field, value); return(WithTaskMap(_taskMap.SetItem(task.Id, task))); }
public object GetValue(TaskField field) { if (field == null) { throw new ArgumentNullException(nameof(field)); } if (!_fields.TryGetValue(field, out var result)) { return(field.DefaultValue); } return(result); }
public Task SetValue(TaskField field, object value) { if (field == null) { throw new ArgumentNullException(nameof(field)); } if (field.IsReadOnly || value == null && !field.Type.IsClass || value != null && !field.Type.IsAssignableFrom(value.GetType())) { throw new ArgumentException(nameof(value)); } return(Project.SetTaskField(this, field, value)); }
public ProjectData Set(TaskField field, TaskId id, object value) { Debug.Assert(field != null); Debug.Assert(!id.IsDefault); if (field == TaskFields.Ordinal) { return(SetTaskOrdinal(this, id, (int)value)); } else if (field == TaskFields.Name) { return(SetTaskName(this, id, (string)value)); } else if (field == TaskFields.Duration) { return(SetTaskDuration(this, id, (TimeSpan)value)); } else if (field == TaskFields.Work) { return(SetTaskWork(this, id, (TimeSpan)value)); } else if (field == TaskFields.Predecessors) { return(SetTaskPredecessors(this, id, (string)value)); } else if (field == TaskFields.Successors) { return(SetTaskSuccessors(this, id, (string)value)); } else if (field == TaskFields.ResourceNames) { return(SetTaskResourceNames(this, id, (string)value)); } else if (field == TaskFields.ResourceInitials) { return(SetTaskResourceInitials(this, id, (string)value)); } else { return(SetRaw(field, id, value)); } }
public TaskData SetValue(TaskField field, object value) { if (field == null) { throw new ArgumentNullException(nameof(field)); } if (value == null && !field.Type.IsClass || value != null && !field.Type.IsAssignableFrom(value.GetType())) { throw new ArgumentException(nameof(value)); } var existingValue = GetValue(field); if (Equals(value, existingValue)) { return(this); } var fields = _fields.SetItem(field, value); if (field == TaskFields.Duration) { var oldValue = (TimeSpan)existingValue; var newValue = (TimeSpan)value; if (oldValue == TimeSpan.Zero && newValue != TimeSpan.Zero) { fields = fields.SetItem(TaskFields.IsMilestone, false); } else if (oldValue != TimeSpan.Zero && newValue == TimeSpan.Zero) { fields = fields.SetItem(TaskFields.IsMilestone, true); } } return(new TaskData(fields)); }
public ProjectData Reset(TaskField field, TaskId id) { if (field == TaskFields.Predecessors) { return(ResetTaskPredecessors(this, id)); } else if (field == TaskFields.Successors) { return(ResetTaskSuccessors(this, id)); } else if (field == TaskFields.ResourceNames) { return(ResetTaskResourceNames(this, id)); } else if (field == TaskFields.ResourceInitials) { return(ResetTaskResourceInitials(this, id)); } else { Debug.Assert(false, $"Unexpected field passed to Reset: {field}"); return(this); } }
public object GetValue(TaskField field) { return(_data.GetValue(field)); }
public Task SetValue <T>(TaskField <T> field, T value) { return(SetValue((TaskField)field, value)); }
public T GetValue <T>(TaskField <T> field) { return((T)GetValue((TaskField)field)); }
public bool HasValue(TaskField field) { return(_data.HasValue(field)); }
public bool HasValue(TaskField field) { return(_fields.ContainsKey(field)); }
internal Task SetTaskField(Task task, TaskField field, object value) { var project = Data.Set(field, task.Id, value); return(UpdateProject(project).GetTask(task.Id)); }