/// <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> /// Approves the specified dummy. /// </summary> /// <param name="dummy">The dummy.</param> public void Approve(object dummy) { if (this.disableSigning) { return; } string recordIdentification = this.buttonViewReference.ContextValueForKey("RecordId"); string filterName = this.buttonViewReference.ContextValueForKey("TemplateFilter"); if (string.IsNullOrEmpty(recordIdentification)) { this.ParentOrganizerModelController.HandleOrganizerActionError( LocalizedString.TextErrorConfiguration, string.Format(LocalizedString.TextErrorParameterEmpty, "RecordId"), true); return; } UPConfigFilter filter = ConfigurationUnitStore.DefaultStore.FilterByName(filterName); if (filter == null) { this.HandlePageErrorDetails(LocalizedString.TextErrorConfiguration, string.Format(LocalizedString.TextErrorFilterMissing, filterName)); return; } filter = filter.FilterByApplyingValueDictionaryDefaults(this.FieldValueDictionary, true); UPCRMRecord record = new UPCRMRecord(recordIdentification); record.ApplyValuesFromTemplateFilter(filter); UPOfflineEditRecordRequest request = new UPOfflineEditRecordRequest(0); this.buttonRequest = request; string requestOptionString = this.buttonViewReference.ContextValueForKey("RequestOption"); UPOfflineRequestMode requestMode = UPOfflineRequest.RequestModeFromString(requestOptionString, UPOfflineRequestMode.OnlineConfirm); if (request.StartRequest(requestMode, new List <UPCRMRecord> { record }, this) == false) { this.buttonRequest = null; } else { this.ShouldWaitForPendingChanges = true; } }
private void PerformUploadReportPdfWithRecords(List <UPCRMRecord> records) { if (records.Count > 0) { string requestOptionString = this.buttonViewReference.ContextValueForKey("RequestOption"); UPOfflineRequestMode requestMode = UPOfflineRequest.RequestModeFromString(requestOptionString, UPOfflineRequestMode.OnlineConfirm); UPOfflineEditRecordRequest request = new UPOfflineEditRecordRequest(requestMode, null); this.buttonRequest = request; foreach (UPCRMRecord record in records) { request.AddRecord(record); } this.multiRequest.AddRequest(request); } this.multiRequest.Start(); }
private void ContinueRecordDoesNotExist() { string requestModeString = this.ViewReference.ContextValueForKey("RequestMode"); UPOfflineRequestMode requestMode = UPOfflineRequest.RequestModeFromString(requestModeString, UPOfflineRequestMode.OnlineOnly); string filterName = this.ViewReference.ContextValueForKey("TemplateFilter"); string infoAreaId = this.ViewReference.ContextValueForKey("InfoAreaId"); string linkIdString = this.ViewReference.ContextValueForKey("LinkId"); if (string.IsNullOrEmpty(infoAreaId)) { this.ModelController.HandleOrganizerActionError(LocalizedString.TextErrorConfiguration, string.Format(LocalizedString.TextErrorParameterEmpty, "InfoAreaId"), true); return; } int linkId = -1; bool noLink = false; if (!string.IsNullOrEmpty(linkIdString)) { if (linkIdString == "NoLink") { noLink = true; } linkId = Convert.ToInt32(linkIdString); } UPConfigFilter filter = ConfigurationUnitStore.DefaultStore.FilterByName(filterName); if (filter == null) { this.ModelController.HandleOrganizerActionError(LocalizedString.TextErrorConfiguration, string.Format(LocalizedString.TextErrorFilterMissing, filterName), true); return; } filter = filter.FilterByApplyingValueDictionaryDefaults(this.sourceCopyFields, true); this.record = UPCRMRecord.CreateNew(infoAreaId); if (!noLink && !string.IsNullOrEmpty(this.LinkRecordIdentification)) { this.record.AddLink(new UPCRMLink(this.LinkRecordIdentification, linkId)); } this.record.ApplyValuesFromTemplateFilter(filter); UPOfflineEditRecordRequest request = new UPOfflineEditRecordRequest(0); string optionsString = this.ViewReference.ContextValueForKey("Options"); if (!string.IsNullOrEmpty(optionsString)) { Dictionary <string, object> options = optionsString.JsonDictionaryFromString(); if (Convert.ToInt32(options["ComputeLinks"]) != 0) { request.AlwaysSetImplicitLinks = true; } } List <UPCRMRecord> recordArray = new List <UPCRMRecord> { this.record }; string syncParentInfoAreaIdString = this.ViewReference.ContextValueForKey("SyncParentInfoAreaIds"); if (!string.IsNullOrEmpty(syncParentInfoAreaIdString)) { var syncParentInfoAreaIds = syncParentInfoAreaIdString.Split(','); foreach (string syncParentInfoAreaId in syncParentInfoAreaIds) { var infoAreaIdParts = syncParentInfoAreaId.Split(':'); if (infoAreaIdParts.Length == 1) { recordArray.Add(new UPCRMRecord(syncParentInfoAreaId, new UPCRMLink(this.record, -1))); } else if (infoAreaIdParts.Length > 1) { recordArray.Add(new UPCRMRecord(infoAreaIdParts[0], new UPCRMLink(this.record, Convert.ToInt32(infoAreaIdParts[1])))); } } } if (this.ModelController.SetOfflineRequest(request, true)) { if (request.StartRequest(requestMode, recordArray, this) == false) { this.ModelController.SetOfflineRequest(null, true); return; } } else { this.ModelController.HandleOrganizerActionError(LocalizedString.TextErrorActionNotPossible, LocalizedString.TextErrorActionPending, true); } }