/// <summary> /// Creates a new work item of a defined type /// </summary> /// <param name="workItemType">The type name</param> /// <param name="title">Default title</param> /// <param name="description">Default description</param> /// <param name="fieldsAndValues">List of extra propierties and values</param> /// <returns></returns> public WorkItem CreateWorkItem(string workItemType, string title, string description, Dictionary<string, object> fieldsAndValues) { WorkItemType wiType = workItemTypeCollection[workItemType]; WorkItem wi = new WorkItem(wiType) { Title = title, Description = description }; foreach (KeyValuePair<string, object> fieldAndValue in fieldsAndValues) { string fieldName = fieldAndValue.Key; object value = fieldAndValue.Value; if (wi.Fields.Contains(fieldName)) wi.Fields[fieldName].Value = value; else throw new ApplicationException(string.Format("Field not found {0} in workItemType {1}, failed to save the item", fieldName, workItemType)); } if (wi.IsValid()) { wi.Save(); } else { ArrayList validationErrors = wi.Validate(); string errMessage = "Work item cannot be saved..."; foreach (Field field in validationErrors) errMessage += "Field: " + field.Name + " has status: " + field.Status + "/n"; throw new ApplicationException(errMessage); } return wi; }
public bool IsValid() { return(workItem.IsValid()); }
private static void ValidateAndSaveWorkItem(WorkItem workItem) { if (!workItem.IsValid()) { var invalidFields = workItem.Validate(); var sb = new StringBuilder(); sb.AppendLine("Can't save item because the following fields are invalid: "); foreach (Field field in invalidFields) { sb.AppendFormat("{0}: '{1}'", field.Name, field.Value).AppendLine(); } Logger.ErrorFormat(sb.ToString()); return; } workItem.Save(); }
/// <summary> /// Validates the fields of this work item. /// </summary> /// <returns> /// True if all fields are valid. False if at least one field is not valid. /// </returns> public bool IsValid() { return(_item.IsValid()); }
public WorkItem UpdateWorkItemField(WorkItem _wi, string _fieldName, object _fieldValue) { WorkItem _preChange = _wi; _wi.Fields[_fieldName].Value = _fieldValue; if (_wi.IsValid()) { return _wi; } else { return _preChange; } }