protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AC_SA_1046 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var bp = new ORM_CMN_BPT_BusinessParticipant() { CMN_BPT_BusinessParticipantID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, IsNaturalPerson = true, IfNaturalPerson_CMN_PER_PersonInfo_RefID = Guid.NewGuid(), DisplayName = Parameter.Title + " " + Parameter.FirstName + " " + Parameter.LastName }; bp.Save(Connection, Transaction); var personInfo = new ORM_CMN_PER_PersonInfo() { CMN_PER_PersonInfoID = bp.IfNaturalPerson_CMN_PER_PersonInfo_RefID, Tenant_RefID = securityTicket.TenantID, Title = Parameter.Title, FirstName = Parameter.FirstName, LastName = Parameter.LastName, PrimaryEmail = Parameter.Email, Address_RefID = Guid.NewGuid() }; personInfo.Save(Connection, Transaction); var address = new ORM_CMN_Address() { CMN_AddressID = personInfo.Address_RefID, Tenant_RefID = securityTicket.TenantID, Street_Name = Parameter.StreetName, Street_Number = Parameter.StreetNumber, City_Name = Parameter.CityName, City_PostalCode = Parameter.CityPostalCode, Country_Name = Parameter.CountryName }; address.Save(Connection, Transaction); var bptUser = new ORM_CMN_BPT_USR_User() { CMN_BPT_USR_UserID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, BusinessParticipant_RefID = bp.CMN_BPT_BusinessParticipantID, Username = Parameter.Email }; bptUser.Save(Connection, Transaction); var cryptoUtils = new CryptoUtils(); string passSalt = cryptoUtils.GenerateRandomSalt(32); var bptUserPass = new ORM_CMN_BPT_USR_User_Password() { CMN_BPT_USR_User_PasswordID = Guid.NewGuid(), CMN_BPT_USR_User_RefID = bptUser.CMN_BPT_USR_UserID, Tenant_RefID = securityTicket.TenantID, Password_Salt = passSalt, Password_Hash = cryptoUtils.GenerateSaltedHash(Parameter.Password, passSalt), Password_Algorithm = cryptoUtils.GetHashAlgorithName(), IsActive = Parameter.IsActivated }; bptUserPass.Save(Connection, Transaction); var community = ORM_HEC_CMT_Community.Query.Search(Connection, Transaction, new ORM_HEC_CMT_Community.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, IsCommunityOperatedByThisTenant = true }).Single(); var membershipType = ORM_HEC_CMT_Community_OfferedMembershipType.Query.Search(Connection, Transaction, new ORM_HEC_CMT_Community_OfferedMembershipType.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, IsAvailableFor_Tenants = Parameter.IsTenant, IsAvailableFor_Doctors = !Parameter.IsTenant }).Single(); var member = new ORM_HEC_CMT_Membership() { CommunityMembershipITL = Guid.NewGuid().ToString(), HEC_CMT_MembershipID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, Community_RefID = community.HEC_CMT_CommunityID, MembershipType_RefID = membershipType.HEC_CMT_Community_OfferedMembershipTypeID, BusinessParticipant_RefID = bp.CMN_BPT_BusinessParticipantID }; member.Save(Connection, Transaction); returnValue.Result = bptUser.CMN_BPT_USR_UserID; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5MPC_SMC_1101 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); returnValue.Result = new Guid(); #region Save var community = ORM_HEC_CMT_Community.Query.Search(Connection, Transaction, new ORM_HEC_CMT_Community.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, IsCommunityOperatedByThisTenant = true }).Single(); var membershipType = ORM_HEC_CMT_Community_OfferedMembershipType.Query.Search(Connection, Transaction, new ORM_HEC_CMT_Community_OfferedMembershipType.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, IsAvailableFor_Tenants = Parameter.IsTenant, IsAvailableFor_Doctors = !Parameter.IsTenant }).Single(); var members = ORM_HEC_CMT_Membership.Query.Search(Connection, Transaction, new ORM_HEC_CMT_Membership.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, BusinessParticipant_RefID = Parameter.BusinessParticipantID }).SingleOrDefault(); if (members == null) { members = new ORM_HEC_CMT_Membership() { HEC_CMT_MembershipID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, CommunityMembershipITL = Guid.Empty.ToString(), BusinessParticipant_RefID = Parameter.BusinessParticipantID, Community_RefID = community.HEC_CMT_CommunityID }; members.Save(Connection, Transaction); } var creds = ORM_HEC_CMT_Membership_Credential.Query.Search(Connection, Transaction, new ORM_HEC_CMT_Membership_Credential.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Membership_RefID = members.HEC_CMT_MembershipID }).SingleOrDefault(); if (creds == null) { creds = new ORM_HEC_CMT_Membership_Credential() { HEC_CMT_Membership_CredentialID = Guid.NewGuid(), Tenant_RefID = securityTicket.TenantID, Membership_RefID = members.HEC_CMT_MembershipID, }; } creds.Membership_Password = Parameter.Membership_Password; creds.Membership_Username = Parameter.Membership_Username; creds.Save(Connection, Transaction); if (!Parameter.IsTenant) { var group = ORM_HEC_CMT_CommunityGroup.Query.Search(Connection, Transaction, new ORM_HEC_CMT_CommunityGroup.Query() { Tenant_RefID = securityTicket.TenantID, IsPrivate = false, IsDeleted = false, CommunityGroupCode = "FAVORITES" }).Single(); var m2g = ORM_HEC_CMT_GroupSubscription.Query.Search(Connection, Transaction, new ORM_HEC_CMT_GroupSubscription.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Membership_RefID = members.HEC_CMT_MembershipID, CommunityGroup_RefID = group.HEC_CMT_CommunityGroupID }).SingleOrDefault(); if (m2g == null) { m2g = new ORM_HEC_CMT_GroupSubscription() { Tenant_RefID = securityTicket.TenantID, Membership_RefID = members.HEC_CMT_MembershipID, CommunityGroup_RefID = group.HEC_CMT_CommunityGroupID }; m2g.Save(Connection, Transaction); } } #endregion return(returnValue); #endregion UserCode }