コード例 #1
0
ファイル: Extensions.cs プロジェクト: raybelline/Community
        public static TrimSearchClause GetDriveIdSearchClause(this string id, Database database)
        {
            TrimSearchClause clause = new TrimSearchClause(database, BaseObjectTypes.Record, new FieldDefinition(database, "DriveID"));

            clause.SetCriteriaFromString(id);

            return(clause);
        }
コード例 #2
0
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            TrimMainObjectSearch search = new TrimMainObjectSearch(_database, BaseObjectTypes.Record);


            TrimSearchClause recentClause = new TrimSearchClause(_database, BaseObjectTypes.Record, SearchClauseIds.RecordMyDocuments);

            search.AddSearchClause(recentClause);

            search.SetPurpose((int)RecordPurposes.FindTemplate, (int)AllEnumerations.WordOpenFileTypes);



            var selectedSearch = ObjectSelector.SelectOne(GetDesktopWindow(), search);

            if (selectedSearch != null)
            {
                string gg = selectedSearch.Uri.ToString();
            }
        }
コード例 #3
0
        public async Task <object> Get(RegisterFile request)
        {
            var log = LogManager.GetLogger(typeof(RegisterFileService));

            log.Debug("GET start");
            RegisterFileResponse response = new RegisterFileResponse();



            log.Debug("getToken");
            string token = await getToken();

            log.Debug("gotToken");

            string driveId = getDriveIdFromTrim(request);

            log.Debug("got Drive ID");
            OneDriveItem fileResult = null;

            try
            {
                if (!string.IsNullOrWhiteSpace(request.WebUrl) && new string[] { "https://", "http://" }
                    .Any(s => request.WebUrl.StartsWith(s, StringComparison.InvariantCultureIgnoreCase)))
                {
                    log.Debug("GetItem");
                    var fullOneDriveItemsUrl = GraphApiHelper.GetOneDriveShareUrl(request.WebUrl);
                    fileResult = await ODataHelper.GetItem <OneDriveItem>(fullOneDriveItemsUrl, token, null);

                    log.Debug("GotItem");
                }
                else if (!string.IsNullOrWhiteSpace(driveId))
                {
                    fileResult = await ODataHelper.GetItem <OneDriveItem>(GraphApiHelper.GetOneDriveItemIdUrl(driveId), token, null);
                }
            }
            catch
            {
                throw;
            }

            RegisterdFileResponse registeredFile = new RegisterdFileResponse();

            if (fileResult != null)
            {
                registeredFile.Id        = fileResult?.getDriveAndId();
                registeredFile.DriveItem = fileResult;

                TrimMainObjectSearch search = new TrimMainObjectSearch(this.Database, BaseObjectTypes.Record);
                TrimSearchClause     clause = new TrimSearchClause(this.Database, BaseObjectTypes.Record, SearchClauseIds.RecordSpURL);
                clause.SetCriteriaFromString(fileResult.getDriveAndId());

                search.AddSearchClause(clause);

                var uris = search.GetResultAsUriArray(2);

                if (uris.Count == 1)
                {
                    updateFromRecord(registeredFile, new Record(this.Database, uris[0]));
                }

                //if (request.Uri > 0)
                //{
                //	Record record = new Record(this.Database, request.Uri);
                //	response.RecordTitle = record.Title;
                //	response.Name = this.Database.CurrentUser.FormattedName;
                //}
            }

            response.Results = new List <RegisterdFileResponse>()
            {
                registeredFile
            };

            log.Debug("Finished");
            return(response);
        }
コード例 #4
0
ファイル: Extensions.cs プロジェクト: raybelline/Community
        public static void AddDeleteNowSearchClause(this TrimMainObjectSearch search)
        {
            TrimSearchClause clause = new TrimSearchClause(search.Database, BaseObjectTypes.Record, new FieldDefinition(search.Database, "DeleteNow"));

            search.AddSearchClause(clause);
        }
コード例 #5
0
        public async Task <object> Get(RegisterFile request)
        {
            var log = LogManager.GetLogger(typeof(RegisterFileService));

            log.Debug("GET start");
            RegisterFileResponse response = new RegisterFileResponse();



            log.Debug("getToken");
            string token = await getToken();

            log.Debug("gotToken");

            string driveId = null;

            if (!request.IsEmail)
            {
                driveId = getDriveIdFromTrim(request);
            }
            log.Debug("got Drive ID");
            OneDriveItem fileResult = null;

            long[] recordUris = new long[] { };

            RegisterdFileResponse registeredFile = new RegisterdFileResponse();

            try
            {
                if (request.IsEmail && string.IsNullOrWhiteSpace(request.AttachmentName))
                {
                    recordUris = await getEmailLinkUri(request.WebUrl, token);
                }

                if (request.IsEmail && (recordUris.Length == 0 || request.GetFile == true))
                {
                    var emailUrl = GraphApiHelper.GetEMLUrl(request.WebUrl);

                    string userFolder = Path.Combine("ForUser", this.Database.CurrentUser.Uri.ToString());

                    string fullUserFolder = Path.Combine(this.ServiceDefaults.UploadBasePath, userFolder);

                    Directory.CreateDirectory(fullUserFolder);
                    string fileName = Path.ChangeExtension(request.WebUrl, "eml");

                    if (!string.IsNullOrWhiteSpace(request.AttachmentName))
                    {
                        fileName = request.AttachmentName;
                    }

                    string filePath = Path.Combine(fullUserFolder, fileName);


                    await ODataHelper.GetItem <string>(emailUrl, token, filePath);

                    registeredFile.EmailPath = Path.Combine(userFolder, fileName);;
                }
                else if (!string.IsNullOrWhiteSpace(request.WebUrl) && new string[] { "https://", "http://" }
                         .Any(s => request.WebUrl.StartsWith(s, StringComparison.InvariantCultureIgnoreCase)))
                {
                    if (request.WebUrl.StartsWith("http", StringComparison.InvariantCultureIgnoreCase))
                    {
                        log.Debug("GetItem");
                        var fullOneDriveItemsUrl = GraphApiHelper.GetOneDriveShareUrl(request.WebUrl);
                        log.Debug("Got URL");
                        fileResult = await ODataHelper.GetItem <OneDriveItem>(fullOneDriveItemsUrl, token, null);

                        log.Debug("GotItem");
                    }
                }
                else if (!string.IsNullOrWhiteSpace(driveId) && !request.IsEmail)
                {
                    fileResult = await ODataHelper.GetItem <OneDriveItem>(GraphApiHelper.GetOneDriveItemIdUrl(driveId), token, null);
                }
            }
            catch
            {
                throw;
            }



            //DroppedFilesUserOptions fileOptions = new DroppedFilesUserOptions(this.Database);
            //var options = new TrimOptions();
            //if (fileOptions.UseDefaultRecordTypeInOffice == true)
            //{
            //	options.DefaultDocumentRecordType = fileOptions.RecordType.Uri;
            //}

            //registeredFile.Options = options;

            var enumItems = new List <MyEnumItem>();

            HP.HPTRIM.SDK.Enum relationshipEnum = new HP.HPTRIM.SDK.Enum(AllEnumerations.RecordRelationshipType, this.Database);

            foreach (var relEnum in relationshipEnum.GetItemArray(new int[] { (int)RecordRelationshipType.InSharepointSite, (int)RecordRelationshipType.IsInSeries, (int)RecordRelationshipType.IsRootPart, (int)RecordRelationshipType.IsTempCopy, (int)RecordRelationshipType.IsVersion, (int)RecordRelationshipType.RedactionOf }, true).OrderBy(ei => ei.Caption))
            {
                enumItems.Add(new MyEnumItem()
                {
                    Name = relEnum.Name, Caption = relEnum.Caption
                });
            }

            Dictionary <string, IList <MyEnumItem> > enumDetails = new Dictionary <string, IList <MyEnumItem> >();

            enumDetails.Add("RecordRelationshipType", enumItems);

            registeredFile.Enums = enumDetails;

            if (fileResult != null)
            {
                registeredFile.Id        = fileResult?.getDriveAndId();
                registeredFile.DriveItem = fileResult;

                TrimMainObjectSearch search = new TrimMainObjectSearch(this.Database, BaseObjectTypes.Record);

                search.AddSearchClause(fileResult.getDriveAndId().GetDriveIdSearchClause(this.Database));

                var uris = search.GetResultAsUriArray(2);

                if (uris.Count == 1)
                {
                    registeredFile.Uri = uris;
                }
            }
            else if (request.IsEmail && recordUris.Length > 0)
            {
                registeredFile.Uri = recordUris;
            }
            else if (!string.IsNullOrWhiteSpace(request.WebUrl) && !request.WebUrl.StartsWith("http", StringComparison.InvariantCultureIgnoreCase))
            {
                TrimMainObjectSearch search = new TrimMainObjectSearch(this.Database, BaseObjectTypes.Record);

                search.AddSearchClause(request.WebUrl.GetDriveIdSearchClause(this.Database));

                TrimSearchClause checkedInByClause = new TrimSearchClause(this.Database, BaseObjectTypes.Record, SearchClauseIds.RecordCheckedInBy);
                checkedInByClause.SetCriteriaFromObject(this.Database.CurrentUser);
                search.AddSearchClause(checkedInByClause);
                search.And();

                var uris = search.GetResultAsUriArray(2);

                if (uris.Count == 1)
                {
                    registeredFile.Uri = uris;
                }
            }
            response.Results = new List <RegisterdFileResponse>()
            {
                registeredFile
            };

            log.Debug("Finished");
            return(response);
        }
コード例 #6
0
        public async Task <object> Get(RegisterFile request)
        {
            RegisterFileResponse response = new RegisterFileResponse();

            //string[] addinScopes = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/scope").Value.Split(' ');

            string token = await getToken();


            string driveId = getDriveIdFromTrim(request);

            OneDriveItem fileResult = null;

            try
            {
                if (!string.IsNullOrWhiteSpace(request.WebUrl))
                {
                    var driveDetails = await ODataHelper.GetItem <OneDriveDrive>(GraphApiHelper.GetMyOneDriveUrl(), token);

                    string filePath = request.WebUrl.Substring(driveDetails.WebUrl.Length);

                    var fullOneDriveItemsUrl = GraphApiHelper.GetOneDriveItemPathsUrl(filePath);
                    fileResult = await ODataHelper.GetItem <OneDriveItem>(fullOneDriveItemsUrl, token);
                }
                else if (!string.IsNullOrWhiteSpace(driveId))
                {
                    fileResult = await ODataHelper.GetItem <OneDriveItem>(GraphApiHelper.GetOneDriveItemIdUrl(driveId), token);
                }
            }
            catch
            {
                throw;
            }


            var registeredFile = new RegisterdFileResponse()
            {
                Id = fileResult?.Id, DriveItem = fileResult
            };


            TrimMainObjectSearch search = new TrimMainObjectSearch(this.Database, BaseObjectTypes.Record);
            TrimSearchClause     clause = new TrimSearchClause(this.Database, BaseObjectTypes.Record, SearchClauseIds.RecordExternal);

            clause.SetCriteriaFromString(fileResult.Id);

            search.AddSearchClause(clause);

            var uris = search.GetResultAsUriArray(2);

            if (uris.Count == 1)
            {
                updateFromRecord(registeredFile, new Record(this.Database, uris[0]));
            }
            //if (request.Uri > 0)
            //{
            //	Record record = new Record(this.Database, request.Uri);
            //	response.RecordTitle = record.Title;
            //	response.Name = this.Database.CurrentUser.FormattedName;
            //}



            response.Results = new List <RegisterdFileResponse>()
            {
                registeredFile
            };
            return(response);
        }