private bool UpdateDateTimeFieldValue(Model.FieldDefinitions.FieldValue fieldValue, CustomFieldValue customFieldValue) { if (!(fieldValue is Model.FieldDefinitions.DateTimeFieldValue dateTimeFieldValue)) { return(false); } dateTimeFieldValue.PreviousValue = dateTimeFieldValue.Value; var listString = _tmService.GetMultipleStringValues(fieldValue.GetValueString(), fieldValue.ValueType).ToList(); if (!string.IsNullOrEmpty(customFieldValue.Value)) { var index = listString.IndexOf(customFieldValue.Value); if (index > -1) { listString[index] = customFieldValue.NewValue; } } var newDateTimeFieldValue = new Model.FieldDefinitions.DateTimeFieldValue { Name = fieldValue.Name, Value = DateTime.Parse(listString.First()), ValueType = FieldValueType.DateTime }; fieldValue.Clear(); fieldValue.Add(newDateTimeFieldValue); return(dateTimeFieldValue.PreviousValue != dateTimeFieldValue.Value); }
private bool UpdateMultipleStringFieldValue(Model.FieldDefinitions.FieldValue fieldValue, CustomFieldValue customFieldValue) { if (!(fieldValue is Model.FieldDefinitions.MultipleStringFieldValue multipleStringFieldValue)) { return(false); } if (multipleStringFieldValue.PreviousValues == null) { multipleStringFieldValue.PreviousValues = new HashSet <string>(); foreach (var value in multipleStringFieldValue.Values) { multipleStringFieldValue.PreviousValues.Add(value.Clone().ToString()); } } var listString = _tmService.GetMultipleStringValues(fieldValue.GetValueString(), fieldValue.ValueType).ToList(); if (!string.IsNullOrEmpty(customFieldValue.Value)) { var index = listString.IndexOf(customFieldValue.Value); if (index > -1) { listString[index] = customFieldValue.NewValue; } } var multiStrngFieldValue = new Model.FieldDefinitions.MultipleStringFieldValue { Name = fieldValue.Name, Values = new HashSet <string>(listString), ValueType = FieldValueType.MultipleString }; fieldValue.Clear(); fieldValue.Add(multiStrngFieldValue); var valueString = ValuesToString(multipleStringFieldValue.Values); var previousValueString = ValuesToString(multipleStringFieldValue.PreviousValues); return(previousValueString != valueString); }
private static bool UpdateSinglePicklistFieldValue(Model.FieldDefinitions.FieldValue fieldValue, CustomFieldValue customFieldValue) { if (!(fieldValue is Model.FieldDefinitions.SinglePicklistFieldValue singlePicklistFieldValue)) { return(false); } if (!singlePicklistFieldValue.Value.Name.Equals(customFieldValue.Value)) { return(false); } singlePicklistFieldValue.PreviousValue = new Model.FieldDefinitions.PicklistItem { Name = singlePicklistFieldValue.Value.Name, ID = singlePicklistFieldValue.Value.ID, PreviousName = singlePicklistFieldValue.Value.Name }; singlePicklistFieldValue.Value.PreviousName = singlePicklistFieldValue.Value.Name; singlePicklistFieldValue.Value.Name = customFieldValue.NewValue; var picklistFieldValue = new Model.FieldDefinitions.SinglePicklistFieldValue { ValueType = FieldValueType.SinglePicklist, Name = fieldValue.Name, Value = new Model.FieldDefinitions.PicklistItem(singlePicklistFieldValue.Value.Name) { ID = singlePicklistFieldValue.Value.ID, PreviousName = singlePicklistFieldValue.Value.PreviousName } }; fieldValue.Clear(); fieldValue.Merge(picklistFieldValue); return(true); }
private bool UpdateSingleStringFieldValue(Model.FieldDefinitions.FieldValue fieldValue, CustomFieldValue customFieldValue) { if (!(fieldValue is Model.FieldDefinitions.SingleStringFieldValue singleStringFieldValue)) { return(false); } if (singleStringFieldValue.Value != customFieldValue.Value) { return(false); } singleStringFieldValue.PreviousValue = singleStringFieldValue.Value; var listString = _tmService.GetMultipleStringValues(fieldValue.GetValueString(), fieldValue.ValueType).ToList(); if (!string.IsNullOrEmpty(customFieldValue.Value)) { var index = listString.IndexOf(customFieldValue.Value); if (index > -1) { listString[index] = customFieldValue.NewValue; } } var newSingleStringFieldValue = new Model.FieldDefinitions.SingleStringFieldValue { Name = fieldValue.Name, Value = listString.First(), ValueType = FieldValueType.SingleString }; fieldValue.Clear(); fieldValue.Merge(newSingleStringFieldValue); return(singleStringFieldValue.PreviousValue != singleStringFieldValue.Value); }
private static bool UpdateMultiplePickListFieldValue(Model.FieldDefinitions.FieldValue fieldValue, CustomFieldValue customFieldValue) { if (!(fieldValue is Model.FieldDefinitions.MultiplePicklistFieldValue multiplePicklistFieldValue)) { return(false); } var canUpdate = false; foreach (var picklistItem in multiplePicklistFieldValue.Values) { if (picklistItem.Name.Equals(customFieldValue.Value) && customFieldValue.NewValue != null) { canUpdate = true; } } if (!canUpdate) { return(false); } multiplePicklistFieldValue.PreviousValues = new List <Model.FieldDefinitions.PicklistItem>(); foreach (var picklistItem in multiplePicklistFieldValue.Values) { var pickListItemClone = new Model.FieldDefinitions.PicklistItem(picklistItem.Name) { ID = picklistItem.ID, PreviousName = picklistItem.Name }; multiplePicklistFieldValue.PreviousValues.Add(pickListItemClone); } var updated = false; var values = new List <Model.FieldDefinitions.PicklistItem>(); foreach (var picklistItem in multiplePicklistFieldValue.Values) { picklistItem.PreviousName = picklistItem.Name; if (picklistItem.Name.Equals(customFieldValue.Value) && customFieldValue.NewValue != null) { updated = true; picklistItem.Name = customFieldValue.NewValue; } values.Add(new Model.FieldDefinitions.PicklistItem(picklistItem.Name) { ID = picklistItem.ID, PreviousName = picklistItem.PreviousName }); } var picklistFieldValue = new Model.FieldDefinitions.MultiplePicklistFieldValue { ValueType = FieldValueType.MultiplePicklist, Name = fieldValue.Name, Values = values }; fieldValue.Clear(); fieldValue.Merge(picklistFieldValue); return(updated); }