| 
														
															@@ -1,4 +1,5 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import { Observable, Subject } from "rxjs"; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { resolve } from "path"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { Observable, of, Subject } from "rxjs"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { BaseMessage } from "../dependencies/fisappmessagejsutilty/dependencies/dependencies"; 
														 | 
														
														 | 
														
															 import { BaseMessage } from "../dependencies/fisappmessagejsutilty/dependencies/dependencies"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { LoggingService } from "../dependencies/fisloggingservice/services/logging-service"; 
														 | 
														
														 | 
														
															 import { LoggingService } from "../dependencies/fisloggingservice/services/logging-service"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { MessageSynchronisationServiceInterface, MessageSynchronisationServiceSetting } from "../type/datatype"; 
														 | 
														
														 | 
														
															 import { MessageSynchronisationServiceInterface, MessageSynchronisationServiceSetting } from "../type/datatype"; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -16,13 +17,13 @@ export class MessageSyncrhonizationService implements MessageSynchronisationServ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             try { 
														 | 
														
														 | 
														
															             try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 this.sourceSrc.init(settings.incomingSource).then((data) => { 
														 | 
														
														 | 
														
															                 this.sourceSrc.init(settings.incomingSource).then((data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     if (!data) reject() 
														 | 
														
														 | 
														
															                     if (!data) reject() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    console.log(`File Storage:`) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    data.forEach(e => console.log(e.appLogLocId)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    // console.log(`File Storage:`) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    // data.forEach(e => console.log(e.appLogLocId)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }).then(() => { 
														 | 
														
														 | 
														
															                 }).then(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     this.targetSrc.init(settings.target).then((data) => { 
														 | 
														
														 | 
														
															                     this.targetSrc.init(settings.target).then((data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if (!data) reject() 
														 | 
														
														 | 
														
															                         if (!data) reject() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        console.log(`Mongo Storage`) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        data.forEach(e => console.log(e.appLogLocId)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        // console.log(`Mongo Storage`) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        // data.forEach(e => console.log(e.appLogLocId)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         resolve() 
														 | 
														
														 | 
														
															                         resolve() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }) 
														 | 
														
														 | 
														
															                     }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }) 
														 | 
														
														 | 
														
															                 }) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -34,37 +35,53 @@ export class MessageSyncrhonizationService implements MessageSynchronisationServ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return promiseInit 
														 | 
														
														 | 
														
															         return promiseInit 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public subscribe(obs: Observable<string>): Observable<any> { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public async subscribe(obs: Observable<string>): Promise<Observable<any>> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let subjectOutput = new Subject() 
														 | 
														
														 | 
														
															         let subjectOutput = new Subject() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // filter all source tags[0] log data   
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        let set1 = this.sourceSrc.filter({ msgTag: this.settings.incomingSource.tags[0] }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        set1.then((data) => console.log(data.length)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        let set2 = this.targetSrc.filter({ msgTag: this.settings.target.tags[0] }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        set2.then((data) => console.log(data.length)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // this.compareResult(set1, set2).then((data) => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //     data.forEach(element => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //         subjectOutput.next(element) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //     }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // }) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        this.acquireData().then((data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            this.compareResult(data).then((data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                const obs : Observable<any> = of(...data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                obs.subscribe(subjectOutput) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }).catch((e) => console.error(e)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return subjectOutput.asObservable() 
														 | 
														
														 | 
														
															         return subjectOutput.asObservable() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    // compare results and return differences 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private async compareResult(args: Promise<any>, args2: Promise<any>): Promise<any> { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        let arr1 = [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        let arr2 = [] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        args.then((element) => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            arr1.push(element) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // Acquires the available data from designated storage 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private async acquireData(): Promise<any> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        const promiseQuery: Promise<any> = new Promise((resolve, reject) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            let allSets: any = {} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            let set1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            let set2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            this.sourceSrc.filter({ msgTag: this.settings.incomingSource.tags[0] }).then((data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                set1 = data 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }).then(() => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                this.targetSrc.filter({ msgTag: this.settings.target.tags[0] }).then((data) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    set2 = data 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    allSets.arr1 = set1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    allSets.arr2 = set2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    resolve(allSets) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }) 
														 | 
														
														 | 
														
															         }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        args2.then((element) => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            arr2.push(element) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return promiseQuery 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // compare results and return differences 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private async compareResult(args: any): Promise<any> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return new Promise((resolve, reject) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            let data = [] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            args.arr1.forEach((element) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (args.arr2.some(obj => obj.appData.msgId === element.appData.msgId)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    console.log(`Item Found!`) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    console.log(`This ${element.appData.msgId} is not found`) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    data.push(element) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    resolve(data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }) 
														 | 
														
														 | 
														
															         }) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        console.log(arr1) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        console.log(arr2) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return arr1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |