private void AddValuesToRecordContextRecordId(Dictionary <string, object> functionValueMapping, UPCRMRecord changedRecord, string contectRecordIdentification) { Dictionary <string, object> contextValuesWithFunctions = null; for (int row = 0; row < this.contextResult.RowCount; row++) { var resultRow = (UPCRMResultRow)this.contextResult.ResultRowAtIndex(row); if (resultRow.RecordIdentificationAtFieldIndex(0) == contectRecordIdentification) { contextValuesWithFunctions = resultRow.ValuesWithFunctions(); break; } } foreach (string function in functionValueMapping.Keys) { if (contextValuesWithFunctions == null) { if (functionValueMapping.ValueOrDefault(function) != null) { changedRecord.NewValueFieldId(functionValueMapping.ValueOrDefault(function) as string, this.FieldControl.FunctionNames().ValueOrDefault(function).FieldId); } else { changedRecord.NewValueFieldId(null, this.FieldControl.FunctionNames().ValueOrDefault(function).FieldId); } } else { if (functionValueMapping.ValueOrDefault(function) != null) { changedRecord.NewValueFromValueFieldId( functionValueMapping.ValueOrDefault(function) as string, contextValuesWithFunctions.ValueOrDefault(function) as string, this.FieldControl.FunctionNames().ValueOrDefault(function).FieldId); } else { changedRecord.NewValueFromValueFieldId(null, contextValuesWithFunctions.ValueOrDefault(function) as string, this.FieldControl.FunctionNames().ValueOrDefault(function).FieldId); } } } }
/// <summary> /// Uploads the file. /// </summary> /// <param name="file">The file.</param> public void UploadFile(UPMInboxFile file) { this.uploadingFile = file; byte[] data = null; //NSData.DataWithContentsOfURL(file.URL); string fileName = file.Name; foreach (UPEditFieldContext changedField in this.editFieldContexts.Values) { if (changedField.FieldConfig.Function == "Filename" && !string.IsNullOrEmpty(changedField.Value)) { fileName = changedField.Value; // New filename has no extension. Add original extension //if (fileName.PathExtension().Length == 0) //{ // fileName = $"{fileName}.{file.Path.PathExtension()}"; //} break; } } this.docUploadRequest = new UPOfflineUploadDocumentRequest(data, -1, fileName, file.MimeTye, this.recordIdentification, -1); List <UPCRMRecord> docUploadRecords = this.docUploadRequest.CreateOfflineRecords(); string d1RecordId = docUploadRecords[0].RecordId; string d3RecordId = docUploadRecords[1].RecordId; UPCRMRecord d1Record = new UPCRMRecord(d1RecordId, "Update"); UPCRMRecord d3Record = new UPCRMRecord(d3RecordId, "Update"); this.editRecordRequest = new UPOfflineEditRecordRequest(UPOfflineRequestMode.OnlineConfirm, this.ViewReference); foreach (UPEditFieldContext changedField in this.editFieldContexts.Values) { UPCRMRecord record = changedField.FieldConfig.InfoAreaId == "D1" ? d1Record : d3Record; if (changedField.FieldConfig.Function == "Filename") { continue; } UPCRMFieldValue fieldValue = record.NewValueFieldId(changedField.Value, changedField.FieldId); if (!string.IsNullOrEmpty(changedField.DateOriginalValue)) { fieldValue.DateOriginalValue = changedField.DateOriginalValue; } else if (!string.IsNullOrEmpty(changedField.TimeOriginalValue)) { fieldValue.TimeOriginalValue = changedField.TimeOriginalValue; } } this.editRecordRequest.TitleLine = "FieldUploadFields"; this.editRecordRequest.DetailsLine = ""; this.multiRequest = new UPOfflineMultiRequest(this); this.multiRequest.AddRequest(this.docUploadRequest); this.multiRequest.AddRequest(this.editRecordRequest); this.multiRequest.Start(); }
/// <summary> /// Changeds the records. /// </summary> /// <returns></returns> public List <UPCRMRecord> ChangedRecords() { UPCRMRecord changedRecord = null; if (this.Deleted && this.Record != null) { changedRecord = new UPCRMRecord(this.Record.RecordIdentification, "Delete"); } else { if (this.Created && this.Record == null) { UPObjectives objectives = this.Group.Objectives; changedRecord = new UPCRMRecord(this.Group.Configuration.DestinationFieldControl.InfoAreaId); changedRecord.AddLink(new UPCRMLink(objectives.RecordIdentification)); for (int i = 0; i < this.AdditionalFields.Count; i++) { string newValue = this.values[i]; if (!string.IsNullOrEmpty(newValue)) { UPConfigFieldControlField field = this.AdditionalFields[i]; changedRecord.NewValueFieldId(newValue, field.FieldId); } } } else if (this.Changed && this.Record != null) { changedRecord = new UPCRMRecord(this.Record.RecordIdentification); changedRecord.AddLink(new UPCRMLink(this.Group.Objectives.RecordIdentification)); for (int i = 0; i < this.AdditionalFields.Count; i++) { string originalValue = this.OriginalValues[i]; string newValue = this.values[i]; if (originalValue != newValue) { UPConfigFieldControlField field = this.AdditionalFields[i]; changedRecord.NewValueFromValueFieldId(newValue, originalValue, field.FieldId); } } if (this.completed != this.originalCompleted) { string sCompleted = StringExtensions.CrmValueFromBool(this.completed); string sOriginalCompleted = StringExtensions.CrmValueFromBool(this.originalCompleted); if (this.Group.Configuration.FieldForFunction(Constants.FieldCompletedFunction) != null) { changedRecord.NewValueFromValueFieldId(sCompleted, sOriginalCompleted, this.Group.Configuration.FieldForFunction(Constants.FieldCompletedFunction).FieldId); } if (this.completed) { if (this.Group.Configuration.FieldForFunction(Constants.FieldCompletedOnFunction) != null) { changedRecord.NewValueFromValueFieldId(StringExtensions.CrmValueFromDate(DateTime.UtcNow), string.Empty, this.Group.Configuration.FieldForFunction(Constants.FieldCompletedOnFunction).FieldId); } if (this.Group.Configuration.FieldForFunction(Constants.FieldCompletedByFunction) != null) { changedRecord.NewValueFieldId(ServerSession.CurrentSession.CurRep, this.Group.Configuration.FieldForFunction(Constants.FieldCompletedByFunction).FieldId); } } } } } return(changedRecord != null ? new List <UPCRMRecord> { changedRecord } : null); }