public bool CreateBPMOnlineFolder(Guid id, string userName, string userPassword) { if (UserConnection.GetIsFeatureEnabled("EmailIntegrationV2")) { return(false); } var currentMailServer = new MailServer(UserConnection); if (!currentMailServer.FetchFromDB(id)) { return(false); } var imapServerCredentials = new MailCredentials { Host = currentMailServer.GetTypedColumnValue <string>("Address"), Port = currentMailServer.GetTypedColumnValue <int>("Port"), UseSsl = currentMailServer.GetTypedColumnValue <bool>("UseSSL"), StartTls = currentMailServer.GetTypedColumnValue <bool>("IsStartTls"), UserName = userName, UserPassword = userPassword }; var imapClient = ClassFactory.Get <IImapClient>("OldEmailIntegration", new ConstructorArgument("credentials", imapServerCredentials), new ConstructorArgument("errorMessages", new Terrasoft.Mail.ImapErrorMessages()), new ConstructorArgument("userConnection", UserConnection)); imapClient.EnsureFolderExists("BPMonline"); var mailboxFolderTypeId = new Guid("99c2351c-f0f8-e111-9dba-00155d051801"); var emailFolderTypeId = new Guid("b97a5836-1cd0-e111-90c6-00155d054c03"); var mailboxFolder = new ActivityFolder(UserConnection); if (mailboxFolder.FetchFromDB( new Dictionary <string, object> { { "FolderType", mailboxFolderTypeId }, { "Name", imapServerCredentials.UserName } })) { var activityFolderSchema = UserConnection.EntitySchemaManager.GetInstanceByName("ActivityFolder"); var bpmonlineFolder = activityFolderSchema.CreateEntity(UserConnection); var parentColumn = activityFolderSchema.Columns.GetByName("Parent"); var folderTypeColumn = activityFolderSchema.Columns.GetByName("FolderType"); bpmonlineFolder.SetDefColumnValues(); bpmonlineFolder.SetColumnValue("Name", "BPMonline"); bpmonlineFolder.SetColumnValue(parentColumn.ColumnValueName, mailboxFolder.PrimaryColumnValue); bpmonlineFolder.SetColumnValue(folderTypeColumn.ColumnValueName, emailFolderTypeId); bpmonlineFolder.Save(); return(true); } return(false); }