Esempio n. 1
0
        public static void Main(string[] args)
        {
            var sourceFile = "DATANORM.001";
            var resultFile = "result.xml";

            var adapterType = InferAdapterFromFile(sourceFile);

            var factory = new AdapterFactory(@"T:\Gemeinsame Dateien\trinity6");

            var adapter = factory.CreateAdapter(adapterType);

            AuthorizeAdapter(adapter);

            AttachEventHandlers(adapter);

            try
            {
                adapter.Run(sourceFile, resultFile);
                Console.WriteLine("Conversion completed.");
            }
            catch (AdapterFailureException ex)
            {
                Console.WriteLine("Conversion failed with error: " + ex.Message);
            }
        }
Esempio n. 2
0
 private LogBookDataModel GetLogBook(int logNum, string environment, bool fetchWithDetails = false)
 {
     using (var adapter = AdapterFactory.CreateAdapter(MyNameSpace, environment))
     {
         return(GetLogBookWithDetails(logNum, adapter, fetchWithDetails));
     }
 }
Esempio n. 3
0
        private static BillingModel GetPatBilling(string practice, int patNum)
        {
            var environment = PracticeManager.GetEnvironmentFromPractice(practice);

            var collection = new EntityCollection <PatBillingEntity>();

            var bucket = new RelationPredicateBucket();

            bucket.PredicateExpression.Add(PatBillingFields.Practice == practice);
            bucket.PredicateExpression.Add(PatBillingFields.BillTo == "P");
            bucket.PredicateExpression.Add(PatBillingFields.PatNum == patNum);

            using (var adapter = AdapterFactory.CreateAdapter(MyNameSpace, environment)) { adapter.FetchEntityCollection(collection, bucket); }

            return(collection.Count < 1 ? null : new BillingModel(collection.Single()));
        }
        public bool CreateIDPAdapter(string moduleName)
        {
            if (adapter != null)
            {
                return(true);
            }

            adapter = AdapterFactory.CreateAdapter <IPurchaseAdapter>(moduleName);

            if (adapter == null)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Esempio n. 5
0
        public bool CreateWebviewAdapter(string moduleName)
        {
            if (null != adapter)
            {
                return(true);
            }

            adapter = AdapterFactory.CreateAdapter <IWebviewAdapter>(moduleName);

            if (null == adapter)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Esempio n. 6
0
        private LogDetailModel GetLogDetail(string logDetailPk, string environment)
        {
            Guid logDetailPkGuid;

            if (!Guid.TryParse(logDetailPk, out logDetailPkGuid))
            {
                return(null);
            }

            using (IDataAccessAdapter adapter = AdapterFactory.CreateAdapter(MyNameSpace, environment))
            {
                var toFetch  = new LogDetailEntity(logDetailPkGuid);
                var prefetch = new PrefetchPath2(EntityType.LogDetailEntity)
                {
                    LogDetailEntity.PrefetchPathPhysician
                };
                var fetchResult = adapter.FetchEntity(toFetch, prefetch);
                return(!fetchResult ? null : new LogDetailModel(toFetch));
            }
        }
Esempio n. 7
0
        private object GetProtocolInfoForLogDetailPk(string logDetailPk, string environment)
        {
            Guid logDetailPkGuid;

            if (!Guid.TryParse(logDetailPk, out logDetailPkGuid))
            {
                return(null);
            }

            var typedView = new LogDetailProtocolInfoTypedView();
            var filter    = new RelationPredicateBucket();

            filter.PredicateExpression.Add(LogDetailProtocolInfoFields.LogDetailPk == logDetailPkGuid);


            using (IDataAccessAdapter adapter = AdapterFactory.CreateAdapter(MyNameSpace, environment))
            {
                adapter.FetchTypedView(typedView.GetFieldsInfo(), typedView, filter, 0, true);
            }

            return(typedView);
        }
Esempio n. 8
0
        private static PracticeEntity FetchPractice(string practiceAbbr)
        {
            var path = new PrefetchPath2((int)EntityType.PracticeEntity);

            path.Add(PracticeEntity.PrefetchPathClinics);

            var practiceEntity = new PracticeEntity();

            practiceEntity.PracticeAbbr = practiceAbbr;
            using (IDataAccessAdapter adapter = AdapterFactory.CreateAdapter(MyNameSpace))
            {
                bool fetchResult = adapter.FetchEntityUsingUniqueConstraint(practiceEntity,
                                                                            practiceEntity.ConstructFilterForUCPracticeAbbr(),
                                                                            path);
                if (!fetchResult)
                {
                    // Not found. Place handle code here.
                    return(null);
                }
            }
            return(practiceEntity);
        }
Esempio n. 9
0
        private EntityCollection <ClinicLogBookEntity> GetClinicLogBooks(Guid clinicPk, DateTime visitDate, string environment)
        {
            var filter = new RelationPredicateBucket();

            filter.PredicateExpression.Add(ClinicLogBookFields.ClinicPk == clinicPk);
            filter.PredicateExpression.AddWithAnd(ClinicLogBookFields.SvcDate == visitDate.Date);

            var myCollection = new EntityCollection <ClinicLogBookEntity>();

            try
            {
                using (IDataAccessAdapter adapter = AdapterFactory.CreateAdapter(MyNameSpace, environment))
                {
                    adapter.FetchEntityCollection(myCollection, filter, 0, null, null, null);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(myCollection);
        }
Esempio n. 10
0
        /// <summary>
        /// Code to proccess file data norm file
        /// </summary>
        /// <param name="SourceFilePath"></param>
        /// <param name="AppDataPath"></param>
        /// <param name="ApplicationFolderPath"></param>
        /// <returns></returns>
        public static DataTable ProccessFile(string SourceFilePath, string AppDataPath, string ApplicationFolderPath)
        {
            DataTable dtOutPut = new DataTable();

            try
            {
                DataSet ds         = new DataSet();
                string  FileName   = Path.GetFileNameWithoutExtension(SourceFilePath);
                var     resultFile = AppDataPath + "\\" + FileName + ".xml";
                //Validating Datanorm file
                var adapterType = InferAdapterFromFile(SourceFilePath);
                var factory     = new AdapterFactory(ApplicationFolderPath);
                //var factory = new AdapterFactory(@"C:\Program Files (x86)\datacrossmedia\trinity6\moduls");
                var adapter = factory.CreateAdapter(adapterType);
                //Authenticate license
                AuthorizeAdapter(adapter);
                //Attaching Event Handlers
                AttachEventHandlers(adapter);
                //Proccessing file
                adapter.Run(SourceFilePath, resultFile);
                SplashScreenManager.Default.SetWaitFormDescription("Auslesen der XML Daten");
                ds.ReadXml(resultFile);
                DataTable dtArticle = new DataTable();
                DataTable dtPrice   = new DataTable();
                foreach (DataTable dt in ds.Tables)
                {
                    if (dt.TableName == "Artikel")
                    {
                        dtArticle = dt;
                    }
                    else if (dt.TableName == "Artikelpreis")
                    {
                        dtPrice = dt.Clone();
                        CultureInfo myCultureInfo = new CultureInfo("en-gb");
                        dtPrice.Locale = myCultureInfo;
                        dtPrice.Columns["Preis"].DataType = System.Type.GetType("System.Decimal");
                        foreach (DataRow dr in dt.Rows)
                        {
                            dtPrice.ImportRow(dr);
                        }
                    }
                }

                var results = from table1 in dtArticle.AsEnumerable()
                              join table2 in dtPrice.AsEnumerable() on(int) table1["Artikel_Id"] equals(int) table2["Artikel_Id"]
                              select new
                {
                    ArticleID        = table1["Artikel_Id"],
                    Artikelnummer    = table1["Artikelnummer"],
                    Kurztext1        = table1["Kurztext1"],
                    Kurztext2        = table1["Kurztext2"],
                    Mengeneinheit    = table1["Mengeneinheit"],
                    Hauptwarengruppe = table1["Hauptwarengruppe"],
                    Warengruppe      = table1["Warengruppe"],
                    Produktgruppe    = table1["Produktgruppe"],
                    Rabattgruppe     = table1["Rabattgruppe"],
                    Waehrung         = table2["Waehrung"],
                    Preis            = table2["Preis"],
                };

                dtOutPut.Columns.Add("Artikel_Id", typeof(int));
                dtOutPut.Columns.Add("Artikelnummer", typeof(string));
                dtOutPut.Columns.Add("Kurztext1", typeof(string));
                dtOutPut.Columns.Add("Kurztext2", typeof(string));
                dtOutPut.Columns.Add("WG", typeof(string));
                dtOutPut.Columns.Add("WA", typeof(string));
                dtOutPut.Columns.Add("WI", typeof(string));
                dtOutPut.Columns.Add("A", typeof(string));
                dtOutPut.Columns.Add("B", typeof(string));
                dtOutPut.Columns.Add("L", typeof(string));
                dtOutPut.Columns.Add("Preis", typeof(decimal));
                string[] Dimenstions = null;
                foreach (var item in results)
                {
                    Dimenstions = ExtractNumbers(Convert.ToString(item.Kurztext1));
                    dtOutPut.Rows.Add(item.ArticleID, item.Artikelnummer, item.Kurztext1, item.Kurztext2,
                                      string.Empty, string.Empty, string.Empty, Dimenstions[0], Dimenstions[1], Dimenstions[2], item.Preis);
                }
            }
            catch (AdapterFailureException ex) { throw ex; }
            catch (Exception ex) { throw ex; }
            return(dtOutPut);
        }
Esempio n. 11
0
        public void FactoryShouldCreateCorrectType()
        {
            var adapter = AdapterFactory.CreateAdapter <EmptyAdapter>();

            Assert.IsType <EmptyAdapter>(adapter);
        }
Esempio n. 12
0
        /// <summary>
        ///     Execute Integration Process
        /// </summary>
        /// <param name="pProcessExecutionRequest"></param>
        /// <returns></returns>
        public ProcessExecutionResponse ExecuteIntegrationProcess(ProcessExecutionRequest pProcessExecutionRequest)
        {
            ProcessExecutionResponse         response       = null;
            List <IntegrationProcessMapping> processMapping = null;
            DataTable destinationTable                        = null;
            List <FieldMappingInfo>  mappingInfos             = null;
            PushToDestinationRequest pushToDestinationRequest = null;
            string outputMessage = string.Empty;

            try
            {
                #region Integration Process Metadata

                LogManager.LogMessage(string.Format(ABATS.AppsTalk.Runtime.Properties.Resources.Message_Integration_Process_Execution_Start_Request,
                                                    pProcessExecutionRequest.ProcessCode));

                response = new ProcessExecutionResponse(pProcessExecutionRequest,
                                                        base.AppRuntime.MetadataService.GetIntegrationProcessMetatdata(pProcessExecutionRequest.ProcessCode));

                #endregion

                if (response != null && response.IntegrationProcessMetadata != null)
                {
                    LogManager.LogMessage(string.Format(ABATS.AppsTalk.Runtime.Properties.Resources.Message_Integration_Process_Execution_Started,
                                                        response.IntegrationProcessMetadata.IntegrationProcessCode,
                                                        response.IntegrationProcessMetadata.IntegrationProcessID,
                                                        response.IntegrationProcessMetadata.IntegrationProcessTitle));

                    if (this.ValidateIntegrationProcess(response.IntegrationProcessMetadata, out outputMessage))
                    {
                        LogManager.LogMessage(string.Format(ABATS.AppsTalk.Runtime.Properties.Resources.Message_Integration_Process_Validation_Succeeded,
                                                            response.IntegrationProcessMetadata.IntegrationProcessCode));

                        #region Consume Source

                        using (AbstractAdapter sourceAdapter = AdapterFactory.CreateAdapter(
                                   response.IntegrationProcessMetadata,
                                   response.IntegrationProcessMetadata.SourceIntegrationAdapter,
                                   base.AppRuntime))
                        {
                            response.SourceAdapterResponse = sourceAdapter.ConsumeSource();
                        }

                        #endregion

                        if (response.SourceAdapterResponse != null &&
                            response.SourceAdapterResponse.Status == OperationStatus.Succeeded)
                        {
                            LogManager.LogMessage(string.Format(ABATS.AppsTalk.Runtime.Properties.Resources.Message_Integration_Process_ConsumeSource_Succeeded,
                                                                response.IntegrationProcessMetadata.IntegrationProcessCode,
                                                                response.SourceAdapterResponse.Results.Count.SafeToString("0")));

                            #region Publish To Destination

                            pushToDestinationRequest = new PushToDestinationRequest(
                                pProcessExecutionRequest.RequestDate, pProcessExecutionRequest.RequestUser);

                            #region Mapping

                            processMapping = base.AppRuntime.DataService.GetAll(
                                DataUtilities.BuildIntegrationProcessMappingGetDataRequest(response.IntegrationProcessMetadata)).ToList();
                            destinationTable = new DataTable();
                            mappingInfos     = new List <FieldMappingInfo>();

                            foreach (IntegrationAdapterField destinationAdapterField in
                                     response.IntegrationProcessMetadata.DestinationIntegrationAdapter.IntegrationAdapterFields)
                            {
                                var mappingField = processMapping.FirstOrDefault(item =>
                                                                                 item.DestinationIntegrationAdapterFieldID == destinationAdapterField.IntegrationAdapterFieldID);

                                if (mappingField != null)
                                {
                                    mappingInfos.Add(new FieldMappingInfo()
                                    {
                                        SourceField      = mappingField.SourceIntegrationAdapterField,
                                        DestinationField = destinationAdapterField,
                                        MappingDetail    = mappingField
                                    });

                                    destinationTable.Columns.Add(destinationAdapterField.FieldName);
                                }
                            }

                            #endregion

                            #region Caching

                            // Handle the Integration Adapter Cahce
                            List <AdapterCacheResult> sourceQueryCahce = null;

                            using (AdapterCacheManager queryCacheManager = new AdapterCacheManager(base.AppRuntime))
                            {
                                sourceQueryCahce = queryCacheManager.BuildAdapterCacheResults(response.SourceAdapterResponse);
                            }

                            LogManager.LogMessage(string.Format(ABATS.AppsTalk.Runtime.Properties.Resources.Message_Integration_Process_Cache_Prepration_Completed,
                                                                sourceQueryCahce != null ? sourceQueryCahce.Count.ToString() : "0"));

                            foreach (AdapterCacheResult cacheItem in sourceQueryCahce)
                            {
                                try
                                {
                                    DBRecordInfo destinationRecord = this.FieldMappingManager.BuildDestinationRecord(
                                        destinationTable, cacheItem.DBRecord, mappingInfos);

                                    if (destinationRecord != null)
                                    {
                                        pushToDestinationRequest.AdapterCacheResults.Add(new AdapterCacheResult()
                                        {
                                            DBRecord      = destinationRecord,
                                            DBRecordCache = cacheItem.DBRecordCache
                                        });
                                    }
                                }
                                catch (Exception ex)
                                {
                                    string extraMessage = string.Format("Record Keys: {0} - Parameter: {1}",
                                                                        cacheItem.DBRecord != null ? cacheItem.DBRecord.DbRecordKey : "NO KEYS",
                                                                        cacheItem.DBRecord != null ? cacheItem.DBRecord.ExceptionExtraMessage : string.Empty);

                                    LogManager.LogException(ex, extraMessage);
                                }
                            }

                            #endregion

                            #region Destination Adapter Push Request

                            using (AbstractAdapter destinationAdapter = AdapterFactory.CreateAdapter(
                                       response.IntegrationProcessMetadata,
                                       response.IntegrationProcessMetadata.DestinationIntegrationAdapter,
                                       base.AppRuntime))
                            {
                                response.DestinationAdapterResponse = destinationAdapter.PublishToDestination(
                                    pushToDestinationRequest);

                                if (response.DestinationAdapterResponse != null &&
                                    response.DestinationAdapterResponse.Status == OperationStatus.Succeeded)
                                {
                                    response.Status  = OperationStatus.Succeeded;
                                    response.Message = string.Format(Properties.Resources.Message_Integration_Process_Execution_Succeeded,
                                                                     response.IntegrationProcessMetadata.IntegrationProcessCode);
                                }
                                else
                                {
                                    response.Status  = OperationStatus.Failed;
                                    response.Message = string.Format(Properties.Resources.Message_Integration_Process_Execution_Failed,
                                                                     response.IntegrationProcessMetadata.IntegrationProcessCode);
                                }
                            }

                            #endregion

                            #endregion
                        }
                        else
                        {
                            response.Status  = OperationStatus.Failed;
                            response.Message = string.Format(Properties.Resources.Message_Consume_Source_Failed,
                                                             response.IntegrationProcessMetadata.IntegrationProcessCode);
                        }
                    }
                    else
                    {
                        response.Status  = OperationStatus.Failed;
                        response.Message = string.Format(Properties.Resources.Message_Metadata_Validation_Failed,
                                                         response.IntegrationProcessMetadata.IntegrationProcessCode, Environment.NewLine, outputMessage);
                    }
                }
                else
                {
                    response.Status  = OperationStatus.Failed;
                    response.Message = string.Format(Properties.Resources.Message_Fetch_integration_Process_Metadata_Failed,
                                                     pProcessExecutionRequest.ProcessCode);
                }
            }
            catch (Exception ex)
            {
                LogManager.LogException(ex);
            }
            finally
            {
                if (response != null && !string.IsNullOrEmpty(response.Message))
                {
                    LogManager.LogMessage(response.Message, response.Status);
                }

                if (response != null)
                {
                    //Log Integration Transaction
                    using (TransactionLogManager transactionLogManager = new TransactionLogManager(base.AppRuntime))
                    {
                        transactionLogManager.LogIntegrationProcessTransaction(response);
                    }
                }

                outputMessage = null;
            }

            return(response);
        }