protected static FR_L6BH_IAOKR_1652 Execute(DbConnection Connection, DbTransaction Transaction, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6BH_IAOKR_1652(); returnValue.Result = new L6BH_IAOKR_1652(); List <L6BH_IAOKR_1652_ImportedErrors> importedErrorsList = new List <L6BH_IAOKR_1652_ImportedErrors>(); returnValue.Result.ImportedErrors = importedErrorsList.ToArray(); List <int> ProcessNumberDoNotExist = new List <int>(); returnValue.Result.ProcessNumberDoesNotExist = ProcessNumberDoNotExist.ToArray(); List <int> ProcessNumberCouldNotBeChangedBack = new List <int>(); returnValue.Result.ProcessNumberCouldNotBeChangedBack = ProcessNumberCouldNotBeChangedBack.ToArray(); foreach (var edifactFileLocation in Parameter.EdifactFileList.ToList()) { System.IO.StreamReader srInputFile = new System.IO.StreamReader(edifactFileLocation); EdifactInterface.Parser edifactFile = new EdifactInterface.Parser(srInputFile); var edifactFileList = edifactFile.getParsedPositions(); foreach (var treatment in edifactFileList) { var billPositionQuery = new ORM_BIL_BillPosition.Query(); billPositionQuery.Tenant_RefID = securityTicket.TenantID; billPositionQuery.IsDeleted = false; billPositionQuery.External_PositionReferenceField = (Int64.Parse(treatment.strProcessNumber) % 10000000000).ToString(); var billPosition = ORM_BIL_BillPosition.Query.Search(Connection, Transaction, billPositionQuery).FirstOrDefault(); if (billPosition != null) { //find if there is a higher status then one to be updated var activeStatusesQuery = new ORM_BIL_BillPosition_TransmitionStatus.Query(); activeStatusesQuery.Tenant_RefID = securityTicket.TenantID; activeStatusesQuery.BillPosition_RefID = billPosition.BIL_BillPositionID; activeStatusesQuery.IsDeleted = false; activeStatusesQuery.IsActive = true; var activeStatuss = ORM_BIL_BillPosition_TransmitionStatus.Query.Search(Connection, Transaction, activeStatusesQuery).FirstOrDefault(); if (activeStatuss.TransmitionCode >= 4) { ProcessNumberCouldNotBeChangedBack.Add(Int32.Parse(treatment.strProcessNumber)); } else { activeStatuss.IsActive = false; activeStatuss.IsDeleted = true; activeStatuss.Save(Connection, Transaction); //create status 4 var transmitionStatus = new ORM_BIL_BillPosition_TransmitionStatus(); transmitionStatus.BIL_BillPosition_TransmitionStatusID = Guid.NewGuid(); transmitionStatus.BillPosition_RefID = billPosition.BIL_BillPositionID; transmitionStatus.TransmitionCode = 4; transmitionStatus.TransmittedOnDate = DateTime.Now; transmitionStatus.PrimaryComment = "AOK Fehlermeldung"; transmitionStatus.SecondaryComment = treatment.strErrorComment; transmitionStatus.Tenant_RefID = securityTicket.TenantID; transmitionStatus.Creation_Timestamp = DateTime.Now; transmitionStatus.IsActive = true; transmitionStatus.Save(Connection, Transaction);//save L6BH_IAOKR_1652_ImportedErrors errorMessage = new L6BH_IAOKR_1652_ImportedErrors(); errorMessage.Comment = treatment.strErrorComment; errorMessage.Patient = treatment.strPatientFirstName + " " + treatment.strPatientLastName; errorMessage.ProcessNumber = Int32.Parse(treatment.strProcessNumber); importedErrorsList.Add(errorMessage); } } else { ProcessNumberDoNotExist.Add(Int32.Parse(treatment.strProcessNumber)); } } } returnValue.Result.ProcessNumberCouldNotBeChangedBack = ProcessNumberCouldNotBeChangedBack.ToArray(); returnValue.Result.ImportedErrors = importedErrorsList.ToArray(); returnValue.Result.ProcessNumberDoesNotExist = ProcessNumberDoNotExist.ToArray(); return(returnValue); #endregion UserCode }
///<summary> /// Invokes the method for the given Connection, and Transaction, leaving them open/not commited if no exceptions occured ///<summary> public static FR_L6BH_IAOKR_1652 Invoke(DbConnection Connection, DbTransaction Transaction, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(Connection, Transaction, null, Parameter, securityTicket)); }
///<summary> /// Method Invocation of wrapper classes ///<summary> protected static FR_L6BH_IAOKR_1652 Invoke(DbConnection Connection, DbTransaction Transaction, string ConnectionString, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { bool cleanupConnection = Connection == null; bool cleanupTransaction = Transaction == null; FR_L6BH_IAOKR_1652 functionReturn = new FR_L6BH_IAOKR_1652(); try { if (cleanupConnection == true) { Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(ConnectionString); Connection.Open(); } if (cleanupTransaction == true) { Transaction = Connection.BeginTransaction(); } functionReturn = Execute(Connection, Transaction, Parameter, securityTicket); #region Cleanup Connection/Transaction //Commit the transaction if (cleanupTransaction == true) { Transaction.Commit(); } //Close the connection if (cleanupConnection == true) { Connection.Close(); } #endregion } catch (Exception ex) { try { if (cleanupTransaction == true && Transaction != null) { Transaction.Rollback(); } } catch { } try { if (cleanupConnection == true && Connection != null) { Connection.Close(); } } catch { } throw new Exception("Exception occured in method cls_Import_AOK_response", ex); } return(functionReturn); }
///<summary> /// Opens the connection/transaction for the given connectionString, and closes them when complete ///<summary> public static FR_L6BH_IAOKR_1652 Invoke(string ConnectionString, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(null, null, ConnectionString, Parameter, securityTicket)); }