Пример #1
0
        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);
        }
Пример #5
0
        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);
        }