protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6MB_CUMBE_2302 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var statusUploaded = ORM_MRS_RUN_MeasurementRun_Status.Query.Search(Connection, Transaction, new ORM_MRS_RUN_MeasurementRun_Status.Query() { GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(MeasurementRunStatus.Uploaded), Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); var run = new ORM_MRS_RUN_MeasurementRun() { Tenant_RefID = securityTicket.TenantID, MRS_RUN_MeasurementRunID = Guid.NewGuid(), DateFrom = DateTime.Now, DateThrough = DateTime.MaxValue, CurrentStatus_RefID = statusUploaded.MRS_RUN_MeasurementRun_StatusID }; returnValue.Result = run.MRS_RUN_MeasurementRunID; var account = ORM_USR_Account.Query.Search(Connection, Transaction, new ORM_USR_Account.Query() { Tenant_RefID = securityTicket.TenantID, USR_AccountID = securityTicket.AccountID }).Single(); var runHistory = new ORM_MRS_RUN_MeasurementRun_StatusHistory() { Tenant_RefID = securityTicket.TenantID, MRS_RUN_MeasurementRun_StatusHistoryID = Guid.NewGuid(), MeasurementRun_Status_RefID = statusUploaded.MRS_RUN_MeasurementRun_StatusID, TriggeredBy_BusinessParticipant_RefID = account.BusinessParticipant_RefID, MeasurementRun_RefID = run.MRS_RUN_MeasurementRunID, Comment = string.Empty }; run.Save(Connection, Transaction); runHistory.Save(Connection, Transaction); foreach (var row in Parameter.Positions) { #region reader var readerPersonInfo = ORM_CMN_PER_PersonInfo.Query.Search(Connection, Transaction, new ORM_CMN_PER_PersonInfo.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, PrimaryEmail = row.ReaderEmail }).SingleOrDefault(); if (readerPersonInfo == null) { readerPersonInfo = new ORM_CMN_PER_PersonInfo() { Tenant_RefID = securityTicket.TenantID, PrimaryEmail = row.ReaderEmail, CMN_PER_PersonInfoID = Guid.NewGuid() }; } readerPersonInfo.FirstName = row.ReaderFirstName; readerPersonInfo.LastName = row.ReaderLastName; readerPersonInfo.Save(Connection, Transaction); var readerBP = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, IsNaturalPerson = true, IfNaturalPerson_CMN_PER_PersonInfo_RefID = readerPersonInfo.CMN_PER_PersonInfoID }).SingleOrDefault(); if (readerBP == null) { readerBP = new ORM_CMN_BPT_BusinessParticipant() { CMN_BPT_BusinessParticipantID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, IsNaturalPerson = true, IfNaturalPerson_CMN_PER_PersonInfo_RefID = readerPersonInfo.CMN_PER_PersonInfoID, }; readerBP.Save(Connection, Transaction); } var bpCode = ORM_CMN_BPT_BusinessParticipant_AccessCode.Query.Search(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant_AccessCode.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, BusinessParticipant_RefID = readerBP.CMN_BPT_BusinessParticipantID, IsValid = true, IsDeviceAccessCode = true }).SingleOrDefault(); if (bpCode == null) { bpCode = new ORM_CMN_BPT_BusinessParticipant_AccessCode() { CMN_BPT_BusinessParticipant_AccessCodeID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, BusinessParticipant_RefID = readerBP.CMN_BPT_BusinessParticipantID, IsValid = true, IsDeviceAccessCode = true, ValidFrom = DateTime.Now, ValidThrough = DateTime.MaxValue, Code = StringUtils.CodeGen(8).ToLower() }; bpCode.Save(Connection, Transaction); } #endregion #region meter var meter = ORM_MRS_MPT_Meter.Query.Search(Connection, Transaction, new ORM_MRS_MPT_Meter.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, SerialNumber = row.MeterSerialNumber }).SingleOrDefault(); if (meter == null) { meter = new ORM_MRS_MPT_Meter() { MRS_MPT_MeterID = Guid.NewGuid(), SerialNumber = row.MeterSerialNumber, Tenant_RefID = securityTicket.TenantID, }; meter.Save(Connection, Transaction); } var meterBinding = ORM_MRS_MPT_MeasuringPoint_MeterBinding.Query.Search(Connection, Transaction, new ORM_MRS_MPT_MeasuringPoint_MeterBinding.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Meter_RefID = meter.MRS_MPT_MeterID }).SingleOrDefault(); if (meterBinding == null) { meterBinding = new ORM_MRS_MPT_MeasuringPoint_MeterBinding() { Tenant_RefID = securityTicket.TenantID, ActiveFrom = DateTime.Now, Meter_RefID = meter.MRS_MPT_MeterID, MRS_MPT_MeasuringPoint_MeterBindingID = Guid.NewGuid() }; meterBinding.Save(Connection, Transaction); } var measurentPoint = ORM_MRS_MPT_MeasuringPoint.Query.Search(Connection, Transaction, new ORM_MRS_MPT_MeasuringPoint.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, MRS_MPT_MeasuringPointID = meterBinding.MeasuringPoint_RefID }).SingleOrDefault(); if (measurentPoint == null) { measurentPoint = new ORM_MRS_MPT_MeasuringPoint() { Tenant_RefID = securityTicket.TenantID, MRS_MPT_MeasuringPointID = Guid.NewGuid() }; meterBinding.MeasuringPoint_RefID = measurentPoint.MRS_MPT_MeasuringPointID; meterBinding.Save(Connection, Transaction); measurentPoint.Save(Connection, Transaction); } #endregion #region customer var customerOwnership = ORM_MRS_MPT_CustomerOwnership.Query.Search(Connection, Transaction, new ORM_MRS_MPT_CustomerOwnership.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, ContractNumber = row.ContractNumber }).SingleOrDefault(); if (customerOwnership == null) { var customerPersonInfo = new ORM_CMN_PER_PersonInfo() { Tenant_RefID = securityTicket.TenantID, FirstName = row.ContractOwnerFirstName, LastName = row.ContractOwnerLastName, CMN_PER_PersonInfoID = Guid.NewGuid() }; customerPersonInfo.Save(Connection, Transaction); var customerBP = new ORM_CMN_BPT_BusinessParticipant() { CMN_BPT_BusinessParticipantID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, IsNaturalPerson = true, IfNaturalPerson_CMN_PER_PersonInfo_RefID = customerPersonInfo.CMN_PER_PersonInfoID, }; customerBP.Save(Connection, Transaction); var customer = new ORM_CMN_BPT_CTM_Customer() { Tenant_RefID = securityTicket.TenantID, CMN_BPT_CTM_CustomerID = Guid.NewGuid(), Ext_BusinessParticipant_RefID = customerBP.CMN_BPT_BusinessParticipantID }; customer.Save(Connection, Transaction); customerOwnership = new ORM_MRS_MPT_CustomerOwnership() { Tenant_RefID = securityTicket.TenantID, MRS_MPT_CustomerOwnershipID = Guid.NewGuid(), ContractNumber = row.ContractNumber, ValidFrom = DateTime.Now, Customer_RefID = customer.CMN_BPT_CTM_CustomerID, MeasuringPoint_RefID = measurentPoint.MRS_MPT_MeasuringPointID }; customerOwnership.Save(Connection, Transaction); } else { var customer = ORM_CMN_BPT_CTM_Customer.Query.Search(Connection, Transaction, new ORM_CMN_BPT_CTM_Customer.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_BPT_CTM_CustomerID = customerOwnership.Customer_RefID }).Single(); var customerBP = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_BPT_BusinessParticipantID = customer.Ext_BusinessParticipant_RefID }).Single(); var customerPI = ORM_CMN_PER_PersonInfo.Query.Search(Connection, Transaction, new ORM_CMN_PER_PersonInfo.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_PER_PersonInfoID = customerBP.IfNaturalPerson_CMN_PER_PersonInfo_RefID }).Single(); customerPI.FirstName = row.ContractOwnerFirstName; customerPI.LastName = row.ContractOwnerLastName; customerPI.Save(Connection, Transaction); } customerOwnership.MeasuringPoint_RefID = measurentPoint.MRS_MPT_MeasuringPointID; customerOwnership.Save(Connection, Transaction); #region address var address = ORM_CMN_Address.Query.Search(Connection, Transaction, new ORM_CMN_Address.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, City_Name = row.City, Street_Name = row.AddressName, Street_Number = row.AddressNumber, City_PostalCode = row.ZipCode }).SingleOrDefault(); if (address == null) { address = new ORM_CMN_Address() { Tenant_RefID = securityTicket.TenantID, City_Name = row.City, Street_Name = row.AddressName, Street_Number = row.AddressNumber, City_PostalCode = row.ZipCode, CMN_AddressID = Guid.NewGuid() }; address.Save(Connection, Transaction); } measurentPoint.CurrentAddress_RefID = address.CMN_AddressID; measurentPoint.Save(Connection, Transaction); #endregion #endregion #region route var route = ORM_MRS_RUT_Route.Query.Search(Connection, Transaction, new ORM_MRS_RUT_Route.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, DisplayName = row.RouteName }).SingleOrDefault(); if (route == null) { route = new ORM_MRS_RUT_Route() { Tenant_RefID = securityTicket.TenantID, MRS_RUT_RouteID = Guid.NewGuid(), DisplayName = row.RouteName, //Default_RouteReaderAccount_RefID = readerBP.CMN_BPT_BusinessParticipantID }; route.Save(Connection, Transaction); } var routeMeasuringPoint = ORM_MRS_RUT_Route_MeasuringPoint.Query.Search(Connection, Transaction, new ORM_MRS_RUT_Route_MeasuringPoint.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Route_RefID = route.MRS_RUT_RouteID, MeasuringPoint_RefID = measurentPoint.MRS_MPT_MeasuringPointID }).SingleOrDefault(); if (routeMeasuringPoint == null) { routeMeasuringPoint = new ORM_MRS_RUT_Route_MeasuringPoint() { Tenant_RefID = securityTicket.TenantID, MRS_RUT_Route_MeasuringPointID = Guid.NewGuid(), Route_RefID = route.MRS_RUT_RouteID, MeasuringPoint_RefID = measurentPoint.MRS_MPT_MeasuringPointID }; } routeMeasuringPoint.OrderSequence = row.SequenceInRoute; routeMeasuringPoint.Save(Connection, Transaction); #endregion #region measurement var measurement = new ORM_MRS_RUN_Measurement() { Tenant_RefID = securityTicket.TenantID, MRS_RUN_MeasurementID = Guid.NewGuid(), MeasurementRun_RefID = run.MRS_RUN_MeasurementRunID, MeasuringPoint_RefID = routeMeasuringPoint.MRS_RUT_Route_MeasuringPointID }; measurement.Save(Connection, Transaction); var run2route = ORM_MRS_RUN_MeasurementRun_Route.Query.Search(Connection, Transaction, new ORM_MRS_RUN_MeasurementRun_Route.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Route_RefID = route.MRS_RUT_RouteID, MeasurementRun_RefID = run.MRS_RUN_MeasurementRunID }).SingleOrDefault(); if (run2route == null) { run2route = new ORM_MRS_RUN_MeasurementRun_Route() { MRS_RUN_MeasurementRun_RouteID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, Route_RefID = route.MRS_RUT_RouteID, MeasurementRun_RefID = run.MRS_RUN_MeasurementRunID } } ; run2route.BoundTo_Account_RefID = readerBP.CMN_BPT_BusinessParticipantID; run2route.Save(Connection, Transaction); #endregion } return(returnValue); #endregion UserCode }
protected static FR_L3CU_CCaMR_1308 Execute(DbConnection Connection, DbTransaction Transaction, P_L3CU_CCaMR_1308 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3CU_CCaMR_1308(); returnValue.Status = FR_Status.Error_Internal; returnValue.Result = new L3CU_CCaMR_1308(); #region Load or Create Customer Tenant Initial Table Structure var customerTenantStructure = cls_Create_Tenant_Initial_Table_Structure.Invoke( Connection, Transaction, new P_L3TE_CTITS_1108() { TenantITL = Parameter.Customer_TenantITL, BusinessParticipantITL = Parameter.Customer_BusinessParticipantITL, TenantUniversalContactDetailITL = Parameter.Customer_TenantUniversalContactDetailITL, CompanyInfoUniversalContactDetailITL = Parameter.Customer_CompanyInfoUniversalContactDetailITL, CompanyName = Parameter.Customer_CompanyName, ContactEmail = Parameter.Customer_ContactEmail }, securityTicket); #endregion if (customerTenantStructure.Status != FR_Status.Success) { return(returnValue); } #region Load or Create Customer var cust = ORM_CMN_BPT_CTM_Customer.Query.Search(Connection, Transaction, new ORM_CMN_BPT_CTM_Customer.Query() { Ext_BusinessParticipant_RefID = customerTenantStructure.Result.BusinessParticipantID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (cust == default(ORM_CMN_BPT_CTM_Customer)) { cust = new ORM_CMN_BPT_CTM_Customer(); cust.CMN_BPT_CTM_CustomerID = Guid.NewGuid(); cust.Ext_BusinessParticipant_RefID = customerTenantStructure.Result.BusinessParticipantID; cust.Tenant_RefID = securityTicket.TenantID; cust.Creation_Timestamp = DateTime.Now; cust.Save(Connection, Transaction); } #endregion #region Create booking account var fiscalYear = cls_Get_Current_FiscalYear.Invoke(Connection, Transaction, securityTicket).Result; var bookingAccountParam = new P_L3BA_CCAfBP_1655() { BusinessParticipantIDs = new Guid[1] { customerTenantStructure.Result.BusinessParticipantID }, FiscalYearID = fiscalYear.ACC_FiscalYearID }; var result = cls_Create_Customer_Account_for_BusinessParticipants.Invoke(Connection, Transaction, bookingAccountParam, securityTicket).Result; #endregion #region create defaultPerson for customer var businessParticipantQuery = new ORM_CMN_BPT_BusinessParticipant.Query(); businessParticipantQuery.CMN_BPT_BusinessParticipantID = cust.Ext_BusinessParticipant_RefID; businessParticipantQuery.IsDeleted = false; var businessParticipant = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, businessParticipantQuery).Single(); if (businessParticipant.IsNaturalPerson) { if (businessParticipant.IfNaturalPerson_CMN_PER_PersonInfo_RefID == null || businessParticipant.IfNaturalPerson_CMN_PER_PersonInfo_RefID == Guid.Empty) { var personInfo = new ORM_CMN_PER_PersonInfo(); personInfo.CMN_PER_PersonInfoID = Guid.NewGuid(); personInfo.Tenant_RefID = securityTicket.TenantID; personInfo.IsDeleted = false; personInfo.FirstName = businessParticipant.DisplayName; personInfo.LastName = businessParticipant.DisplayName; personInfo.Creation_Timestamp = DateTime.Now; personInfo.Save(Connection, Transaction); businessParticipant.IfNaturalPerson_CMN_PER_PersonInfo_RefID = personInfo.CMN_PER_PersonInfoID; } } else if (businessParticipant.IsCompany) { Boolean needDefaultPerson = true; var associatedBPQuery = new ORM_CMN_BPT_BusinessParticipant_AssociatedBusinessParticipant.Query(); associatedBPQuery.AssociatedBusinessParticipant_RefID = businessParticipant.CMN_BPT_BusinessParticipantID; associatedBPQuery.Tenant_RefID = securityTicket.TenantID; associatedBPQuery.IsDeleted = false; List <ORM_CMN_BPT_BusinessParticipant_AssociatedBusinessParticipant> associations = ORM_CMN_BPT_BusinessParticipant_AssociatedBusinessParticipant.Query.Search(Connection, Transaction, associatedBPQuery); if (associations.Count > 0) { foreach (var assotiation in associations) { if (assotiation.BusinessParticipant_RefID != Guid.Empty) { ORM_CMN_BPT_BusinessParticipant.Query businessParticipantPersonQuery = new ORM_CMN_BPT_BusinessParticipant.Query(); businessParticipantPersonQuery.CMN_BPT_BusinessParticipantID = assotiation.BusinessParticipant_RefID; businessParticipantPersonQuery.IsDeleted = false; businessParticipantPersonQuery.IsNaturalPerson = true; List <ORM_CMN_BPT_BusinessParticipant> businessParticipantsPerson = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, businessParticipantPersonQuery); foreach (var person in businessParticipantsPerson) { if (person.IfNaturalPerson_CMN_PER_PersonInfo_RefID == Guid.Empty) { ORM_CMN_PER_PersonInfo personInfoNew = new ORM_CMN_PER_PersonInfo(); personInfoNew.CMN_PER_PersonInfoID = Guid.NewGuid(); personInfoNew.Tenant_RefID = securityTicket.TenantID; personInfoNew.IsDeleted = false; personInfoNew.FirstName = person.DisplayName; personInfoNew.LastName = person.DisplayName; personInfoNew.Creation_Timestamp = DateTime.Now; personInfoNew.Save(Connection, Transaction); person.IfNaturalPerson_CMN_PER_PersonInfo_RefID = personInfoNew.CMN_PER_PersonInfoID; } needDefaultPerson = false; break; } } } } if (needDefaultPerson) { #region create personalInfo ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo(); personInfo.CMN_PER_PersonInfoID = Guid.NewGuid(); personInfo.Tenant_RefID = securityTicket.TenantID; personInfo.IsDeleted = false; personInfo.FirstName = businessParticipant.DisplayName; personInfo.LastName = businessParticipant.DisplayName; personInfo.Creation_Timestamp = DateTime.Now; personInfo.Save(Connection, Transaction); #endregion #region create new businessParticipiant ORM_CMN_BPT_BusinessParticipant bParticipant = new ORM_CMN_BPT_BusinessParticipant(); bParticipant.CMN_BPT_BusinessParticipantID = Guid.NewGuid(); bParticipant.Tenant_RefID = securityTicket.TenantID; bParticipant.IsNaturalPerson = true; bParticipant.IfNaturalPerson_CMN_PER_PersonInfo_RefID = personInfo.CMN_PER_PersonInfoID; bParticipant.DisplayName = businessParticipant.DisplayName; bParticipant.Creation_Timestamp = DateTime.Now; bParticipant.Save(Connection, Transaction); #endregion #region create associated businessParticipant table ORM_CMN_BPT_BusinessParticipant_AssociatedBusinessParticipant associatedBP = new ORM_CMN_BPT_BusinessParticipant_AssociatedBusinessParticipant(); associatedBP.CMN_BPT_BusinessParticipant_AssociatedBusinessParticipantID = Guid.NewGuid(); associatedBP.IsDeleted = false; associatedBP.BusinessParticipant_RefID = bParticipant.CMN_BPT_BusinessParticipantID; associatedBP.AssociatedBusinessParticipant_RefID = businessParticipant.CMN_BPT_BusinessParticipantID; associatedBP.Creation_Timestamp = DateTime.Now; associatedBP.Tenant_RefID = securityTicket.TenantID; associatedBP.Save(Connection, Transaction); #endregion } } #endregion returnValue.Result.Customer_TenantID = customerTenantStructure.Result.TenantID; returnValue.Result.Customer_BusinessParticipantID = customerTenantStructure.Result.BusinessParticipantID; returnValue.Result.Customer_CompanyInfo_UniversalContactDetailID = customerTenantStructure.Result.CompanyInfoUniversalContactDetailID; returnValue.Result.Customer_Tenant_UniversalContactDetailID = customerTenantStructure.Result.TenantUniversalContactDetailID; returnValue.Result.Customer_CustomerID = cust.CMN_BPT_CTM_CustomerID; returnValue.Result.Customer_CompanyInfoID = customerTenantStructure.Result.CompanyInfoID; returnValue.Result.IsCustomerOrderAutomaticallyApprovedOnReceipt = cust.IsCustomerOrderAutomaticallyApprovedOnReceipt; returnValue.Status = FR_Status.Success; return(returnValue); #endregion UserCode }
public static void Save_practices_to_DB(Practice_Model_from_xlsx Parameter, string connectionString, SessionSecurityTicket securityTicket) { DbConnection Connection = null; DbTransaction Transaction = null; bool cleanupConnection = Connection == null; bool cleanupTransaction = Transaction == null; if (cleanupConnection == true) { Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(connectionString); Connection.Open(); } if (cleanupTransaction == true) { Transaction = Connection.BeginTransaction(); } try { Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE"); var returnValue = new FR_Guid(); Guid companyInfoID = Guid.NewGuid(); Guid BusinessParticipantID = Guid.NewGuid(); Guid PracticeAddressID = Guid.NewGuid(); Guid practice_id = Guid.NewGuid(); if (!String.IsNullOrEmpty(Parameter.LoginEmail)) //uncomment this if you've created account // if(false) { string[] stringUser = Parameter.LoginEmail.Split('@'); string usernameStr = stringUser[0]; try { var practiceAccountInfo = ORM_USR_Account.Query.Search(Connection, Transaction, new ORM_USR_Account.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, AccountSignInEmailAddress = Parameter.LoginEmail, }).Single(); var accountGroupQuery = new ORM_USR_Account_FunctionLevelRights_Group.Query(); accountGroupQuery.Tenant_RefID = securityTicket.TenantID; accountGroupQuery.IsDeleted = false; accountGroupQuery.GlobalPropertyMatchingID = "mm.docconect.doc.app.group"; var accountGroup = ORM_USR_Account_FunctionLevelRights_Group.Query.Search(Connection, Transaction, accountGroupQuery).SingleOrDefault(); if (accountGroup == null) { accountGroup = new ORM_USR_Account_FunctionLevelRights_Group(); accountGroup.Tenant_RefID = securityTicket.TenantID; accountGroup.Label = "mm.docconect.doc.app.group"; accountGroup.GlobalPropertyMatchingID = "mm.docconect.doc.app.group"; accountGroup.Creation_Timestamp = DateTime.Now; accountGroup.USR_Account_FunctionLevelRights_GroupID = Guid.NewGuid(); accountGroup.Save(Connection, Transaction); } var functionLevelRightQ = new ORM_USR_Account_FunctionLevelRight.Query(); functionLevelRightQ.Tenant_RefID = securityTicket.TenantID; functionLevelRightQ.IsDeleted = false; functionLevelRightQ.GlobalPropertyMatchingID = Parameter.IsSurgeryPractice ? "mm.docconect.doc.app.op.practice" : "mm.docconect.doc.app.ac.practice"; var existingunctionLevelRight = ORM_USR_Account_FunctionLevelRight.Query.Search(Connection, Transaction, functionLevelRightQ).SingleOrDefault(); Guid tempFunctionLevelRightID = Guid.Empty; if (existingunctionLevelRight == null) { ORM_USR_Account_FunctionLevelRight functionLevelRight = new ORM_USR_Account_FunctionLevelRight(); functionLevelRight.USR_Account_FunctionLevelRightID = Guid.NewGuid(); functionLevelRight.FunctionLevelRights_Group_RefID = accountGroup.USR_Account_FunctionLevelRights_GroupID; functionLevelRight.Tenant_RefID = securityTicket.TenantID; functionLevelRight.Creation_Timestamp = DateTime.Now; functionLevelRight.RightName = Parameter.IsSurgeryPractice ? "mm.docconect.doc.app.op.practice" : "mm.docconect.doc.app.ac.practice"; functionLevelRight.GlobalPropertyMatchingID = Parameter.IsSurgeryPractice ? "mm.docconect.doc.app.op.practice" : "mm.docconect.doc.app.ac.practice"; functionLevelRight.Save(Connection, Transaction); tempFunctionLevelRightID = functionLevelRight.USR_Account_FunctionLevelRightID; } else { tempFunctionLevelRightID = existingunctionLevelRight.USR_Account_FunctionLevelRightID; } var accountToFunctionLevelRight = new ORM_USR_Account_2_FunctionLevelRight(); accountToFunctionLevelRight.Tenant_RefID = securityTicket.TenantID; accountToFunctionLevelRight.Creation_Timestamp = DateTime.Now; accountToFunctionLevelRight.AssignmentID = Guid.NewGuid(); accountToFunctionLevelRight.Account_RefID = practiceAccountInfo.USR_AccountID; accountToFunctionLevelRight.FunctionLevelRight_RefID = tempFunctionLevelRightID; // USR_Account_FunctionLevelRightID accountToFunctionLevelRight.Save(Connection, Transaction); var businessParticipantQ = new ORM_CMN_BPT_BusinessParticipant.Query(); businessParticipantQ.IsDeleted = false; businessParticipantQ.Tenant_RefID = securityTicket.TenantID; businessParticipantQ.CMN_BPT_BusinessParticipantID = practiceAccountInfo.BusinessParticipant_RefID; BusinessParticipantID = practiceAccountInfo.BusinessParticipant_RefID; var practiceinfoinBusinessParticipant = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, businessParticipantQ).Single(); practiceinfoinBusinessParticipant.DisplayName = Parameter.PracticeName; practiceinfoinBusinessParticipant.IsCompany = true; practiceinfoinBusinessParticipant.Modification_Timestamp = DateTime.Now; practiceinfoinBusinessParticipant.Save(Connection, Transaction); companyInfoID = practiceinfoinBusinessParticipant.IfCompany_CMN_COM_CompanyInfo_RefID; var companyInfo = new ORM_CMN_COM_CompanyInfo.Query(); companyInfo.IsDeleted = false; companyInfo.Tenant_RefID = securityTicket.TenantID; companyInfo.CMN_COM_CompanyInfoID = companyInfoID; var companyInfoPractice = ORM_CMN_COM_CompanyInfo.Query.Search(Connection, Transaction, companyInfo).Single(); companyInfoPractice.CompanyInfo_EstablishmentNumber = Parameter.BSNR; companyInfoPractice.Save(Connection, Transaction); var companyInfoAddressPractice = new ORM_CMN_COM_CompanyInfo_Address(); companyInfoAddressPractice.CompanyInfo_RefID = companyInfoID; companyInfoAddressPractice.IsDefault = true; companyInfoAddressPractice.IsShipping = true; companyInfoAddressPractice.IsBilling = true; companyInfoAddressPractice.Tenant_RefID = securityTicket.TenantID; companyInfoAddressPractice.Address_UCD_RefID = Guid.NewGuid(); companyInfoAddressPractice.Address_Description = "Standard address for billing, shipping"; companyInfoAddressPractice.Save(Connection, Transaction); PracticeAddressID = companyInfoAddressPractice.Address_UCD_RefID; var universlContactPractice = new ORM_CMN_UniversalContactDetail(); universlContactPractice.IsDeleted = false; universlContactPractice.Tenant_RefID = securityTicket.TenantID; universlContactPractice.CMN_UniversalContactDetailID = PracticeAddressID; universlContactPractice.CompanyName_Line1 = Parameter.PracticeName; universlContactPractice.IsCompany = true; universlContactPractice.Street_Name = Parameter.Street; universlContactPractice.Street_Number = Parameter.No; universlContactPractice.ZIP = Parameter.Zip; universlContactPractice.Town = Parameter.City; universlContactPractice.Contact_Email = Parameter.MainEmail; universlContactPractice.Contact_Telephone = Parameter.MainPhone; universlContactPractice.Contact_Fax = Parameter.Fax; universlContactPractice.Creation_Timestamp = DateTime.Now; universlContactPractice.Modification_Timestamp = DateTime.Now; universlContactPractice.Save(Connection, Transaction); } catch (Exception ex) { throw new Exception("Exception occured durng data retrieval in method cls_Save_Practice", ex); //Log the error (uncomment dex variable name and add a line here to write a log. } } // else{ var companyInfoAddress2 = new ORM_CMN_COM_CompanyInfo_Address(); companyInfoAddress2.IsDeleted = false; companyInfoAddress2.Tenant_RefID = securityTicket.TenantID; companyInfoAddress2.CompanyInfo_RefID = companyInfoID; companyInfoAddress2.IsDefault = true; companyInfoAddress2.IsContact = true; companyInfoAddress2.Address_UCD_RefID = Guid.NewGuid(); companyInfoAddress2.Address_Description = "Standard contact person data"; companyInfoAddress2.Creation_Timestamp = DateTime.Now; companyInfoAddress2.Save(Connection, Transaction); string personInfo = Parameter.ContactPerson; string PersonFirstName = ""; string PersonLastName = ""; int i = personInfo.IndexOf(' '); if (i > 1) { PersonFirstName = personInfo.Substring(0, i); PersonLastName = personInfo.Substring(i + 1); } else { PersonFirstName = Parameter.ContactPerson; PersonLastName = " "; } var universlContactPractice2 = new ORM_CMN_UniversalContactDetail(); universlContactPractice2.CMN_UniversalContactDetailID = companyInfoAddress2.Address_UCD_RefID; universlContactPractice2.IsDeleted = false; universlContactPractice2.Tenant_RefID = securityTicket.TenantID; universlContactPractice2.IsCompany = false; universlContactPractice2.First_Name = PersonFirstName; universlContactPractice2.Last_Name = PersonLastName; universlContactPractice2.Contact_Email = Parameter.Email; universlContactPractice2.Contact_Telephone = Parameter.Phone; universlContactPractice2.Creation_Timestamp = DateTime.Now; universlContactPractice2.Modification_Timestamp = DateTime.Now; universlContactPractice2.Save(Connection, Transaction); var business2bankAccount = new ORM_CMN_BPT_BusinessParticipant_2_BankAccount(); business2bankAccount.IsDeleted = false; business2bankAccount.Tenant_RefID = securityTicket.TenantID; business2bankAccount.CMN_BPT_BusinessParticipant_RefID = BusinessParticipantID; business2bankAccount.ACC_BNK_BankAccount_RefID = Guid.NewGuid(); business2bankAccount.Creation_Timestamp = DateTime.Now; business2bankAccount.Save(Connection, Transaction); var bankAccountPractice = new ORM_ACC_BNK_BankAccount(); bankAccountPractice.IsDeleted = false; bankAccountPractice.Tenant_RefID = securityTicket.TenantID; bankAccountPractice.ACC_BNK_BankAccountID = business2bankAccount.ACC_BNK_BankAccount_RefID; bankAccountPractice.OwnerText = Parameter.AccountHolder; bankAccountPractice.IBAN = Parameter.IBAN; bankAccountPractice.Bank_RefID = Guid.NewGuid(); bankAccountPractice.Creation_Timestamp = DateTime.Now; bankAccountPractice.Save(Connection, Transaction); var bank = new ORM_ACC_BNK_Bank(); bank.IsDeleted = false; bank.Tenant_RefID = securityTicket.TenantID; bank.ACC_BNK_BankID = bankAccountPractice.Bank_RefID; bank.BICCode = Parameter.Bic; bank.BankName = Parameter.Bank; bank.Creation_Timestamp = DateTime.Now; bank.Save(Connection, Transaction); var customer = new ORM_CMN_BPT_CTM_Customer(); customer.IsDeleted = false; customer.Tenant_RefID = securityTicket.TenantID; customer.Ext_BusinessParticipant_RefID = BusinessParticipantID; customer.CMN_BPT_CTM_CustomerID = Guid.NewGuid(); customer.Creation_Timestamp = DateTime.Now; customer.Save(Connection, Transaction); var organizationalUnit = new ORM_CMN_BPT_CTM_OrganizationalUnit(); organizationalUnit.IsDeleted = false; organizationalUnit.Tenant_RefID = securityTicket.TenantID; organizationalUnit.Customer_RefID = customer.CMN_BPT_CTM_CustomerID; organizationalUnit.IsMedicalPractice = true; organizationalUnit.IfMedicalPractise_HEC_MedicalPractice_RefID = Guid.NewGuid(); organizationalUnit.Creation_Timestamp = DateTime.Now; organizationalUnit.Modification_Timestamp = DateTime.Now; organizationalUnit.Save(Connection, Transaction); var medicalPractice = new ORM_HEC_MedicalPractis(); medicalPractice.IsDeleted = false; medicalPractice.Tenant_RefID = securityTicket.TenantID; medicalPractice.HEC_MedicalPractiseID = organizationalUnit.IfMedicalPractise_HEC_MedicalPractice_RefID; medicalPractice.Creation_Timestamp = DateTime.Now; medicalPractice.Modification_Timestamp = DateTime.Now; medicalPractice.Save(Connection, Transaction); practice_id = medicalPractice.HEC_MedicalPractiseID; var medicalPRactice2Universal = new ORM_HEC_MedicalPractice_2_UniversalProperty(); medicalPRactice2Universal.IsDeleted = false; medicalPRactice2Universal.Tenant_RefID = securityTicket.TenantID; medicalPRactice2Universal.HEC_MedicalPractice_RefID = medicalPractice.HEC_MedicalPractiseID; medicalPRactice2Universal.HEC_MedicalPractice_UniversalProperty_RefID = Guid.NewGuid(); medicalPRactice2Universal.Value_Boolean = Parameter.IsSurgeryPractice; medicalPRactice2Universal.Creation_Timestamp = DateTime.Now; medicalPRactice2Universal.Modification_Timestamp = DateTime.Now; medicalPRactice2Universal.Save(Connection, Transaction); var practiceUniversal = new ORM_HEC_MedicalPractice_UniversalProperty(); practiceUniversal.IsDeleted = false; practiceUniversal.Tenant_RefID = securityTicket.TenantID; practiceUniversal.HEC_MedicalPractice_UniversalPropertyID = medicalPRactice2Universal.HEC_MedicalPractice_UniversalProperty_RefID; practiceUniversal.PropertyName = "Surgery Practice"; practiceUniversal.IsValue_Boolean = true; practiceUniversal.Creation_Timestamp = DateTime.Now; practiceUniversal.Modification_Timestamp = DateTime.Now; practiceUniversal.Save(Connection, Transaction); var medicalPRactice2Universal2 = new ORM_HEC_MedicalPractice_2_UniversalProperty(); medicalPRactice2Universal2.Tenant_RefID = securityTicket.TenantID; medicalPRactice2Universal2.HEC_MedicalPractice_RefID = medicalPractice.HEC_MedicalPractiseID; medicalPRactice2Universal2.HEC_MedicalPractice_UniversalProperty_RefID = Guid.NewGuid(); medicalPRactice2Universal2.Value_Boolean = Parameter.IsOrderDrugs; medicalPRactice2Universal2.Creation_Timestamp = DateTime.Now; medicalPRactice2Universal2.Modification_Timestamp = DateTime.Now; medicalPRactice2Universal2.Save(Connection, Transaction); var practiceUniversal2 = new ORM_HEC_MedicalPractice_UniversalProperty(); practiceUniversal2.IsDeleted = false; practiceUniversal2.Tenant_RefID = securityTicket.TenantID; practiceUniversal2.HEC_MedicalPractice_UniversalPropertyID = medicalPRactice2Universal2.HEC_MedicalPractice_UniversalProperty_RefID; practiceUniversal2.PropertyName = "Order Drugs"; practiceUniversal2.IsValue_Boolean = true; practiceUniversal2.Creation_Timestamp = DateTime.Now; practiceUniversal2.Modification_Timestamp = DateTime.Now; practiceUniversal2.Save(Connection, Transaction); // default shipping date offset var medicalPRactice2Universal3 = new ORM_HEC_MedicalPractice_2_UniversalProperty(); medicalPRactice2Universal3.Tenant_RefID = securityTicket.TenantID; medicalPRactice2Universal3.HEC_MedicalPractice_RefID = medicalPractice.HEC_MedicalPractiseID; medicalPRactice2Universal3.HEC_MedicalPractice_UniversalProperty_RefID = Guid.NewGuid(); medicalPRactice2Universal3.Value_Number = double.Parse(Parameter.DefaultShippingDateOffset); medicalPRactice2Universal3.Creation_Timestamp = DateTime.Now; medicalPRactice2Universal3.Modification_Timestamp = DateTime.Now; medicalPRactice2Universal3.Save(Connection, Transaction); var practiceUniversal3 = new ORM_HEC_MedicalPractice_UniversalProperty(); practiceUniversal3.IsDeleted = false; practiceUniversal3.Tenant_RefID = securityTicket.TenantID; practiceUniversal3.HEC_MedicalPractice_UniversalPropertyID = medicalPRactice2Universal3.HEC_MedicalPractice_UniversalProperty_RefID; practiceUniversal3.PropertyName = "Default Shipping Date Offset"; practiceUniversal3.IsValue_Number = true; practiceUniversal3.Creation_Timestamp = DateTime.Now; practiceUniversal3.Modification_Timestamp = DateTime.Now; practiceUniversal3.Save(Connection, Transaction); var medicalPRactice2Universal4 = new ORM_HEC_MedicalPractice_2_UniversalProperty(); medicalPRactice2Universal4.Tenant_RefID = securityTicket.TenantID; medicalPRactice2Universal4.HEC_MedicalPractice_RefID = medicalPractice.HEC_MedicalPractiseID; medicalPRactice2Universal4.HEC_MedicalPractice_UniversalProperty_RefID = Guid.NewGuid(); medicalPRactice2Universal4.Value_Boolean = Parameter.IsOnlyLabelRequired; medicalPRactice2Universal4.Creation_Timestamp = DateTime.Now; medicalPRactice2Universal4.Modification_Timestamp = DateTime.Now; medicalPRactice2Universal4.Save(Connection, Transaction); var practiceUniversal4 = new ORM_HEC_MedicalPractice_UniversalProperty(); practiceUniversal4.IsDeleted = false; practiceUniversal4.Tenant_RefID = securityTicket.TenantID; practiceUniversal4.HEC_MedicalPractice_UniversalPropertyID = medicalPRactice2Universal4.HEC_MedicalPractice_UniversalProperty_RefID; practiceUniversal4.PropertyName = "Only Label Required"; practiceUniversal4.IsValue_Boolean = true; practiceUniversal4.Creation_Timestamp = DateTime.Now; practiceUniversal4.Modification_Timestamp = DateTime.Now; practiceUniversal4.Save(Connection, Transaction); var medicalPRactice2Universal5 = new ORM_HEC_MedicalPractice_2_UniversalProperty(); medicalPRactice2Universal5.Tenant_RefID = securityTicket.TenantID; medicalPRactice2Universal5.HEC_MedicalPractice_RefID = medicalPractice.HEC_MedicalPractiseID; medicalPRactice2Universal5.HEC_MedicalPractice_UniversalProperty_RefID = Guid.NewGuid(); medicalPRactice2Universal5.Value_Boolean = Parameter.isWaiveServiceFee; medicalPRactice2Universal5.Creation_Timestamp = DateTime.Now; medicalPRactice2Universal5.Modification_Timestamp = DateTime.Now; medicalPRactice2Universal5.Save(Connection, Transaction); var practiceUniversal5 = new ORM_HEC_MedicalPractice_UniversalProperty(); practiceUniversal5.IsDeleted = false; practiceUniversal5.Tenant_RefID = securityTicket.TenantID; practiceUniversal5.HEC_MedicalPractice_UniversalPropertyID = medicalPRactice2Universal5.HEC_MedicalPractice_UniversalProperty_RefID; practiceUniversal5.PropertyName = "Waive Service Fee"; practiceUniversal5.IsValue_Boolean = true; practiceUniversal5.Creation_Timestamp = DateTime.Now; practiceUniversal5.Modification_Timestamp = DateTime.Now; practiceUniversal5.Save(Connection, Transaction); // } Practice_Doctors_Model DPModel = new Practice_Doctors_Model(); DPModel.account_status = "aktiv"; DPModel.id = practice_id.ToString(); DPModel.name = Parameter.PracticeName; DPModel.name_untouched = Parameter.PracticeName; DPModel.salutation = ""; DPModel.type = "Practice"; DPModel.autocomplete_name = Parameter.PracticeName; DPModel.address = Parameter.Street + " " + Parameter.No; DPModel.zip = Parameter.Zip; DPModel.city = Parameter.City; DPModel.bank_untouched = Parameter.Bank != null ? Parameter.Bank : ""; DPModel.bank = Parameter.Bank != null ? Parameter.Bank : ""; if (Parameter.Email != null) { DPModel.email = Parameter.MainEmail; } DPModel.phone = Parameter.MainPhone; if (Parameter.IBAN != null) { DPModel.iban = Parameter.IBAN; } if (Parameter.Bic != null) { DPModel.bic = Parameter.Bic; } DPModel.bsnr_lanr = Parameter.BSNR; DPModel.aditional_info = ""; DPModel.contract = 0; DPModel.tenantid = securityTicket.TenantID.ToString(); DPModel.role = Parameter.IsSurgeryPractice ? "op" : "ac"; List <Practice_Doctors_Model> DPModelL = new List <Practice_Doctors_Model>(); DPModelL.Add(DPModel); Add_Practice_Doctors_to_Elastic.Import_Practice_Data_to_ElasticDB(DPModelL, securityTicket.TenantID.ToString()); //Commit the transaction if (cleanupTransaction == true) { Transaction.Commit(); } //Close the connection if (cleanupConnection == true) { Connection.Close(); } } catch (Exception ex) { try { if (cleanupTransaction == true && Transaction != null) { Transaction.Rollback(); } } catch { } try { if (cleanupConnection == true && Connection != null) { Connection.Close(); } } catch { } throw ex; } }