private UPMObjective CreateObjectiveIdentfier(UPObjectivesItem item, IIdentifier identifier) { UPMObjective objective = new UPMObjective(identifier); objective.ObjectiveItem = null; UPMStringField titleField = new UPMStringField(StringIdentifier.IdentifierWithStringId($"{identifier.IdentifierAsString}-title")); titleField.StringValue = item.TitleFieldValue; UPMStringField subtitleField = new UPMStringField(StringIdentifier.IdentifierWithStringId($"{identifier.IdentifierAsString}-subtitle")); subtitleField.StringValue = item.SubTitelFieldValue; UPMStringField dateField = new UPMStringField(StringIdentifier.IdentifierWithStringId($"{identifier.IdentifierAsString}-date")); dateField.StringValue = DateExtensions.LocalizedFormattedDate(item.Date); objective.AddMainField(titleField); objective.AddMainField(subtitleField); objective.AddMainField(dateField); objective.DoneField = new UPMBooleanEditField(StringIdentifier.IdentifierWithStringId($"{identifier.IdentifierAsString}-done")); objective.DoneField.BoolValue = item.Completed; objective.CanBeDeletedField = new UPMBooleanEditField(StringIdentifier.IdentifierWithStringId($"{identifier.IdentifierAsString}-canByDelete")); objective.CanBeDeletedField.BoolValue = item.CanBeDeleted; return(objective); }
/// <summary> /// Returns changed records. /// </summary> /// <returns></returns> public override List <UPCRMRecord> ChangedRecords() { List <UPCRMRecord> changedRecords = new List <UPCRMRecord>(); UPMObjectivesPage page = (UPMObjectivesPage)this.Page; foreach (UPMObjectivesSection section in page.Children) { foreach (UPMObjective item in section.Children) { UPObjectivesItem crmItem = item.ObjectiveItem; if (item.DoneField.Changed) { if (crmItem != null) { crmItem.Completed = item.DoneField.BoolValue; } } int editFieldIndex = 0; for (int elementIndex = 0; elementIndex < item.Fields.Count; elementIndex++) { UPMElement element = item.Fields[elementIndex]; if (element is UPMEditField) { UPMEditField editField = (UPMEditField)element; if (editField.Changed) { List <UPEditFieldContext> fieldContextList = this.editPageContext.EditFields.Values.ToList(); foreach (UPEditFieldContext fieldContext in fieldContextList) { if (fieldContext.EditField == editField) { crmItem?.SetValueForAdditionalFieldPosition(fieldContext.Value ?? string.Empty, editFieldIndex); } } } editFieldIndex++; } else if (element is UPMStringField) { editFieldIndex++; } } List <UPCRMRecord> itemChangedRecords = crmItem?.ChangedRecords(); if (itemChangedRecords != null) { changedRecords.AddRange(itemChangedRecords); } } } foreach (UPObjectivesItem deletedItem in this.DeletedItems) { List <UPCRMRecord> itemChangedRecords = deletedItem.ChangedRecords(); if (itemChangedRecords != null) { changedRecords.AddRange(deletedItem.ChangedRecords()); } } return(changedRecords.Count == 0 ? null : changedRecords); }