private void ProcessDocument(FileSystemWatcher fileWatcher, BuildContext context, ReferenceDocument document, IList <BuildConfiguration> configurations) { try { if (!document.BeginEdit(fileWatcher)) { return; } // For each configuration, retrieve the processor (visitor) and // process the document... int itemCount = configurations.Count; for (int i = 0; i < itemCount; i++) { BuildConfiguration configuration = configurations[i]; string configName = configuration.Name; if (_dictVisitors.ContainsKey(configName)) { ReferenceTocVisitor visitor = _dictVisitors[configName]; if (visitor != null && visitor.IsInitialized) { visitor.Visit(document); } } } } finally { document.EndEdit(); } }
private void AddSampleData() { using (var db = new MarjieiDb()) { if (db.ReferenceDocuments.Any()) { return; } foreach (var file in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory))) { var fi = new FileInfo(file); if (fi.Extension == ".docx" || fi.Extension == ".pdf") { var doc = new ReferenceDocument { Title = file, DocumentType = DocumentType.Book.ToString(), Author = Environment.UserName, //ReferenceFile = File.ReadAllBytes(file), }; doc.DocumentId = Convert.ToInt32(db.InsertWithIdentity(doc)); } } } }
private void ProcessDocuments(BuildContext context) { if (_listDocuments == null || _listDocuments.Count == 0) { return; } if (_listConfigurations.Count == 0) { return; } FileSystemWatcher fileWatcher = null; try { fileWatcher = new FileSystemWatcher(); // Initialize the configurations and get them ready for processing... for (int i = 0; i < _listConfigurations.Count; i++) { _listConfigurations[i].Initialize(context); } int itemCount = _listDocuments.Count; for (int i = 0; i < itemCount; i++) { ReferenceDocument document = _listDocuments[i]; if (document == null || document.IsEmpty) { continue; } this.ProcessDocument(fileWatcher, context, document); } // Un-initialize the configurations after the processing... for (int i = 0; i < _listConfigurations.Count; i++) { _listConfigurations[i].Uninitialize(); } } finally { if (fileWatcher != null) { fileWatcher.EnableRaisingEvents = false; fileWatcher.Dispose(); fileWatcher = null; } } }
private async void Button_Invalidate_Bill_Clicked(object sender, EventArgs e) { string vMessage = string.Format("¿Estás seguro que deseas anular la factura N*{0}?", ActualBill.ConsecutiveNumber); var vAnswer = await DisplayAlert("Anular Factura", vMessage, "Si", "No"); if (vAnswer) { ReferenceDocument vReferenceDocument = new ReferenceDocument(); vReferenceDocument.ReferenceCode = "01"; vReferenceDocument.ReferenceDocumentType = "01";//Por ahora siempre Factura Electronica vReferenceDocument.ReferenceDescription = "Factura rechazada con disconformidades"; DebitCreditNoteBillRequest vDebitCreditNoteRequest = new DebitCreditNoteBillRequest { SSOT = App.SSOT, User = App.ActualUser, ClientBill = ActualBill, ReferenceDocument = vReferenceDocument }; var vInvalidateBillClient = new BusinessProxy.Bill.InvalidateBill(); var vResponse = await vInvalidateBillClient.GetDataAsync(vDebitCreditNoteRequest); if (vResponse != null) { if (vResponse.IsSuccessful) { await DisplayAlert("", "La factura se ha anulado", "Ok"); } else { await DisplayAlert("", vResponse.TechnicalMessage, "Ok"); } } else { await DisplayAlert("", "Problema al contactar el servidor", "Ok"); } } }
private void ProcessDocuments(BuildContext context) { if (_listDocuments == null || _listDocuments.Count == 0) { return; } List <BuildConfiguration> listConfigurations = new List <BuildConfiguration>(); // List out enabled Sandcastle Assist and the Plugin configurations... IBuildNamedList <BuildConfiguration> dicAssistConfigs = _engineSettings.Configurations; if (dicAssistConfigs != null && dicAssistConfigs.Count != 0) { foreach (ReferenceConfiguration config in dicAssistConfigs) { // It must be both enabled to be used and active/valid... if (config.Enabled && config.IsActive && String.Equals(config.Category, "ReferenceTocVisitor", StringComparison.OrdinalIgnoreCase)) { // Make sure there is a handler of this configuration... if (_dictVisitors.ContainsKey(config.Name)) { listConfigurations.Add(config); } } } } IBuildNamedList <BuildConfiguration> dicPluginConfigs = _engineSettings.PluginConfigurations; if (dicPluginConfigs != null && dicPluginConfigs.Count != 0) { foreach (ReferenceConfiguration config in dicPluginConfigs) { // It must be both enabled to be used and active/valid... if (config.Enabled && config.IsActive && String.Equals(config.Category, "ReferenceTocVisitor", StringComparison.OrdinalIgnoreCase)) { // Make sure there is a handler of this configuration... if (_dictVisitors.ContainsKey(config.Name)) { listConfigurations.Add(config); } } } } if (listConfigurations.Count == 0) { return; } // Initialize the configurations and get them ready for processing... for (int i = 0; i < listConfigurations.Count; i++) { listConfigurations[i].Initialize(context); } FileSystemWatcher fileWatcher = null; try { fileWatcher = new FileSystemWatcher(); int itemCount = _listDocuments.Count; for (int i = 0; i < itemCount; i++) { ReferenceDocument document = _listDocuments[i]; if (document == null || document.IsEmpty) { continue; } this.ProcessDocument(fileWatcher, context, document, listConfigurations); } // Un-initialize the configurations after the processing... for (int i = 0; i < listConfigurations.Count; i++) { listConfigurations[i].Uninitialize(); } } finally { if (fileWatcher != null) { fileWatcher.EnableRaisingEvents = false; fileWatcher.Dispose(); fileWatcher = null; } } }
private bool ProcessTocVisitors(BuildContext context, BuildGroupContext groupContext) { // We need the list of the available configurations from the // reference settings... BuildSettings settings = context.Settings; Debug.Assert(settings != null, "The settings is not associated with the context."); if (settings == null) { return(false); } BuildEngineSettingsList listSettings = settings.EngineSettings; Debug.Assert(listSettings != null, "The settings does not include the engine settings."); if (listSettings == null || listSettings.Count == 0) { return(false); } _engineSettings = listSettings[BuildEngineType.Reference] as ReferenceEngineSettings; Debug.Assert(_engineSettings != null, "The settings does not include the reference engine settings."); if (_engineSettings == null) { return(false); } string tocFilePath = Path.Combine(this.WorkingDirectory, groupContext["$TocFile"]); if (File.Exists(tocFilePath)) { _listDocuments = new List <ReferenceDocument>(); ReferenceDocument document = new ReferenceDocument( tocFilePath, ReferenceDocumentType.TableOfContents); _listDocuments.Add(document); } if (_listDocuments == null || _listDocuments.Count == 0) { return(false); } // 1. Create all the reference visitors... this.PrepareVisitors(context); if (_dictVisitors == null || _dictVisitors.Count == 0) { return(true); } // 2. Initialize all the reference visitors... ICollection <ReferenceTocVisitor> listVisitors = _dictVisitors.Values; foreach (ReferenceTocVisitor visitor in listVisitors) { visitor.Initialize(context, _group); } // 3. Process the configurations... this.ProcessDocuments(context); // 4. Un-initialize all the reference visitors... foreach (ReferenceTocVisitor visitor in listVisitors) { visitor.Uninitialize(); } return(true); }
public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as AdverseEvent; if (dest == null) { throw new ArgumentException("Can only copy to an object of the same type", "other"); } base.CopyTo(dest); if (Identifier != null) { dest.Identifier = (Hl7.Fhir.Model.Identifier)Identifier.DeepCopy(); } if (CategoryElement != null) { dest.CategoryElement = (Code <Hl7.Fhir.Model.AdverseEvent.AdverseEventCategory>)CategoryElement.DeepCopy(); } if (Type != null) { dest.Type = (Hl7.Fhir.Model.CodeableConcept)Type.DeepCopy(); } if (Subject != null) { dest.Subject = (Hl7.Fhir.Model.ResourceReference)Subject.DeepCopy(); } if (DateElement != null) { dest.DateElement = (Hl7.Fhir.Model.FhirDateTime)DateElement.DeepCopy(); } if (Reaction != null) { dest.Reaction = new List <Hl7.Fhir.Model.ResourceReference>(Reaction.DeepCopy()); } if (Location != null) { dest.Location = (Hl7.Fhir.Model.ResourceReference)Location.DeepCopy(); } if (Seriousness != null) { dest.Seriousness = (Hl7.Fhir.Model.CodeableConcept)Seriousness.DeepCopy(); } if (Outcome != null) { dest.Outcome = (Hl7.Fhir.Model.CodeableConcept)Outcome.DeepCopy(); } if (Recorder != null) { dest.Recorder = (Hl7.Fhir.Model.ResourceReference)Recorder.DeepCopy(); } if (EventParticipant != null) { dest.EventParticipant = (Hl7.Fhir.Model.ResourceReference)EventParticipant.DeepCopy(); } if (DescriptionElement != null) { dest.DescriptionElement = (Hl7.Fhir.Model.FhirString)DescriptionElement.DeepCopy(); } if (SuspectEntity != null) { dest.SuspectEntity = new List <Hl7.Fhir.Model.AdverseEvent.SuspectEntityComponent>(SuspectEntity.DeepCopy()); } if (SubjectMedicalHistory != null) { dest.SubjectMedicalHistory = new List <Hl7.Fhir.Model.ResourceReference>(SubjectMedicalHistory.DeepCopy()); } if (ReferenceDocument != null) { dest.ReferenceDocument = new List <Hl7.Fhir.Model.ResourceReference>(ReferenceDocument.DeepCopy()); } if (Study != null) { dest.Study = new List <Hl7.Fhir.Model.ResourceReference>(Study.DeepCopy()); } return(dest); }
protected override bool OnExecute(BuildContext context) { Debug.Assert(_group != null); if (_group == null) { return(false); } ReferenceGroupContext groupContext = context.GroupContexts[_group.Id] as ReferenceGroupContext; if (groupContext == null) { throw new BuildException( "The group context is not provided, and it is required by the build system."); } // Create the documents... string reflectionFile = groupContext["$ReflectionFile"]; string refInfoFile = Path.ChangeExtension(reflectionFile, ".org"); string workingDir = this.WorkingDirectory; _listDocuments = new List <ReferenceDocument>(); // the reflection file... ReferenceDocument document = new ReferenceDocument( Path.Combine(workingDir, refInfoFile), ReferenceDocumentType.Reflection); _listDocuments.Add(document); // the comment files... IList <string> commentFiles = groupContext.CommentFiles; if (commentFiles != null && commentFiles.Count != 0) { for (int i = 0; i < commentFiles.Count; i++) { document = new ReferenceDocument(commentFiles[i], ReferenceDocumentType.Comments); _listDocuments.Add(document); } } if (_listDocuments == null || _listDocuments.Count == 0) { return(false); } // We need the list of the available configurations from the // reference settings... BuildSettings settings = context.Settings; Debug.Assert(settings != null, "The settings is not associated with the context."); if (settings == null) { return(false); } BuildEngineSettingsList listSettings = settings.EngineSettings; Debug.Assert(listSettings != null, "The settings does not include the engine settings."); if (listSettings == null || listSettings.Count == 0) { return(false); } _engineSettings = listSettings[BuildEngineType.Reference] as ReferenceEngineSettings; Debug.Assert(_engineSettings != null, "The settings does not include the reference engine settings."); if (_engineSettings == null) { return(false); } // 1. Create all the reference visitors... this.PrepareVisitors(context); if ((_dictVisitors == null || _dictVisitors.Count == 0) || (_listConfigurations == null || _listConfigurations.Count == 0)) { return(true); } // 2. Initialize all the reference visitors... ICollection <ReferenceVisitor> listVisitors = _dictVisitors.Values; foreach (ReferenceVisitor visitor in listVisitors) { visitor.Initialize(context, _group); } // 3. Process the configurations... this.ProcessDocuments(context); // 4. Un-initialize all the reference visitors... foreach (ReferenceVisitor visitor in listVisitors) { visitor.Uninitialize(); } return(true); }
public ReferenceDocumentDetails(AssociateReferenceDetail reference, ReferenceDocument referenceDocument) { this.Reference = reference; this.ReferenceDocument = referenceDocument; }
private void UpdateReferences(Associate associate, Site sourceSite, Associate originalAssociate) { var preExistingDocuments = new List<ReferenceDocumentDetails>(); this.GatherListOfPreExistingDocumentsInNewReferences(preExistingDocuments, associate.AssociateReferenceDetails); foreach (ReferenceDocumentDetails referenceDocumentDetails in preExistingDocuments) { this.MomentaDb.Documents.ApplyCurrentValues(referenceDocumentDetails.ReferenceDocument.Document); referenceDocumentDetails.Reference.ReferenceDocuments.Remove(referenceDocumentDetails.ReferenceDocument); } // Add any new references // We cannot use a foreach loop because when you call originalAssociate.AssociateReferenceDetails.Add(reference), // the entity gets removed from associate.AssociateReferenceDetails, thus rendering the existing enumerator // invalid, causing an exception // http://stackoverflow.com/questions/5538974/the-relationship-could-not-be-changed-because-one-or-more-of-the-foreign-key-pro while (associate.AssociateReferenceDetails.Any(r => r.ID <= 0)) { AssociateReferenceDetail associateReferenceDetail = associate.AssociateReferenceDetails.First(r => r.ID <= 0); foreach (AssociateReferenceDetail subReference in associateReferenceDetail.SubReferences) { subReference.ContactPermission = associateReferenceDetail.ContactPermission; foreach (ReferenceDocument referenceDocument in subReference.ReferenceDocuments) { this.SetReferenceDocumentEntityState(referenceDocument); } } originalAssociate.AssociateReferenceDetails.Add(associateReferenceDetail); foreach (ReferenceDocument referenceDocument in associateReferenceDetail.ReferenceDocuments) { this.SetReferenceDocumentEntityState(referenceDocument); } } // Update any changes in existing references // After all the new references have been added to originalAssociate.AssociateReferenceDetails // and thus removed from associate.AssociateReferenceDetails (see above), the remainder references // must be the updates. foreach (AssociateReferenceDetail reference in associate.AssociateReferenceDetails) { AssociateReferenceDetail originalReference = originalAssociate.AssociateReferenceDetails.FirstOrDefault(r => r.ID == reference.ID); if (originalReference == null) { /* this can happen if the page was loaded whilst the reference exists but it was since deleted in another session. */ continue; } if (sourceSite == Site.AssociatePortal && originalReference.LockedOnPortal) { /* * this can happen if they hack the reference ids submitted to the server or if they resubmit an old request. * if the reference should be locked for editing on the Associate Portal and the source is AP then skip it. */ continue; } this.MomentaDb.AssociateReferenceDetails.ApplyCurrentValues(reference); foreach (ReferenceDocument refDoc in reference.ReferenceDocuments) { this.ApplyReferenceDocumentUpdates(sourceSite, refDoc); } // Add any new accountants (see above notes about adding new references) while (reference.SubReferences.Any(a => a.ID <= 0)) { AssociateReferenceDetail subReference = reference.SubReferences.First(a => a.ID <= 0); subReference.ContactPermission = reference.ContactPermission; originalReference.SubReferences.Add(subReference); foreach (ReferenceDocument referenceDocument in subReference.ReferenceDocuments) { this.SetReferenceDocumentEntityState(referenceDocument); } } // Update any changes in existing accountants foreach (AssociateReferenceDetail accountant in reference.SubReferences) { accountant.ContactPermission = reference.ContactPermission; AssociateReferenceDetail originalSubReference = this.MomentaDb.AssociateReferenceDetails.FirstOrDefault(r => r.ID == accountant.ID); this.MomentaDb.AssociateReferenceDetails.ApplyCurrentValues(accountant); foreach (ReferenceDocument refDoc in accountant.ReferenceDocuments) { this.ApplyReferenceDocumentUpdates(sourceSite, refDoc); } } } foreach (ReferenceDocumentDetails referenceDocumentDetails in preExistingDocuments) { AssociateReferenceDetail reference = referenceDocumentDetails.Reference; var rd = new ReferenceDocument { ReferenceId = reference.ID, DocumentId = referenceDocumentDetails.ReferenceDocument.DocumentId }; reference.ReferenceDocuments.Add(rd); } }
private void SetReferenceDocumentEntityState(ReferenceDocument referenceDocument) { // We only want EF to attempt to update the fields in Document not DocumentFull. this.MomentaDb.ObjectStateManager.ChangeObjectState( referenceDocument.Document, EntityState.Modified); this.MomentaDb.ObjectStateManager.ChangeObjectState( referenceDocument.Document.DocumentFull, EntityState.Unchanged); }
private void ApplyReferenceDocumentUpdates(Site sourceSite, ReferenceDocument refDoc) { string qualifiedEntitySetName = this.MomentaDb.DefaultContainerName + "." + ObjectContext.GetEntitySetName(this.MomentaDb, refDoc.Document); EntityKey entityKey = refDoc.Document.EntityKey ?? new EntityKey(qualifiedEntitySetName, "DocumentId", refDoc.Document.DocumentId); object o; if (!this.MomentaDb.TryGetObjectByKey(entityKey, out o)) { return; } var originalReferenceDocument = (Document)o; bool approvedStatusToUse = (sourceSite == Site.Admin) ? refDoc.Document.Approved : originalReferenceDocument.Approved; this.MomentaDb.Documents.ApplyCurrentValues(refDoc.Document); originalReferenceDocument.Approved = approvedStatusToUse; }