private static void FarazTestFunction1() { var toContinue = false; do { toContinue = false; Console.WriteLine(AffinityConfigurationMaster.GetDatabaseConnectionStringBuilder(DeploymentLocation.BtsFaraz).ToString()); Exception exception = null; TenantUserSession tenantUserSessionRaheel = null; TenantUserSession tenantUserSessionJunaid = null; AuthenticationManagement.SignIn(SessionType.Mvc, "kloud-soft.com", "raheel.khan", Sha.GenerateHash("audience", GlobalConstants.EncodingCryptography, GlobalConstants.AlgorithmHashShaKind), IPAddress.Loopback.ToString(), "User Agent", 0, "Session Id", out tenantUserSessionRaheel, out exception); AuthenticationManagement.SignIn(SessionType.Mvc, "kloud-soft.com", "junaid.sayed", Sha.GenerateHash("audience", GlobalConstants.EncodingCryptography, GlobalConstants.AlgorithmHashShaKind), IPAddress.Loopback.ToString(), "User Agent", 0, "Session Id", out tenantUserSessionJunaid, out exception); List <Folder> folders = null; using (var context = new ContextTenant(tenantUserSessionRaheel.Tenant.DatabaseConnectionString)) { folders = context.Folders.Include(x => x.FolderUsers).ToList(); Console.WriteLine(FolderManagement.ValidateUserFolderRightsHirarchy(15, folders, 1).ToString()); } Console.WriteLine("press 'y' to continue"); var read = Console.ReadKey(); if (read.KeyChar.ToString().ToLower() == "y") { toContinue = true; Console.Clear(); } } while (toContinue); }
public bool RemoveFile(TenantUserSession tenantUserSession, long id, DiscussionPostAttachmentType DocumentTypeToRemove, CancellationToken cancellationToken, out Exception exception) { var result = false; exception = null; try { if (id <= 0) { throw (new Exception("Unable to find the following request")); } string containerName = GetContainerNameByUploadType(DocumentTypeToRemove); if (!string.IsNullOrEmpty(containerName)) { var connectionString = tenantUserSession.Tenant.StorageConnectionStringPrimary; var account = CloudStorageAccount.Parse(connectionString); var client = account.CreateCloudBlobClient(); var container = client.GetContainerReference(containerName); container.CreateIfNotExists(); container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Off, }); var Blob = container.GetBlockBlobReference(id.ToString() + "." + GlobalConstants.FileExtensionCloud); var running = true; var watch = System.Diagnostics.Stopwatch.StartNew(); var task = Blob.DeleteIfExistsAsync(cancellationToken); do { switch (task.Status) { case TaskStatus.Canceled: case TaskStatus.Faulted: case TaskStatus.RanToCompletion: { running = false; break; } } Thread.Sleep(TimeSpan.FromSeconds(1)); cancellationToken.ThrowIfCancellationRequested(); }while (running); switch (task.Status) { case TaskStatus.Faulted: case TaskStatus.Canceled: { running = false; throw (task.Exception ?? new Exception("The delete task encountered an unknown exception.")); } } result = true; } } catch (Exception e) { exception = e; } return(result); }
public bool DiscourseDocumentCopy(TenantUserSession tenantUserSession, long newDiscoursePostVersionAttachmentId, long oldDiscoursePostVersionAttachmentId, CancellationToken cancellationToken, out Exception exception) { var result = false; exception = null; try { var connectionString = tenantUserSession.Tenant.StorageConnectionStringPrimary; var account = CloudStorageAccount.Parse(connectionString); var client = account.CreateCloudBlobClient(); var container = client.GetContainerReference("discourseexternaldocuments"); container.CreateIfNotExists(); container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Off, }); var oldBlob = container.GetBlockBlobReference(oldDiscoursePostVersionAttachmentId.ToString() + "." + GlobalConstants.FileExtensionCloud); var newBlob = container.GetBlockBlobReference(newDiscoursePostVersionAttachmentId.ToString() + "." + GlobalConstants.FileExtensionCloud); var running = true; var watch = System.Diagnostics.Stopwatch.StartNew(); var task = newBlob.StartCopyAsync(oldBlob, cancellationToken); //stream.Seek(0, SeekOrigin.Begin); //blob.DeleteIfExists(DeleteSnapshotsOption.IncludeSnapshots); //var task = blob.UploadFromStreamAsync(stream, cancellationToken); do { switch (task.Status) { case TaskStatus.Canceled: case TaskStatus.Faulted: case TaskStatus.RanToCompletion: { running = false; break; } } Thread.Sleep(TimeSpan.FromSeconds(1)); cancellationToken.ThrowIfCancellationRequested(); }while (running); switch (task.Status) { case TaskStatus.Faulted: case TaskStatus.Canceled: { running = false; throw (task.Exception ?? new Exception("The copy task encountered an unknown exception.")); } } result = true; } catch (Exception e) { exception = e; } return(result); }
//public bool DocumentUpload(TenantUserSession tenantUserSession, Document document, Stream stream, CancellationToken cancellationToken, out Exception exception) //{ // var result = false; // exception = null; // try // { // var connectionString = tenantUserSession.Tenant.StorageConnectionStringPrimary; // var account = CloudStorageAccount.Parse(connectionString); // var client = account.CreateCloudBlobClient(); // var container = client.GetContainerReference("documents"); // container.CreateIfNotExists(); // container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Off, }); // var blob = container.GetBlockBlobReference(document.FileNameServer); // var running = true; // var watch = System.Diagnostics.Stopwatch.StartNew(); // blob.DeleteIfExists(DeleteSnapshotsOption.IncludeSnapshots); // blob.UploadFromStream(stream); // result = true; // } // catch (Exception e) // { // exception = e; // } // return (result); //} public bool DocumentUpload(TenantUserSession tenantUserSession, Document document, Stream stream, CancellationToken cancellationToken, out Exception exception) { var result = false; exception = null; try { var connectionString = tenantUserSession.Tenant.StorageConnectionStringPrimary; var account = CloudStorageAccount.Parse(connectionString); var client = account.CreateCloudBlobClient(); var container = client.GetContainerReference("documents"); container.CreateIfNotExists(); container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Off, }); var blob = container.GetBlockBlobReference(document.FileNameServer); var running = true; var watch = System.Diagnostics.Stopwatch.StartNew(); stream.Seek(0, SeekOrigin.Begin); blob.DeleteIfExists(DeleteSnapshotsOption.IncludeSnapshots); var task = blob.UploadFromStreamAsync(stream, cancellationToken); do { switch (task.Status) { case TaskStatus.Canceled: case TaskStatus.Faulted: case TaskStatus.RanToCompletion: { running = false; break; } } Thread.Sleep(TimeSpan.FromSeconds(1)); cancellationToken.ThrowIfCancellationRequested(); }while (running); switch (task.Status) { case TaskStatus.Faulted: case TaskStatus.Canceled: { running = false; throw (task.Exception ?? new Exception("The upload task encountered an unknown exception.")); } } result = true; } catch (Exception e) { exception = e; } return(result); }
private static void TestDocumentAcl() { Exception exception = null; List <Document> documentsRaheel = null; List <Document> documentsJunaid = null; TenantUserSession tenantUserSessionRaheel = null; TenantUserSession tenantUserSessionJunaid = null; ContextMaster.Initialize(); using (var context = new ContextMaster()) { context.Tenants.ToList(); } AuthenticationManagement.SignIn(SessionType.Mvc, "kloud-soft.com", "raheel.khan", Sha.GenerateHash("audience", GlobalConstants.EncodingCryptography, GlobalConstants.AlgorithmHashShaKind), IPAddress.Loopback.ToString(), "User Agent", 0, "Session Id", out tenantUserSessionRaheel, out exception); AuthenticationManagement.SignIn(SessionType.Mvc, "kloud-soft.com", "junaid.sayed", Sha.GenerateHash("audience", GlobalConstants.EncodingCryptography, GlobalConstants.AlgorithmHashShaKind), IPAddress.Loopback.ToString(), "User Agent", 0, "Session Id", out tenantUserSessionJunaid, out exception); documentsRaheel = DocumentManagement.GetDocuments ( tenantUserSession: tenantUserSessionRaheel, documentId: 23, documentIdType: DocumentIdType.Id, folderId: 3, documentResultVersionType: DocumentResultVersionType.All, includeDiscourse: false, includeDocumentElements: false, includeDocumentFragments: false, includeCreatorUser: false, includeCheckedOutUser: false, includeDocumentUsers: false, includeDocumentIndexes: false, includeDocumentTags: false, includeDocumentTagUsers: false, includeDocumentTemplates: false, includeDocumentCorrectiveIndexValues: false, isFinalized: null, skipRows: null, takeRows: null ); documentsJunaid = DocumentManagement.GetDocuments ( tenantUserSession: tenantUserSessionJunaid, documentId: 23, documentIdType: DocumentIdType.Id, folderId: 3, documentResultVersionType: DocumentResultVersionType.All, includeDiscourse: false, includeDocumentElements: false, includeDocumentFragments: false, includeCreatorUser: false, includeCheckedOutUser: false, includeDocumentUsers: false, includeDocumentIndexes: false, includeDocumentTags: false, includeDocumentTagUsers: false, includeDocumentTemplates: false, includeDocumentCorrectiveIndexValues: false, isFinalized: null, skipRows: null, takeRows: null ); Console.Write($"User: {tenantUserSessionRaheel.User.NameFull}:"); foreach (var document in documentsRaheel) { Console.WriteLine(); Console.Write($" - Name: {document.Name}"); } Console.WriteLine(); Console.WriteLine(); Console.Write($"User: {tenantUserSessionJunaid.User.NameFull}:"); foreach (var document in documentsJunaid) { Console.WriteLine(); Console.Write($" - Name: {document.Name}"); } Console.WriteLine(); Console.WriteLine(); Console.Write("Press any key to continue..."); Console.ReadKey(true); }