Mattercenter2.0 version (#364)
* Added the upload email functionality (#242) * 1. Done changes in directives for testing some functionality. (#243) 2. Fixed the click issue on buttons in flyout issue in documents and matters page. 3. Fixed some css issues in matters page. * Added code fix for the mailupload and documentflyout bugs * Added code to support runtime changes to AppSettings.json file (#244) * Fixed the bugs in the upload emails and attachments from OWA * Added code to fix one edge scenario when uploading attachments using outlook and owa * Added code to support runtime changes to AppSettings.json file. The new code will take the new updates values from the appsettings.json file and updates its corresponding strongly typed classes * 1. Done changes to show the loader when scrolling in matters page. (#247) 2. Added the functionality for infinite scroll in documents page. 3. Added code for custom flyout in matters page. 4. Replaced the link for view matters in mattercelltemplate. * Mattercenter2 (#248) Added code to include 5 level hierarchy for the taxonomy * 1. Fixed the search issue for other criterias in matters and documents page. (#249) 2. Added code for the custom directive in matters controller page. 3. Added new factory for the common controls in home controller. * Code changes for Flyout Menu issues in the matter controller Code changes for wrong matter information in the flyout menu in the matter controller * Added code to support file upload from user desktop to matter center from the flyout menu (#250) Added code to support file upload from user desktop to matter center from the fly-out menu * Added code to support file upload from desktop to matter center * Added proper comments to the document controller and other interface classes Removed javascript alert method from the angular js code * Update .gitignore added project.lock.json to gitignore * removed project.lock.json from source control. * removed solution that are not required for building web site. * 1. Implemented custom flyout in document page. 2. Done changes for the css to make flyout visible as per the responsive design in both matters and documents page. 3. Fixed the scroll issues in both matters and document pages. 4. Moved the directive code from matters page to common.directives page. * 1. Implemented custom flyout in document page. (#252) 2. Done changes for the css to make flyout visible as per the responsive design in both matters and documents page. 3. Fixed the scroll issues in both matters and document pages. 4. Moved the directive code from matters page to common.directives page. * 1. Fixed the scroll issue for the grid in matters and document pages. 2. Removed the unwanted code in files. * Reading clien terms from any hierarchy (#253) * Fixed the bugs in the upload emails and attachments from OWA * Added code to fix one edge scenario when uploading attachments using outlook and owa * Added code to support runtime changes to AppSettings.json file. The new code will take the new updates values from the appsettings.json file and updates its corresponding strongly typed classes * Added code to include 5 level hierarchy for the taxonomy * Added code to support file upload from desktop to matter center * Added code to read client terms from any position in taxonomy hierarchy Moved all the interfaces to interfaces folder Added comments to some of the methods so that it will be helpful in the future * Migrating Test Project on RC2 (#255) Adding the integration test project to the matter center project * Modified theintegration test files to be compatible to RC2 * Added code to support 5 level of taxonomy hierarchy Associate parent term custom properties to child term, if the custom properties are not available for the child terms * Added code to support 5 level of taxonomy hierarchy (#257) Associate parent term custom properties to child term, if the custom properties are not available for the child terms * Bug fix 697980 and generic doc image src fix (#258) * 1. Fixed the email issue for sending an email to support in navigation page. (#259) 2. Added the code for dropdown directive for filters in common directives 3. Fixed the search issue for the typehead in matters and documents page. 4. fixed some css issue for the matters page * Implemented the new taxonomy changes to support multi hierarchy Made changes to the code when creating matter to support external sharing Added new app settings in appsettings.json to support multi hierarchy * Added comment to the method * Mattercenter2 (#261) * Added code to support 5 level of taxonomy hierarchy Associate parent term custom properties to child term, if the custom properties are not available for the child terms * Implemented the new taxonomy changes to support multi hierarchy Made changes to the code when creating matter to support external sharing Added new app settings in appsettings.json to support multi hierarchy * Added comment to the method * 1. Fixed the issues for showing and hiding the filters when clicked on headers in matters page. 2. Removed the unwanted code from all templates and directives respective to matters. 3. Updated some css in site.css page * 1. Fixed the issues for showing and hiding the filters when clicked on headers in matters page. (#263) 2. Removed the unwanted code from all templates and directives respective to matters. 3. Updated some css in site.css page * 1. Fixed the issue for the navigation of url in document flyout. 2. Added some functionality required to get the document assests in documents controller 3. Removed the body scroll and made scroll visible as per the browser height in matters and documents page 4. Replaced some css with other in site.css 5. Done changes in document templates * Changed the hardcoded urls to the config urls and compose mode attachments section (#264) * Adding layers to read Configs from Azure Table Storage * 1. Fixed the issues for the modified date filters in matters and document pages. (#266) 2. Fixed the issue for showing and hiding of the filter icon for the headers in matters and documents pages. 3. Added code for clear filters for headers in both matters and document pages. 4. Removed unwanted code from templates of matters and documents. 5. Implemented search filters for headers in document page. * Added a new web api method in UserController to check whether a user exists or not in the site * Added a new method which will check whether a user exists or not in the site. This is used in external sharing scenario (#267) * Added code to support 5 level of taxonomy hierarchy Associate parent term custom properties to child term, if the custom properties are not available for the child terms * Implemented the new taxonomy changes to support multi hierarchy Made changes to the code when creating matter to support external sharing Added new app settings in appsettings.json to support multi hierarchy * Added comment to the method * Added a new web api method in UserController to check whether a user exists or not in the site. This method will be used in external sharing scenario * code changes for Bugs (#268) * Fixed the file upload issue in the matter and the document search page is broken as one of the function does doesnot have a closing braces * Solution for bug 698013 for documentdashboard page flyout close on click on maindiv. (#269) * Code changes has been done to support n levels of taxonomy hierarchy. AssignContentType api MatterController.cs api has been updated. Other supporting files has also been updated to support new term hierarchy model * codefixes for mailsubject, selectType in createMatter. createMatter Assignteam functionality impelmentation (#272) * 1. Fixed the overflow issue for the grid in matters and document pages for responsive. (#271) 2. Added the new class for templates in matters and documents. 3. Added changes for flyout and design issues in document dashboard page. 4. Fixed the issue for the search filters in document page. * Unit test to test Config Rep * Fixed the owa url for office related documents * 1. Added changes for the searchresults based on in screen resolution matters and dashboard page. (#274) 2. Done changes to display flyout in matter dashboard page. 3. Added code for the search in matters dashboard page. 4. Replaced some css in site.css * Mattercenter2 (#273) * Changes regarding Bug 697917 : Full text search is not working. After changing single quote to double quotes it is giving desirable results. * Changes for Bug 697917 : Full text search is not working. After changing single quote to double quotes it is giving desirable results. * Mattercenter2 (#276) * Changes regarding Bug 697917 : Full text search is not working. After changing single quote to double quotes it is giving desirable results. * Changes for Bug 697917 : Full text search is not working. After changing single quote to double quotes it is giving desirable results. * Resolution for alignment behaviour observed as part of bug 698013. * Modified code to implement External Sharing Removed the dependency of SPO authorization from Controllers Modified the JOBS code to update external sharing functionality * 1. Fixed the issue for search flyout functionality in matters and documents page. (#277) 2. Removed unwanted code from matters, mattersdashboard and document dashboard. 3. Added code for showing and hiding of grid during the api calls in mattersdashboard and documentdashboard. 4. Fixed other functionality issues in both dashboard pages. * Changes for open clientfilter dropdown alignemnt and implementation o… (#279) * Changes for open clientfilter dropdown alignemnt and implementation of progress bar while fetching the data. 698013. Done changes for making cancel button functionality to work in search criteria * Fixed the file upload issue in the matter dashboard page * Added new files for assign user permissions screen Fixed the get matter stamped properties api * Chnages for UI config * Fixed the Get Stampled Properties API * New files for manage users screen has been added. This will be called from the matter landing page when the user clicks on "Manage Users" link from the people picker * 1. Added typehead code for search in matters dashboard page. (#280) 2. Added typehead code for search and author search in documents dashboard page. 3. Done changes for the pagination errors in matters and document dahsboard pages. * Added the Sharing Matters for external users functionality (#281) * Updated UserExists API with JSON return object * Fixed the MatterStampedDetails method * Revert "Updated UserExists API with JSON return object" This reverts commit668a430484
. * Revert "Revert "Updated UserExists API with JSON return object"" This reverts commitef28b56b96
. * Removed the commented code from the controllers related to authorization Updated configure swagger metod in the startup.cs file Updated the web project to generate xml files for the comments and that will be consumed by the web api Updated the xml comments for the document controller. Will update the xml comments for other controller too * When setting property bag for a matter, MatterCenterUserEmails and MatterCenterAttroneyEmail was not set and that was fixed * Changes required to close advance search popup and progress bar on error while getting document and listguid (#282) * Done the UI implementation for the manage users screen from people picker in matterlanding page. (#283) * Cleanup * Added header portion to both document and matter dashboard html pages * Added header and footer to the document dashboard and matter dashboard html pages * updated the position of the advanced filter drop down in matter and document dashboard * If the current user email is part of the organization, no user email validation will be done on the api side Added a new settings in the general settings section called "OrgDomainName" Fixed the external sharing api code. Instead of using Matter Id changed that to Matter Guid * If the current user email is part of the organization, no user email validation will be done on the api side (#284) Added a new settings in the general settings section called "OrgDomainName" Fixed the external sharing api code. Instead of using Matter Id changed that to Matter Guid * Final change for config * Fix, merge issue in Appsettings * Added Mange Users functionality in matterlanding page (#287) * Added changes for the close and hide of the header flyout in the matters and documents dashboard pages. (#286) 1. Added changes for showing and hiding of the profile and help icon in the home page. 2. Removed the header and footer code from the navigation, matterdashboard, document dashboard pages and placed it in the home page. 3. Fixed the ui changes for the search flyout, header menu and showing the loader with the content in the matters and documents dashboard pages * added comments to the code * Modified the authorization logic to sent 401 status response for unauthorized requests (#288) * If the current user email is part of the organization, no user email validation will be done on the api side Added a new settings in the general settings section called "OrgDomainName" Fixed the external sharing api code. Instead of using Matter Id changed that to Matter Guid * added comments to the code * Merge * Fix merge issue * Changes for Clients, PGS, AOLs selections in advancesearch of Documen… (#289) * Changes for Clients, PGS, AOLs selections in advancesearch of Document and Matter dashboard pages. Handling client user input events of Clients, PGS, AOLs selections. * Code changes to work with advance ssearch in DocumentDashboard Page. * Code cleanup and some mino bug fixes * Fixed the responsive issues for the sharepoint search header in home page. (#290) 1. Fixed the UI width issue for the search flyout in the matters and document dashboard pages. 2. Fixed the responsive issues for the footer in home page. 3. Replaced the old html with the bootstrap html for the header and footer in matters and documents dasboard. 4. Added the new directive to perform the click event during the press of the enter button in keyboard * Updated based on code review comments * Changes required to make same behaviour for Author Search on Document dashboard page. (#291) * Fixed the issue for the sharepoint search to be visible in particular sharepoint pages. (#292) 1. Fixed the issue for the pagination to display the total number of element when reahced the final click of the next button. * Added the code to update the matter team roles and permissions in manageusers screen. (#293) * Update API annd and Repository to take a filter condition to get a subset of the Configs. Added a new TC to test this * Code Review changes * Modified code for external sharing * Add existing file * Updated the project.json file * Testing Azure to Github Continuous Deployment * Testing remote deployment * Changed Home Controller to use the uiconfig entries instaed of hardcoding label values * Added validation function for manageusers and added manageColumns attribute in the request parameter in creatematter module. (#297) * 1. Fixed the position issues in the matter users (#296) * Added code for external sharing functionality * Remove Repository Test Project form .gitignore * Updated code to read settings from appsettings.json Added run.cmd file to support Azure Web Jobs * 1. Fixed the issues for the error pop up in the create matter when adding the external user. 2. Implemented the functionality to prevent the multiple api calls for the blur in create matters. 3. Implemented the functionality to check the previous external user was confirmed or not. 4. Added some changes in home page. * 1. Removed the hardcoded values for Id's in stampproperties function in creatematter controller * 1. Fixed the issues for the error pop up in the create matter when ad… (#299) * 1. Fixed the issues for the error pop up in the create matter when adding the external user. 2. Implemented the functionality to prevent the multiple api calls for the blur in create matters. 3. Implemented the functionality to check the previous external user was confirmed or not. 4. Added some changes in home page. * 1. Removed the hardcoded values for Id's in stampproperties function in creatematter controller * Fixed the issue for the input when there are no results during the click of tab key from keyboard. * Changes required to higlight either document else Email folder while upload. (#300) Add an optional extended description… * Fixed the matter status in the job project * Made the method to private * Fixed the tab issue for external user when creating matter * Added changes to update some text with the dynamic content. (#303) 1. Added changes to get the dynamic content in Matters and navigation pages. 2. Replaced html text with dynamic content for matters templates. 3. Added some changes in create matters controller * Added code to update the config.js using NewtonSoft.json package (#304) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Fixed the code in matter creation controller. Renamed "vm" to "cm" * Migration from RC2 to RTM. (#305) * Replaced hard coded values to the dynamic values from config (#306) * Update matters.controller.js * Replaced some text with dynamic content * updated the scope variable to camelcasing * Updated the scope variable to camelcasing * Added changes to scope variable * Added changes to the scope variable * Updated the solution to include all the projects when doing build Update the code to allow the user to press enter key when adding an external user * added instrument key for logging clientside events * Added code to fix the issue for multiple external users when creating the matter (#308) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Added code to fix the external sharing for multiple external users Added stack trace column to the azure logging table * 1. Replaced the hardcoded text with the dynamic content from the config in the document controller and html pages. (#309) 2. Added changes for the dynamic values in the navigation controller and html pages. 3. Fixed the UI scroll issues in the document page. * Mattercenter2 (#307) * Addin InsertAndUpdate for configs. * Insert Update config API * Final changes for Insert/Update * Changes for RC2 to RTM upgrade * Changed to make the Table and Column names for UIConfiguration configurable and added a helper method for getting the Cloud table reference * Updated code to include app insights information into config.js * 1. Added new css styles for the grid menu in site.css. 2. Added changes for the grid menu functionality in matters and documents pages. 3. Added new directive in common directives for the grid menu to work in responsive. 4. Replaced hardcoded values with dynamic values in matters and navigation pages. * Mattercenter2 (#310) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Added code to fix the external sharing for multiple external users Added stack trace column to the azure logging table * Fixed minor issues in external sharing user story * 1. Added new css styles for the grid menu in site.css. (#313) 2. Added changes for the grid menu functionality in matters and documents pages. 3. Added new directive in common directives for the grid menu to work in responsive. 4. Replaced hardcoded values with dynamic values in matters and navigation pages. * removed config.js. fixed instrumentation key issue * added config.js to gitinore * 1. Replaced grid menu css in matters and dashboard pages. 2. Added new css for the grid menu for some icons classes in grid 3. Added fucntionality for the export grid data to the excel in matterdashboard page. 4. Done changes for the some directives related to the grid menu to show and hide the icons. 5. Added plugin references of the exporting excel in index page * Implemented one note changes (#314) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Added code to fix the external sharing for multiple external users Added stack trace column to the azure logging table * Fixed minor issues in external sharing user story * One note title fix. Instead of GUID, now the matter name will become the title for one note * Implemented pull request comments * Implemented custom event logging function. * Changes for configuring static content from Azure Table. (#317) * Removed the duplicate settings from matter settings files. Referred those settings from GeneralSettings which are already present Updated the project.json settings for xunit nuget packages * Configuring static content from Azure table. (#319) * Changes for configuring static content from Azure Table. * Configuring static content from Azure table. * Configurable changes for static content in Matters and Documents pages (#320) * Changes for configuring static content from Azure Table. * Configuring static content from Azure table. * Configurable changes for static content in Matters and Documents pages * 1. Fixed the issues for the column picker in matters and documents. (#322) 2. Fixed some design issues for the menu in matter and documents. 3. Fixed the errors in matters and documents after changing the hardcoded values with uiconfig values. * The documents were not getting displayed in the document details page. To fix that issue this change has been made * Mattercenter2 (#321) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Added code to fix the external sharing for multiple external users Added stack trace column to the azure logging table * Fixed minor issues in external sharing user story * One note title fix. Instead of GUID, now the matter name will become the title for one note * Implemented pull request comments * Added the logic to see whether the login user can create matter or not * Removed ProvisionMatterUrl settings and made changes to the code to replace provision matter url to central repository url * Updated the code to check whether the user can create matter or not from the SendMail list instead of checking from the SharePoint security group * Changed the order of check boxes in the final step of matter creation. Email Notification will come first, then tasks, then calendar and last RSS Feeds * 1. Fixed the design issue for the export button and added the xls image beside the button in matterdashboard page. (#325) 2. Added setting.html,settings.controller,settings.resource pages. 3. Added some functionality for getting the taxonomydata 4. Done some changes for home.html,index.html files * Added related code to save matter configurations to sharepoint list. * Configuring statitc content to Azure Table for Matters and Documents pages (#326) * added apptype to appinsights log.. * Mattercenter2 (#328) * Configuring statitc content to Azure Table for Matters and Documents pages * Configuring Static Content for MatterDashboard and Home pages from Azure Table * Fixed Issues in creatematter page. (#329) * Mattercenter2 (#331) * 1. Fixed the design issue for the export button and added the xls image beside the button in matterdashboard page. 2. Added setting.html,settings.controller,settings.resource pages. 3. Added some functionality for getting the taxonomydata 4. Done some changes for home.html,index.html files * 1. Designed the html for the settings page with bootstrap. 2. Added functionality for getting the various api's to bind the data dynamically in settings page. 3. Replaced some css in filterpanel.css,settings.css,webdashboard.css. 4. Added new css in site.css for settings page 5. Removed the export button in matterdashboard page. 6. Removed the unwanted code from the home.html * Configuring static content for matter dashboard, DocumentDashboard, Create Matter * Configuring static content for matter dashboard, DocumentDashboard, Create Matter (#333) * Configuring static content to Azure table for Flyout and column filters in matters and Documents pages. * Mattercenter2 (#335) * 1. Fixed the design issue for the export button and added the xls image beside the button in matterdashboard page. 2. Added setting.html,settings.controller,settings.resource pages. 3. Added some functionality for getting the taxonomydata 4. Done some changes for home.html,index.html files * 1. Designed the html for the settings page with bootstrap. 2. Added functionality for getting the various api's to bind the data dynamically in settings page. 3. Replaced some css in filterpanel.css,settings.css,webdashboard.css. 4. Added new css in site.css for settings page 5. Removed the export button in matterdashboard page. 6. Removed the unwanted code from the home.html * 1. Removed the menu flyout from navigation, matters , documents and replaced it in home page. 2. Added functionality for saving the configurations in settings page. 3. Replaced some css in site.css. 4. Made some html changes to matters, documents, navigation pages * Added new section called MatterId type * Adding Taxonomy Hierarchy Feature (#336) Adding Taxonomy Hierarchy Feature * Mattercenter2 (#338) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Added code to fix the external sharing for multiple external users Added stack trace column to the azure logging table * Fixed minor issues in external sharing user story * One note title fix. Instead of GUID, now the matter name will become the title for one note * Implemented pull request comments * Added the logic to see whether the login user can create matter or not * Removed ProvisionMatterUrl settings and made changes to the code to replace provision matter url to central repository url * Updated the code to check whether the user can create matter or not from the SendMail list instead of checking from the SharePoint security group * Adding Taxonomy Hierarchy Feature * Made changes to the code for new taxonomy changes and send email aftrer matter gets created * Updated appsettings.json to support generic taxonomy level hierarchy * Fixed some issues related to matter creation for new taxonomy changes * Changes required for Bug 1057851:Alignment issue at search popup. (#339) changes control the width and end the searchresults with ellipsis in case of overflow. * improved appinsights logging * Updated job project to send notifications when matter gets created * Added column pickers for both matter and document. Only these column pickers need to be shown in the matter search, document search, matterdashboard and document dashboard Updated startup.cs to update the config.js file so that angular code can pick up those columns information * Removed references to "SendGrid" Updated the web api for saving matter configurations * Changes to resolve the bug Bug 1057863:Alignment issue at ellipsis menu. (#341) * fixed issue with outlook client. * Modified the SaggerGen attributes to the web api and updated the corresponding code in startup.cs file also * Added new properties to support settings functionality Added new values to search settings to support dynamic column picker for both matter and document search Added swagger code to the user controller * Fixed the code related to settings functionality * Mattercenter2 (#342) * 1. Fixed the design issue for the export button and added the xls image beside the button in matterdashboard page. 2. Added setting.html,settings.controller,settings.resource pages. 3. Added some functionality for getting the taxonomydata 4. Done some changes for home.html,index.html files * 1. Designed the html for the settings page with bootstrap. 2. Added functionality for getting the various api's to bind the data dynamically in settings page. 3. Replaced some css in filterpanel.css,settings.css,webdashboard.css. 4. Added new css in site.css for settings page 5. Removed the export button in matterdashboard page. 6. Removed the unwanted code from the home.html * 1. Removed the menu flyout from navigation, matters , documents and replaced it in home page. 2. Added functionality for saving the configurations in settings page. 3. Replaced some css in site.css. 4. Made some html changes to matters, documents, navigation pages * 1. Added changes for the css and functionality in the settings.html and settings.controller page. 2. Replaced the styles with the classes in the settings. html page. 3. Added some css * Configuring static content to azure table for Settings page. (#344) * Mattercenter2 (#345) * 1. Fixed the design issue for the export button and added the xls image beside the button in matterdashboard page. 2. Added setting.html,settings.controller,settings.resource pages. 3. Added some functionality for getting the taxonomydata 4. Done some changes for home.html,index.html files * 1. Designed the html for the settings page with bootstrap. 2. Added functionality for getting the various api's to bind the data dynamically in settings page. 3. Replaced some css in filterpanel.css,settings.css,webdashboard.css. 4. Added new css in site.css for settings page 5. Removed the export button in matterdashboard page. 6. Removed the unwanted code from the home.html * 1. Removed the menu flyout from navigation, matters , documents and replaced it in home page. 2. Added functionality for saving the configurations in settings page. 3. Replaced some css in site.css. 4. Made some html changes to matters, documents, navigation pages * 1. Added changes for the css and functionality in the settings.html and settings.controller page. 2. Replaced the styles with the classes in the settings. html page. 3. Added some css * 1. Done some css changes for the header in home page. 2. Added some changes for click event in app.js * Made the UI responsive in TaxonomyHierarchy Implementation. (#346) * Fixed the issue for settings page and one method has been commented in the create matter controller page * Implemented deployment for web site. * removed general setings * Done create matter UI changes based on new settings in settings page. (#347) * Made the UI responsive in TaxonomyHierarchy Implementation. * Done create matter UI changes based on new settings in settings page. * Made css changes in creatematter page (#349) * Made the UI responsive in TaxonomyHierarchy Implementation. * Done create matter UI changes based on new settings in settings page. * Done css changes in creatematter page. * Mattercenter2 (#340) * Addin InsertAndUpdate for configs. * Insert Update config API * Final changes for Insert/Update * Changes for RC2 to RTM upgrade * Changed to make the Table and Column names for UIConfiguration configurable and added a helper method for getting the Cloud table reference * Code to access the client vault * KeyVault chnages and added KeyVault to WebJob * Added KeyVaultURI to Configuration and moved KeyVault code rto Helper class * Code to read KeyVault with certificate * Added a common project wirh KeyVault code. * Fixes for dependcies * Dependency fixes and removal of secets and passworks from appsettings * Remive commented code and updated keyvault code to hanndle all config sections * Removed common project due to depency issues and put moved KeyVault coode to individua; projetcs * Remove commented reference * Final Cleanup of values added to the Keyvault and changes to the Job and Test project to accomadate keyvualt changes * Changes to GetExternalAccessRequestsFromSPO to read the KeyVault. * Cleanup * updated .net core sdk version * Mattercenter2 (#351) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Added code to fix the external sharing for multiple external users Added stack trace column to the azure logging table * Fixed minor issues in external sharing user story * One note title fix. Instead of GUID, now the matter name will become the title for one note * Implemented pull request comments * Added the logic to see whether the login user can create matter or not * Removed ProvisionMatterUrl settings and made changes to the code to replace provision matter url to central repository url * Updated the code to check whether the user can create matter or not from the SendMail list instead of checking from the SharePoint security group * Adding Taxonomy Hierarchy Feature * Made changes to the code for new taxonomy changes and send email aftrer matter gets created * Updated appsettings.json to support generic taxonomy level hierarchy * New methods for generating the ui config for SPO * Mattercenter2 (#353) * Added code to update the config.js using NewtonSoft.json package * Updated the startup.cs to include the Search settings in the config.js file * Added code to fix the external sharing for multiple external users Added stack trace column to the azure logging table * Fixed minor issues in external sharing user story * One note title fix. Instead of GUID, now the matter name will become the title for one note * Implemented pull request comments * Added the logic to see whether the login user can create matter or not * Removed ProvisionMatterUrl settings and made changes to the code to replace provision matter url to central repository url * Updated the code to check whether the user can create matter or not from the SendMail list instead of checking from the SharePoint security group * Adding Taxonomy Hierarchy Feature * Made changes to the code for new taxonomy changes and send email aftrer matter gets created * Updated appsettings.json to support generic taxonomy level hierarchy * New methods for generating the ui config for SPO * Modified code to have same code base for both matter center and project center for document and matter search * Updated the matter and document controller for search The columns in the matter and documents will be coming from config.js Updated the documenr and matter provision.cs files to have matter or document colunn names instead of generic names so that code will be more readable * added template and parameters for storage account creation * Adding Search columns in Matter Dashboard and Document Dashboard are configurable and reading from the Config.js (#355) * Made the UI responsive in TaxonomyHierarchy Implementation. * Done create matter UI changes based on new settings in settings page. * Done css changes in creatematter page. * Done Search columns in Matter Dashboard and Document Dashboard are configurable and reading from the Config.js * Integration of Jasmine solution with Microsoft latest build (#354) * Integration of Jasmine with latest Micrsoft build * Integration of Jasmine with latest Micrsoft build * removed unnecessary files * added lib to gitignore and removed two unenecessary projects.. * removed packages from source control * removed references.js file. * fixed keyVault certificate issue * updgraded adal-angular to fix infinite loop issue.. * Chages to Configure CreateMatter Static content and Making Advance search working as per Texonomy level1 and level2 terms changes. (#356) * Added code to send error response to the client when exception occurs on the api Added a new property called "IsDevMode". This property can be used on the client side to display complete error information to the user if that value is true. If that value is false, we will show "simple" message to the end user * Mattercenter2 (#359) * Chages to Configure CreateMatter Static content and Making Advance search working as per Texonomy level1 and level2 terms changes. * This commit is required to get data in create matter pages and for other fixes. * updated sharepoing deployment fixed keyvault issue in webjob and test project * updated sharepoint deployment scripts html * Added the validaton for externaluser and taxonomy hierarchy responsive UI in create matter page (#361) * Made the UI responsive in TaxonomyHierarchy Implementation. * Done create matter UI changes based on new settings in settings page. * Done css changes in creatematter page. * Done Search columns in Matter Dashboard and Document Dashboard are configurable and reading from the Config.js * Added the validaton for externaluser and taxonomy hierarchy responsive UI in create matter page * Fixed Taxonomy UI responsive issue when user minmizes the screen. * Added the ExternalUser validations in matterusers page. * Fixed functionality issue in matterusers page * Incorporated following code review comments 1. In MatterLanding.js file, there is repeated code present on line 518 and 1584. 2. In documentdetails.html file, as we have moved all the static variable in uiconfigforspo.js, we can also move View more field present on line 170. 3. In deploy.ps1 file, as we have removed 2 steps, we need to handle revert scenario for remaining steps. * Changes required to get sorting of columns as per expected in all browsers. (#362) * updated deployment document * Mattercenter2 script to import config files to storage table (#363) * Changes required to get sorting of columns as per expected in all browsers. * script to import config files to storage table * updated deployment document integrated azuretablestorage, keyvaultsecret deployment scripts * updated readme, priorities and wikiimages.
This commit is contained in:
Родитель
1e6dfbacee
Коммит
98d39b318e
|
@ -7,3 +7,44 @@ tree/master/cloud/src/solution/*/bin
|
|||
tree/master/cloud/src/solution/*/obj
|
||||
tree/master/cloud/src/solution/*/pkg/
|
||||
tree/master/cloud/src/solution/*/pkgobj/
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/node_modules
|
||||
/tree/master/cloud/src/Helper Utilities/Microsoft.Legal.MatterCenter.HelperUtilities
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/Properties/PublishProfiles
|
||||
/tree/master/cloud/src/solution/UpgradeLog2.htm
|
||||
/tree/master/cloud/src/solution/packages
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/artifacts/bin/Microsoft.Legal.MatterCenter.Models/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Models
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/artifacts/bin/Microsoft.Legal.MatterCenter.Repository/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/obj/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/artifacts/bin/Microsoft.Legal.MatterCenter.Utility/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/obj/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Models/bin/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Models/obj/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/bin/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/obj/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/bin/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/obj/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.ProviderService/.vs/config
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Models
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/bin/Release/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/obj/Release/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/bin/Release/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/obj/Release/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/css
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.ServiceTest/bin/Debug/net451
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.ServiceTest/obj/Debug/net451
|
||||
/tree/master/cloud/src/solution/TestResults
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/npm-debug.log
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/bin/Debug/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.ServiceTest/bin/Debug/net46/win7-x64
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.ServiceTest/bin/Debug/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/bin/Debug/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/obj/Debug/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.ServiceTest/obj/Debug/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/obj/Debug/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/bin/Release/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Repository/obj/Release/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/bin/Release/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Service/Microsoft.Legal.MatterCenter.Utility/obj/Release/net46
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/config.js
|
||||
/tree/master/cloud/src/solution/UpgradeLog4.htm
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/lib
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/lib
|
||||
/tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/js/site.min.js
|
||||
|
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -20,6 +20,7 @@
|
|||
<add key="MatterLandingJSFileName" value="/sites/catalog/SiteAssets/{0}/scripts/MatterLanding.js" />
|
||||
<add key="CommonCSSFileName" value="/sites/catalog/SiteAssets/{0}/styles/spCommon.css" />
|
||||
<add key="CommonJSFileName" value="/sites/catalog/SiteAssets/{0}/scripts/spCommon.js" />
|
||||
<add key="UIConfigforspo" value="/sites/catalog/SiteAssets/{0}/scripts/uiconfigforspo.js" />
|
||||
<add key="SiteAssets" value="SiteAssets" />
|
||||
<add key="UserPinnedMatterListName" value="UserPinnedMatter" />
|
||||
<add key="JQueryFileName" value="/sites/catalog/SiteAssets/{0}/scripts/jquery-1.11.1.min.js" />
|
||||
|
|
|
@ -1,157 +0,0 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.24720.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.Common", "Microsoft.Legal.MatterCenter.Common\Microsoft.Legal.MatterCenter.Common.csproj", "{2E35130D-BE31-4368-AC4D-1E3216ADF13F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.ConfigureLists", "Microsoft.Legal.MatterCenter.ConfigureLists\Microsoft.Legal.MatterCenter.ConfigureLists.csproj", "{5F89E8C3-C780-40A3-8A33-E0990107E61B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.CreateContentTypes", "Microsoft.Legal.MatterCenter.CreateContentTypes\Microsoft.Legal.MatterCenter.CreateContentTypes.csproj", "{A14E9EC0-BFEF-4183-A4E6-3666C5018F05}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.CreateGroups", "Microsoft.Legal.MatterCenter.CreateGroups\Microsoft.Legal.MatterCenter.CreateGroups.csproj", "{E7766CAC-CC79-4823-8BB4-01FEB3E5313E}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.CreateSampleData", "Microsoft.Legal.MatterCenter.CreateSampleData\Microsoft.Legal.MatterCenter.CreateSampleData.csproj", "{D421CE3D-8156-466D-8A68-2E5AB0BB81ED}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.CreateSiteCollection", "Microsoft.Legal.MatterCenter.CreateSiteCollection\Microsoft.Legal.MatterCenter.CreateSiteCollection.csproj", "{369E3583-8614-49CE-AF69-C055BA1DCD3A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.CreateTerm", "Microsoft.Legal.MatterCenter.CreateTerm\Microsoft.Legal.MatterCenter.CreateTerm.csproj", "{047ACCD4-35C6-4E6E-9AD1-B7C7EE87E122}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.CreateSiteColumns", "Microsoft.Legal.MatterCenter.CreateSiteColumns\Microsoft.Legal.MatterCenter.CreateSiteColumns.csproj", "{741CE89E-37CD-4245-AC52-B1D0E16FF53E}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.ProvisionWebDashboard", "Microsoft.Legal.MatterCenter.ProvisionWebDashboard\Microsoft.Legal.MatterCenter.ProvisionWebDashboard.csproj", "{BFA9FB3A-D256-4ECA-BC07-1009F19DEAD6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.UpdateAppConfig", "Microsoft.Legal.MatterCenter.UpdateAppConfig\Microsoft.Legal.MatterCenter.UpdateAppConfig.csproj", "{862522F4-9838-41C2-827D-CFAB8676C74A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.UpdateListPermissions", "Microsoft.Legal.MatterCenter.UpdateListPermissions\Microsoft.Legal.MatterCenter.UpdateListPermissions.csproj", "{35E35662-0A3D-48C8-B5A9-DAFEE5021179}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.UpdateLists", "Microsoft.Legal.MatterCenter.UpdateLists\Microsoft.Legal.MatterCenter.UpdateLists.csproj", "{0A9458F7-FFDF-4A50-ABAC-85267ECD0D37}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.UpdateTaxonomyFields", "Microsoft.Legal.MatterCenter.UpdateTaxonomyFields\Microsoft.Legal.MatterCenter.UpdateTaxonomyFields.csproj", "{BF3DD4EC-137C-4494-BED9-F19F592237C8}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.UpdateView", "Microsoft.Legal.MatterCenter.UpdateView\Microsoft.Legal.MatterCenter.UpdateView.csproj", "{4A74259B-DC46-4D9B-842B-ECC337717E19}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Legal.MatterCenter.UploadFile", "Microsoft.Legal.MatterCenter.UploadFile\Microsoft.Legal.MatterCenter.UploadFile.csproj", "{50CEB765-B476-45CE-9447-50526EEABBDA}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2E35130D-BE31-4368-AC4D-1E3216ADF13F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2E35130D-BE31-4368-AC4D-1E3216ADF13F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2E35130D-BE31-4368-AC4D-1E3216ADF13F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2E35130D-BE31-4368-AC4D-1E3216ADF13F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5F89E8C3-C780-40A3-8A33-E0990107E61B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5F89E8C3-C780-40A3-8A33-E0990107E61B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5F89E8C3-C780-40A3-8A33-E0990107E61B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5F89E8C3-C780-40A3-8A33-E0990107E61B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A14E9EC0-BFEF-4183-A4E6-3666C5018F05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A14E9EC0-BFEF-4183-A4E6-3666C5018F05}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A14E9EC0-BFEF-4183-A4E6-3666C5018F05}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A14E9EC0-BFEF-4183-A4E6-3666C5018F05}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E7766CAC-CC79-4823-8BB4-01FEB3E5313E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E7766CAC-CC79-4823-8BB4-01FEB3E5313E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E7766CAC-CC79-4823-8BB4-01FEB3E5313E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E7766CAC-CC79-4823-8BB4-01FEB3E5313E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D421CE3D-8156-466D-8A68-2E5AB0BB81ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D421CE3D-8156-466D-8A68-2E5AB0BB81ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D421CE3D-8156-466D-8A68-2E5AB0BB81ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D421CE3D-8156-466D-8A68-2E5AB0BB81ED}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{369E3583-8614-49CE-AF69-C055BA1DCD3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{369E3583-8614-49CE-AF69-C055BA1DCD3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{369E3583-8614-49CE-AF69-C055BA1DCD3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{369E3583-8614-49CE-AF69-C055BA1DCD3A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{047ACCD4-35C6-4E6E-9AD1-B7C7EE87E122}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{047ACCD4-35C6-4E6E-9AD1-B7C7EE87E122}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{047ACCD4-35C6-4E6E-9AD1-B7C7EE87E122}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{047ACCD4-35C6-4E6E-9AD1-B7C7EE87E122}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{741CE89E-37CD-4245-AC52-B1D0E16FF53E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{741CE89E-37CD-4245-AC52-B1D0E16FF53E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{741CE89E-37CD-4245-AC52-B1D0E16FF53E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{741CE89E-37CD-4245-AC52-B1D0E16FF53E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BFA9FB3A-D256-4ECA-BC07-1009F19DEAD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BFA9FB3A-D256-4ECA-BC07-1009F19DEAD6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BFA9FB3A-D256-4ECA-BC07-1009F19DEAD6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BFA9FB3A-D256-4ECA-BC07-1009F19DEAD6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{862522F4-9838-41C2-827D-CFAB8676C74A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{862522F4-9838-41C2-827D-CFAB8676C74A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{862522F4-9838-41C2-827D-CFAB8676C74A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{862522F4-9838-41C2-827D-CFAB8676C74A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{35E35662-0A3D-48C8-B5A9-DAFEE5021179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{35E35662-0A3D-48C8-B5A9-DAFEE5021179}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{35E35662-0A3D-48C8-B5A9-DAFEE5021179}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{35E35662-0A3D-48C8-B5A9-DAFEE5021179}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0A9458F7-FFDF-4A50-ABAC-85267ECD0D37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0A9458F7-FFDF-4A50-ABAC-85267ECD0D37}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0A9458F7-FFDF-4A50-ABAC-85267ECD0D37}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0A9458F7-FFDF-4A50-ABAC-85267ECD0D37}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BF3DD4EC-137C-4494-BED9-F19F592237C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BF3DD4EC-137C-4494-BED9-F19F592237C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BF3DD4EC-137C-4494-BED9-F19F592237C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BF3DD4EC-137C-4494-BED9-F19F592237C8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4A74259B-DC46-4D9B-842B-ECC337717E19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4A74259B-DC46-4D9B-842B-ECC337717E19}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4A74259B-DC46-4D9B-842B-ECC337717E19}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4A74259B-DC46-4D9B-842B-ECC337717E19}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{50CEB765-B476-45CE-9447-50526EEABBDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{50CEB765-B476-45CE-9447-50526EEABBDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{50CEB765-B476-45CE-9447-50526EEABBDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{50CEB765-B476-45CE-9447-50526EEABBDA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(TeamFoundationVersionControl) = preSolution
|
||||
SccNumberOfProjects = 16
|
||||
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
|
||||
SccTeamFoundationServer = https://mattercenter.visualstudio.com/defaultcollection
|
||||
SccLocalPath0 = .
|
||||
SccProjectUniqueName1 = Microsoft.Legal.MatterCenter.Common\\Microsoft.Legal.MatterCenter.Common.csproj
|
||||
SccProjectName1 = Microsoft.Legal.MatterCenter.Common
|
||||
SccLocalPath1 = Microsoft.Legal.MatterCenter.Common
|
||||
SccProjectUniqueName2 = Microsoft.Legal.MatterCenter.ConfigureLists\\Microsoft.Legal.MatterCenter.ConfigureLists.csproj
|
||||
SccProjectName2 = Microsoft.Legal.MatterCenter.ConfigureLists
|
||||
SccLocalPath2 = Microsoft.Legal.MatterCenter.ConfigureLists
|
||||
SccProjectUniqueName3 = Microsoft.Legal.MatterCenter.CreateContentTypes\\Microsoft.Legal.MatterCenter.CreateContentTypes.csproj
|
||||
SccProjectName3 = Microsoft.Legal.MatterCenter.CreateContentTypes
|
||||
SccLocalPath3 = Microsoft.Legal.MatterCenter.CreateContentTypes
|
||||
SccProjectUniqueName4 = Microsoft.Legal.MatterCenter.CreateGroups\\Microsoft.Legal.MatterCenter.CreateGroups.csproj
|
||||
SccProjectName4 = Microsoft.Legal.MatterCenter.CreateGroups
|
||||
SccLocalPath4 = Microsoft.Legal.MatterCenter.CreateGroups
|
||||
SccProjectUniqueName5 = Microsoft.Legal.MatterCenter.CreateSampleData\\Microsoft.Legal.MatterCenter.CreateSampleData.csproj
|
||||
SccProjectName5 = Microsoft.Legal.MatterCenter.CreateSampleData
|
||||
SccLocalPath5 = Microsoft.Legal.MatterCenter.CreateSampleData
|
||||
SccProjectUniqueName6 = Microsoft.Legal.MatterCenter.CreateSiteCollection\\Microsoft.Legal.MatterCenter.CreateSiteCollection.csproj
|
||||
SccProjectName6 = Microsoft.Legal.MatterCenter.CreateSiteCollection
|
||||
SccLocalPath6 = Microsoft.Legal.MatterCenter.CreateSiteCollection
|
||||
SccProjectUniqueName7 = Microsoft.Legal.MatterCenter.CreateTerm\\Microsoft.Legal.MatterCenter.CreateTerm.csproj
|
||||
SccProjectName7 = Microsoft.Legal.MatterCenter.CreateTerm
|
||||
SccLocalPath7 = Microsoft.Legal.MatterCenter.CreateTerm
|
||||
SccProjectUniqueName8 = Microsoft.Legal.MatterCenter.CreateSiteColumns\\Microsoft.Legal.MatterCenter.CreateSiteColumns.csproj
|
||||
SccProjectName8 = Microsoft.Legal.MatterCenter.CreateSiteColumns
|
||||
SccLocalPath8 = Microsoft.Legal.MatterCenter.CreateSiteColumns
|
||||
SccProjectUniqueName9 = Microsoft.Legal.MatterCenter.ProvisionWebDashboard\\Microsoft.Legal.MatterCenter.ProvisionWebDashboard.csproj
|
||||
SccProjectName9 = Microsoft.Legal.MatterCenter.ProvisionWebDashboard
|
||||
SccLocalPath9 = Microsoft.Legal.MatterCenter.ProvisionWebDashboard
|
||||
SccProjectUniqueName10 = Microsoft.Legal.MatterCenter.UpdateAppConfig\\Microsoft.Legal.MatterCenter.UpdateAppConfig.csproj
|
||||
SccProjectName10 = Microsoft.Legal.MatterCenter.UpdateAppConfig
|
||||
SccLocalPath10 = Microsoft.Legal.MatterCenter.UpdateAppConfig
|
||||
SccProjectUniqueName11 = Microsoft.Legal.MatterCenter.UpdateListPermissions\\Microsoft.Legal.MatterCenter.UpdateListPermissions.csproj
|
||||
SccProjectName11 = Microsoft.Legal.MatterCenter.UpdateListPermissions
|
||||
SccLocalPath11 = Microsoft.Legal.MatterCenter.UpdateListPermissions
|
||||
SccProjectUniqueName12 = Microsoft.Legal.MatterCenter.UpdateLists\\Microsoft.Legal.MatterCenter.UpdateLists.csproj
|
||||
SccProjectName12 = Microsoft.Legal.MatterCenter.UpdateLists
|
||||
SccLocalPath12 = Microsoft.Legal.MatterCenter.UpdateLists
|
||||
SccProjectUniqueName13 = Microsoft.Legal.MatterCenter.UpdateTaxonomyFields\\Microsoft.Legal.MatterCenter.UpdateTaxonomyFields.csproj
|
||||
SccProjectName13 = Microsoft.Legal.MatterCenter.UpdateTaxonomyFields
|
||||
SccLocalPath13 = Microsoft.Legal.MatterCenter.UpdateTaxonomyFields
|
||||
SccProjectUniqueName14 = Microsoft.Legal.MatterCenter.UpdateView\\Microsoft.Legal.MatterCenter.UpdateView.csproj
|
||||
SccProjectName14 = Microsoft.Legal.MatterCenter.UpdateView
|
||||
SccLocalPath14 = Microsoft.Legal.MatterCenter.UpdateView
|
||||
SccProjectUniqueName15 = Microsoft.Legal.MatterCenter.UploadFile\\Microsoft.Legal.MatterCenter.UploadFile.csproj
|
||||
SccProjectName15 = Microsoft.Legal.MatterCenter.UploadFile
|
||||
SccLocalPath15 = Microsoft.Legal.MatterCenter.UploadFile
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -249,7 +249,7 @@ namespace Microsoft.Legal.MatterCenter.ProvisionWebDashboard
|
|||
|
||||
string pageUrlConstant = urlConstantName;
|
||||
string sourceFileTemplatePath = string.Concat(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName, Constants.Backslash, ConfigurationManager.AppSettings["staticContentFolder"], Constants.Backslash, ConfigurationManager.AppSettings["htmlFolder"], Constants.Backslash, sourceFileTemplate);
|
||||
string pageUrl = string.Concat(configVal["UISiteURL"], pageUrlName);
|
||||
string pageUrl = configVal["UISiteURL"];
|
||||
// Read the content of helper file
|
||||
pageContent = System.IO.File.ReadAllText(sourceFileTemplatePath);
|
||||
// Set the Catalog site collection URL in the content of webdashboard helper page
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
<add key="MatterLandingPageCSSFileNameValue" value="/{1}/SiteAssets/{0}/styles/MatterLanding.css" />
|
||||
<add key="CommonCSSLocation" value="/{1}/SiteAssets/{0}/Styles/spCommon.css" />
|
||||
<add key="CommonJSLocation" value="/{1}/SiteAssets/{0}/Scripts/spCommon.js" />
|
||||
<add key="UIConfigforspo" value="/{1}/SiteAssets/{0}/scripts/uiconfigforspo.js" />
|
||||
<add key="OneNoteImageUrlValue" value="/{1}/SiteAssets/{0}/WindowsLoadingFast.GIF" />
|
||||
<add key="PinImageUrlValue" value="/{1}/SiteAssets/{0}/pin-666.png" />
|
||||
<add key="ShareImageUrlValue" value="/{1}/SiteAssets/{0}/share_28x28_666.png" />
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<add key="Images" value="Images"/>
|
||||
<add key="Scripts" value="Scripts"/>
|
||||
<add key="Styles" value="Styles"/>
|
||||
<add key="ConfigurableFiles" value="MatterLandingPage.js,MatterLanding.js,spCommon.js,documentDetails.js"/>
|
||||
<add key="ConfigurableFiles" value="MatterLandingPage.js,MatterLanding.js,spCommon.js,documentDetails.js,uiconfigforspo.js"/>
|
||||
<add key="AppInsightsID" value="[[[App Insights ID]]]"/>
|
||||
<add key="ManagePermissionUrl" value="[[[Manage Permission Url]]]"/>
|
||||
<add key="TenantWebDashboardUrl" value="[[[Tenant Web Dashboard Url]]]"/>
|
||||
|
|
|
@ -8,17 +8,15 @@
|
|||
# Step 4: Update Office, Outlook and SharePoint App schema files
|
||||
# Step 5: Update search configuration file and upload to SharePoint
|
||||
# Step 6: Update resource and config files in build
|
||||
# Step 7: Activate SharePoint Server Publishing infrastructure feature on catalog site collection
|
||||
# Step 8: Update App files for SharePoint and OneDrive Ribbon Apps
|
||||
# Step 9: Encrypting the config files
|
||||
# Step 10: Publishing files to Azure
|
||||
# Step 11: Add and install apps to SharePoint and Office
|
||||
# Step 12: Add apps to Exchange
|
||||
# Step 13: Upload files to SharePoint Library
|
||||
# Step 14: Creating Site Collection(s)
|
||||
# Step 15: Provisioning Web dashboard
|
||||
# Step 16: Update site collection view with field(s)
|
||||
# Step 17: Creating source in event viewer
|
||||
# Step 7: Activate SharePoint Server Publishing infrastructure feature on catalog site collection
|
||||
# Step 8: Encrypting the config files
|
||||
# Step 9: Add and install apps to SharePoint and Office
|
||||
# Step 10: Add apps to Exchange
|
||||
# Step 11: Upload files to SharePoint Library
|
||||
# Step 12: Creating Site Collection(s)
|
||||
# Step 13: Provisioning Web dashboard
|
||||
# Step 14: Update site collection view with field(s)
|
||||
# Step 15: Creating source in event viewer
|
||||
#
|
||||
# Any changes in these steps, kindly update this list. Also update the checkpoint in Revert script
|
||||
#----------------------------------------------
|
||||
|
@ -397,57 +395,36 @@ if($IsValid -eq $true)
|
|||
#----------------------------------------------
|
||||
# Update App files for SharePoint and OneDrive Ribbon Apps
|
||||
#----------------------------------------------
|
||||
Show-Message -Message "Step 8: Update App files for SharePoint and OneDrive Ribbon Apps"
|
||||
. "$ScriptDirectory\UpdateAppPackage.ps1" -IsDeployedOnAzure $IsDeployedOnAzure -Credentials $SPCredential
|
||||
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Updating App files for SharePoint and OneDrive Ribbon Apps failed" -Type ([MessageType]::Failure)
|
||||
RevertAll $ScriptDirectory 3 #Revert from step 3 to 1
|
||||
return
|
||||
}
|
||||
else {
|
||||
Show-Message -Message "Completed updating App files for SharePoint and OneDrive Ribbon Apps" -Type ([MessageType]::Success)
|
||||
}
|
||||
# Show-Message -Message "Step 8: Update App files for SharePoint and OneDrive Ribbon Apps"
|
||||
# . "$ScriptDirectory\UpdateAppPackage.ps1" -IsDeployedOnAzure $IsDeployedOnAzure -Credentials $SPCredential
|
||||
#
|
||||
# If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
# Show-Message -Message "Updating App files for SharePoint and OneDrive Ribbon Apps failed" -Type ([MessageType]::Failure)
|
||||
# RevertAll $ScriptDirectory 3 #Revert from step 3 to 1
|
||||
# return
|
||||
# }
|
||||
# else {
|
||||
# Show-Message -Message "Completed updating App files for SharePoint and OneDrive Ribbon Apps" -Type ([MessageType]::Success)
|
||||
# }
|
||||
|
||||
#----------------------------------------------
|
||||
# Encrypt the appSettings section in web.config
|
||||
#----------------------------------------------
|
||||
Show-Message -Message "Step 9: Encrypting the config files"
|
||||
Show-Message -Message "Step 8: Encrypting the config files"
|
||||
. "$ScriptDirectory\EncryptDecrypt.ps1" -ToEncrypt: $true -ErrorLogPath: $ErrorLogFile
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Encryption failed..." -Type ([MessageType]::Failure)
|
||||
RevertAll $ScriptDirectory 9
|
||||
RevertAll $ScriptDirectory 8
|
||||
return
|
||||
}
|
||||
else {
|
||||
Show-Message -Message "Config files encrypted successfully..." -Type ([MessageType]::Success)
|
||||
}
|
||||
|
||||
#----------------------------------------------
|
||||
# Publish websites
|
||||
#----------------------------------------------
|
||||
Show-Message -Message "Step 10: Publishing files to Azure/IIS"
|
||||
$IsOnAzure = (Read-FromExcel $ExcelFilePath "Config" ("IsDeployedOnAzure") $ErrorLogFile)
|
||||
if($IsOnAzure[0])
|
||||
{
|
||||
. "$ScriptDirectory\PublishOnAzure.ps1"
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Publishing files to Azure or creating Azure Redis cache failed" -Type ([MessageType]::Failure)
|
||||
RevertAll $ScriptDirectory 9
|
||||
return
|
||||
}
|
||||
}
|
||||
else {
|
||||
. "$ScriptDirectory\PublishInIIS.ps1"
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Publishing files to IIS failed" -Type ([MessageType]::Failure)
|
||||
}
|
||||
}
|
||||
|
||||
#----------------------------------------------
|
||||
# Add Apps to SharePoint and Office
|
||||
#----------------------------------------------
|
||||
Show-Message -Message "Step 11: Add and install apps to SharePoint and Office"
|
||||
Show-Message -Message "Step 9: Add and install apps to SharePoint and Office"
|
||||
. "$ScriptDirectory\AppInstall.ps1" -IsDeploy: $false
|
||||
. "$ScriptDirectory\DeployOfficeApp.ps1" -IsDeploy: $true -IsOfficeApp: $false
|
||||
. "$ScriptDirectory\DeployOfficeApp.ps1" -IsDeploy: $true -IsOfficeApp: $true
|
||||
|
@ -455,7 +432,7 @@ if($IsValid -eq $true)
|
|||
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Adding and installing apps to SharePoint and Office failed" -Type ([MessageType]::Failure)
|
||||
RevertAll $ScriptDirectory 11
|
||||
RevertAll $ScriptDirectory 9
|
||||
return
|
||||
}
|
||||
else {
|
||||
|
@ -466,12 +443,12 @@ if($IsValid -eq $true)
|
|||
#----------------------------------------------
|
||||
# Add Apps to Exchange
|
||||
#----------------------------------------------
|
||||
Show-Message -Message "Step 12: Add apps to Exchange"
|
||||
Show-Message -Message "Step 10: Add apps to Exchange"
|
||||
. "$ScriptDirectory\DeployOutlookApp.ps1" -IsDeploy: $true
|
||||
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Adding apps to Exchange failed" -Type ([MessageType]::Failure)
|
||||
RevertAll $ScriptDirectory 12
|
||||
RevertAll $ScriptDirectory 10
|
||||
return
|
||||
}
|
||||
else {
|
||||
|
@ -481,13 +458,13 @@ if($IsValid -eq $true)
|
|||
#---------------------------------------------------------------------
|
||||
# Upload files required for Matter landing page to SharePoint library
|
||||
#---------------------------------------------------------------------
|
||||
Show-Message -Message "Step 13: Upload files to SharePoint Library"
|
||||
Show-Message -Message "Step 11: Upload files to SharePoint Library"
|
||||
[Environment]::CurrentDirectory = Get-Location
|
||||
& "$HelperPath\Microsoft.Legal.MatterCenter.UploadFile.exe" "true" $Username $Password
|
||||
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Uploading files to SharePoint Library failed" -Type ([MessageType]::Failure)
|
||||
RevertAll $ScriptDirectory 13
|
||||
RevertAll $ScriptDirectory 11
|
||||
return
|
||||
}
|
||||
else {
|
||||
|
@ -508,7 +485,7 @@ if($IsValid -eq $true)
|
|||
}
|
||||
}
|
||||
|
||||
Show-Message -Message "Step 14: Creating Site Collection(s)"
|
||||
Show-Message -Message "Step 12: Creating Site Collection(s)"
|
||||
. "$ScriptDirectory\CreateSiteCollection.ps1" -IsDeployedOnAzure: $IsDeployedOnAzure -Username: $Username -Password $Password
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
Show-Message -Message "Creating site collection failed" -Type ([MessageType]::Failure)
|
||||
|
@ -520,7 +497,7 @@ if($IsValid -eq $true)
|
|||
#---------------------------------------------------------------------
|
||||
# Provisioning Web Dashboard page(s) on SharePoint library
|
||||
#---------------------------------------------------------------------
|
||||
Show-Message -Message "Step 15: Provisioning Web dashboard"
|
||||
Show-Message -Message "Step 13: Provisioning Web dashboard"
|
||||
& "$HelperPath\Microsoft.Legal.MatterCenter.ProvisionWebDashboard.exe" "true" $Username $Password
|
||||
|
||||
If ((Get-Content $ErrorLogFile) -ne $Null) {
|
||||
|
@ -533,13 +510,13 @@ if($IsValid -eq $true)
|
|||
#---------------------------------------------------------------------
|
||||
# Update site pages view with fields
|
||||
#---------------------------------------------------------------------
|
||||
Show-Message -Message "Step 16: Update site collection view with fields"
|
||||
Show-Message -Message "Step 14: Update site collection view with fields"
|
||||
& "$HelperPath\Microsoft.Legal.MatterCenter.UpdateView.exe" $Username $Password
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Creating source in event viewer
|
||||
#---------------------------------------------------------------------
|
||||
Show-Message -Message "Step 17: Creating source in event viewer"
|
||||
Show-Message -Message "Step 15: Creating source in event viewer"
|
||||
if(-not $IsDeployedOnAzure)
|
||||
{
|
||||
$logFileExists = Get-EventLog -list | Where-Object {$_.logdisplayname -eq $Log}
|
||||
|
|
|
@ -1,96 +0,0 @@
|
|||
# This script is used to publish UI and Service to IIS
|
||||
|
||||
# Get the current directory of the script
|
||||
Function ScriptRoot {Split-Path $MyInvocation.ScriptName}
|
||||
$ScriptDirectory = (ScriptRoot)
|
||||
|
||||
# Get the parent directory of the script
|
||||
Function Get-ParentDirectory {Split-Path -Parent(Split-Path $MyInvocation.ScriptName)}
|
||||
$ParentDirectory = (Get-ParentDirectory)
|
||||
|
||||
# Function is used to publish files to IIS
|
||||
Function Publish-Files()
|
||||
{
|
||||
param(
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $SourcePath
|
||||
|
||||
,[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $DestinationPath
|
||||
)
|
||||
|
||||
Show-Message -Message "Copying all files from $SourcePath to $DestinationPath"
|
||||
|
||||
# Copy files after checking whether source and destination folders exist
|
||||
if((Check-Existance -Path $SourcePath) -and (Check-Existance -Path $DestinationPath))
|
||||
{
|
||||
Get-Childitem "$SourcePath" | % {
|
||||
copy-item $_.FullName -Destination "$DestinationPath\$_" -Recurse -Force
|
||||
}
|
||||
|
||||
return $true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log ($ErrorLogFile) "Either the Source Path or the Destination Path is invalid"
|
||||
return $false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# Function is used to check whether provided path exists or not
|
||||
Function Check-Existance()
|
||||
{
|
||||
param(
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $Path
|
||||
)
|
||||
|
||||
return Test-Path $path
|
||||
}
|
||||
|
||||
#Set Excel file path, uncomment below line if you want to use this script separately
|
||||
#$ExcelFilePath = "$ParentDirectory\MCDeploymentConfig.xlsx"
|
||||
|
||||
# Set log file path, uncomment below line if you want to use this script separately
|
||||
#$ErrorLogFile = "$ScriptDirectory\Logs\ErrorLog.txt"
|
||||
|
||||
Show-Message -Message "Reading parameters from Excel file..."
|
||||
$ExcelValues = (Read-FromExcel $ExcelFilePath "Config" ("UIPublishLocation", "ServicePublishLocation", "IsDeployedOnAzure") ($ErrorLogFile))
|
||||
$ExcelValues = $ExcelValues.Split(";")
|
||||
if($ExcelValues.length -le 0)
|
||||
{
|
||||
Write-Log $ErrorLogFile "Error reading values from Excel file. Aborting!"
|
||||
return $false
|
||||
}
|
||||
$UIPublishLocation = $ExcelValues[0]
|
||||
$ServicePublishLocation = $ExcelValues[1]
|
||||
$IsValid = $false
|
||||
|
||||
# If IsDeployedOnAzure parameter is false then proceed with publish activity else do nothing
|
||||
|
||||
if ("false" -eq $ExcelValues[2].ToLowerInvariant())
|
||||
{
|
||||
Show-Message -Message "Publishing files to IIS"
|
||||
$IsValid = Publish-Files -SourcePath ($ParentDirectory + "\Service Publish") -DestinationPath $ServicePublishLocation
|
||||
if(!($IsValid))
|
||||
{
|
||||
Write-Log ($ErrorLogFile) "Publish to $ServicePublishLocation failed"
|
||||
return
|
||||
}
|
||||
$IsValid = Publish-Files -SourcePath ($ParentDirectory + "\Web Publish") -DestinationPath $UIPublishLocation
|
||||
if(!($IsValid))
|
||||
{
|
||||
Write-Log ($ErrorLogFile) "Publish to $UIPublishLocation failed"
|
||||
return
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Show-Message -Message "Skipping publish step as the script is ran for Azure" -Type ([MessageType]::Warning)
|
||||
}
|
||||
|
||||
|
|
@ -1,211 +0,0 @@
|
|||
# Get the current directory of the script
|
||||
Function ScriptRoot {Split-Path $MyInvocation.ScriptName}
|
||||
$ScriptDirectory = (ScriptRoot)
|
||||
|
||||
# Get the parent directory of the script
|
||||
Function Get-ParentDirectory {Split-Path -Parent(Split-Path $MyInvocation.ScriptName)}
|
||||
$ParentDirectory = (Get-ParentDirectory)
|
||||
|
||||
#Set Excel file path, uncomment below line if you want to use this script separately
|
||||
$ExcelFilePath = "$ParentDirectory\MCDeploymentConfig.xlsx"
|
||||
|
||||
# Set log file path, uncomment below line if you want to use this script separately
|
||||
$ErrorLogFile = "$ScriptDirectory\Logs\ErrorLog.txt"
|
||||
|
||||
# Set revert log file path
|
||||
$RevertLogFile = "$ScriptDirectory\Logs\RevertLog.txt"
|
||||
|
||||
# Set helper utilities folder path
|
||||
$HelperPath = "$ScriptDirectory\Helper Utilities"
|
||||
|
||||
$Path = (get-item $ScriptDirectory ).parent
|
||||
$ServicePackagePath = "$ParentDirectory\Service Publish"
|
||||
$WebsitePackagePath = "$ParentDirectory\Web Publish"
|
||||
$ExcelValues = (Read-FromExcel $ExcelFilePath "Config" ("AzureWebsiteName", "AzureWebServiceName", "TenantURL")($ErrorLogFile))
|
||||
$ExcelValues = $ExcelValues.Split(";")
|
||||
# Create GUID to be used for Encryption Key
|
||||
$Guid = [guid]::NewGuid().ToString().ToUpperInvariant()
|
||||
|
||||
|
||||
# Variable for Azure properties
|
||||
$AzureProperties = $null
|
||||
|
||||
#Variable for Azure cache properties
|
||||
$MatterCenterCache = $null
|
||||
|
||||
# Global variables with default values
|
||||
[string]$CacheName = "MatterCenterCache"
|
||||
[string]$CacheLocation = "West US"
|
||||
[string]$ResourceGroupName = "Default-Web-WestUS"
|
||||
|
||||
# Publish site on Azure and update the configurations
|
||||
Function Publish-SiteOnAzure
|
||||
{
|
||||
Show-Message -Message "Publishing web service on Azure"
|
||||
Publish-AzureWebsiteProject -Name $ExcelValues[1] -Package $ServicePackagePath
|
||||
Show-Message -Message "Publishing web site on Azure"
|
||||
Publish-AzureWebsiteProject -Name $ExcelValues[0] -Package $WebsitePackagePath
|
||||
|
||||
Show-Message -Message "Updating App settings for website"
|
||||
$Website = Get-AzureWebsite -Name $ExcelValues[0]
|
||||
$Website.AppSettings["Old_Encryption_Key"]= $Guid
|
||||
$Website.AppSettings["Encryption_Key"]= $Guid
|
||||
Set-AzureWebsite -Name $ExcelValues[0] -AppSettings $Website.AppSettings
|
||||
|
||||
Show-Message -Message "Updating App settings for web service"
|
||||
$WebService = Get-AzureWebsite -Name $ExcelValues[1]
|
||||
|
||||
# Accept MailCart username and Password
|
||||
|
||||
if($null -eq $ExchangeCredential) {
|
||||
$ExchangeCredential = Get-Credential -Message "Enter credentials to connect with Exchange server."
|
||||
}
|
||||
$WebService.AppSettings["Mail_Cart_Mail_User_Name"]= $ExchangeCredential.UserName
|
||||
$WebService.AppSettings["Mail_Cart_Mail_Password"]= $ExchangeCredential.GetNetworkCredential().Password
|
||||
$WebService.AppSettings["Old_Encryption_Key"]= $Guid
|
||||
$WebService.AppSettings["Encryption_Key"]= $Guid
|
||||
Set-AzureWebsite -Name $ExcelValues[1] -AppSettings $WebService.AppSettings
|
||||
}
|
||||
|
||||
# Get the azure properties of the website
|
||||
Function Get-AzureWebsiteProperties
|
||||
{
|
||||
$AzureProperties = Get-AzureRmResource |
|
||||
Where-Object { $_.ResourceType -like '*site*' -and $_.Name -like $ExcelValues[1] } | `
|
||||
Select-Object ResourceGroupName, Location
|
||||
|
||||
|
||||
# Return the azure properties
|
||||
return $AzureProperties
|
||||
}
|
||||
|
||||
# Create redis cache
|
||||
Function Create-RedisCache
|
||||
{
|
||||
param (
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String] $CacheLocation,
|
||||
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String] $ResourceGroupName,
|
||||
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String] $CacheName
|
||||
)
|
||||
#Check if redis cache group already exists
|
||||
$IsCacheExist = $null
|
||||
$CacheInfo = $null
|
||||
try
|
||||
{
|
||||
$ResourceGroups = Get-AzureRmResourceGroup
|
||||
Foreach ($ResourceGroup IN $ResourceGroups)
|
||||
{
|
||||
# Check redis cache is already exists
|
||||
$IsCacheExist = Find-AzureRmResource -ResourceGroupNameContains $ResourceGroup.ResourceGroupName -ResourceNameContains $CacheName -Top 1 -ErrorAction SilentlyContinue
|
||||
if($null -ne $IsCacheExist)
|
||||
{
|
||||
$CacheInfo = Get-AzureRmRedisCache -ResourceGroupName $ResourceGroup.ResourceGroupName -Name $CacheName -ErrorAction SilentlyContinue
|
||||
$CacheExist = $true
|
||||
}
|
||||
}
|
||||
|
||||
if(!$CacheExist)
|
||||
{
|
||||
Show-Message -Message "Matter Center Redis cache doesn't exist, creating redis cache for Matter Center"
|
||||
# Create a new cache.
|
||||
$CacheInfo = New-AzureRmRedisCache -Location $CacheLocation -Name $CacheName -ResourceGroupName $ResourceGroupName -Size 250MB -Sku Basic
|
||||
|
||||
Show-Message -Message "Redis cache is in process of creation, it will take sometime to complete! Continuing with the rest of the process" -Type ([MessageType]::Success)
|
||||
|
||||
Show-Message -Message "Primary Key: $($CacheInfo.PrimaryKey)"
|
||||
Show-Message -Message "Host name: $($CacheInfo.HostName)"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Output "Matter Center Redis cache already exists, hence skipping the process!"
|
||||
}
|
||||
#Return the cache details
|
||||
return $CacheInfo
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
$ErrorMessage = $Error[0].Exception.Error.Message
|
||||
Write-Log $ErrorLogFile $ErrorMessage
|
||||
return $null
|
||||
}
|
||||
}
|
||||
# First Phase : Resource Configuration
|
||||
Show-Message -Message "Please enter your Azure credentials for Azure Resource Management"
|
||||
if(Login-AzureRmAccount)
|
||||
{
|
||||
|
||||
try{
|
||||
$AzureProperties = Get-AzureWebsiteProperties
|
||||
|
||||
# Check if azure properties are not null and set it as per the service location
|
||||
if($AzureProperties -ne $null)
|
||||
{
|
||||
$CacheLocation = $AzureProperties.Location
|
||||
$ResourceGroupName = $AzureProperties.ResourceGroupName
|
||||
}
|
||||
|
||||
Show-Message -Message "Creating Redis cache"
|
||||
# Call the function to create redis cache
|
||||
$cacheName = ($ExcelValues[2] -split '//')[1].Split('.')[0] + $CacheName
|
||||
$MatterCenterCache= Create-RedisCache $CacheLocation $ResourceGroupName $CacheName
|
||||
|
||||
}
|
||||
catch{
|
||||
|
||||
$ErrorMessage = $Error[0].Exception.ErrorRecord.Exception.Message
|
||||
Write-Log $ErrorLogFile $ErrorMessage
|
||||
return $false
|
||||
}
|
||||
}
|
||||
else{
|
||||
return
|
||||
}
|
||||
|
||||
# Second phase: Service Configuration and deployment
|
||||
|
||||
Show-Message -Message "Please enter your Azure credentials for Azure service management"
|
||||
if(Add-AzureAccount)
|
||||
{
|
||||
try
|
||||
{
|
||||
# Call azure publish for site and service
|
||||
Publish-SiteOnAzure
|
||||
|
||||
# Update the service appsettings with Primary key and host name of cache
|
||||
if($MatterCenterCache -ne $null)
|
||||
{
|
||||
Write-Output "Updating the service appsettings with Primary key and host name of cache"
|
||||
|
||||
Show-Message -Message "Updating App settings for web service"
|
||||
$WebService = Get-AzureWebsite -Name $ExcelValues[1]
|
||||
|
||||
$WebService.AppSettings["Cache_Primary_Key"]= $MatterCenterCache.PrimaryKey
|
||||
$WebService.AppSettings["Cache_Host_Name"]= $MatterCenterCache.HostName
|
||||
|
||||
Set-AzureWebsite -Name $ExcelValues[1] -AppSettings $WebService.AppSettings
|
||||
}
|
||||
else
|
||||
{
|
||||
return $false
|
||||
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
$ErrorMessage = $Error[0].Exception.ErrorRecord.Exception.Message
|
||||
Write-Log $ErrorLogFile $ErrorMessage
|
||||
return $false
|
||||
}
|
||||
}
|
||||
else {
|
||||
return
|
||||
}
|
|
@ -74,9 +74,9 @@ Show-Message -Message "Adding common library functions" -Type ([MessageType]::Wa
|
|||
Show-Message -Message "Added common library functions" -Type ([MessageType]::Success)
|
||||
|
||||
#----------------------------------------------
|
||||
# Reverting step 13
|
||||
# Reverting step 11
|
||||
#----------------------------------------------
|
||||
if (13 -le $Checkpoint)
|
||||
if (11 -le $Checkpoint)
|
||||
{
|
||||
Show-Message -Message ""
|
||||
Show-Message -Message "Deleting files from SharePoint library"
|
||||
|
@ -89,9 +89,9 @@ if (13 -le $Checkpoint)
|
|||
}
|
||||
|
||||
#----------------------------------------------
|
||||
# Reverting step 12
|
||||
# Reverting step 10
|
||||
#----------------------------------------------
|
||||
if (12 -le $Checkpoint)
|
||||
if (10 -le $Checkpoint)
|
||||
{
|
||||
Show-Message -Message ""
|
||||
Show-Message -Message "Removing apps from Exchange"
|
||||
|
@ -104,9 +104,9 @@ if (12 -le $Checkpoint)
|
|||
}
|
||||
|
||||
#----------------------------------------------
|
||||
# Reverting step 11
|
||||
# Reverting step 9
|
||||
#----------------------------------------------
|
||||
if (11 -le $Checkpoint)
|
||||
if (9 -le $Checkpoint)
|
||||
{
|
||||
Show-Message -Message ""
|
||||
Show-Message -Message "Removing apps from SharePoint and Office"
|
||||
|
@ -121,9 +121,9 @@ if (11 -le $Checkpoint)
|
|||
}
|
||||
|
||||
#----------------------------------------------
|
||||
# Reverting Step 9
|
||||
# Reverting Step 8
|
||||
#----------------------------------------------
|
||||
if (9 -le $Checkpoint)
|
||||
if (8 -le $Checkpoint)
|
||||
{
|
||||
Show-Message -Message ""
|
||||
Show-Message -Message "Undoing Encryption"
|
||||
|
|
|
@ -1,180 +0,0 @@
|
|||
# Script to update the App package with configurations
|
||||
param
|
||||
(
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[bool] $IsDeployedOnAzure,
|
||||
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[System.Management.Automation.PSCredential] $Credentials
|
||||
)
|
||||
|
||||
# Function to get the parent Content Type ID
|
||||
function GetContentTypeID(){
|
||||
param
|
||||
(
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[bool] $IsDeployedOnAzure,
|
||||
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[System.Management.Automation.PSCredential] $Credentials
|
||||
|
||||
)
|
||||
Show-Message -Message "Getting parent Content Type ID" -Type ([MessageType]::Success)
|
||||
$contentTypeName = "MatterCenter"
|
||||
$contentTypeGroup = "_MatterCenter"
|
||||
try {
|
||||
$clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($ContentTypeHubURL)
|
||||
if($IsDeployedOnAzure){
|
||||
$credential = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Credentials.UserName, $Credentials.Password)
|
||||
} else {
|
||||
$credential = New-Object System.Net.NetworkCredential($Credentials.UserName, $Credentials.Password)
|
||||
}
|
||||
$clientContext.Credentials = $credential
|
||||
|
||||
# Retrieve the ID for parent Content Type
|
||||
$web = $clientContext.Web
|
||||
$contentTypeCollection = $web.ContentTypes
|
||||
$clientContext.Load($contentTypeCollection)
|
||||
$clientContext.ExecuteQuery()
|
||||
$parentContentType = $contentTypeCollection | Where-Object {$_.Group -eq $contentTypeGroup -and $_.Name -eq $contentTypeName}
|
||||
$parentContentTypeId = $parentContentType.Id.StringValue
|
||||
Show-Message -Message "Parent Content Type ID retrieved" -Type ([MessageType]::Success)
|
||||
} catch [Exception]
|
||||
{
|
||||
$parentContentTypeId = ""
|
||||
Show-Message -Message "Failed to get the parent Content Type ID" -Type ([MessageType]::Failure)
|
||||
Write-Log $ErrorLogFile $_.Exception.ToString()
|
||||
}
|
||||
return $parentContentTypeId
|
||||
}
|
||||
|
||||
# Function to update AppManifest.xml, Elements.xml and Feature.xml files present inside the App package
|
||||
function UpdateAppFile(){
|
||||
param
|
||||
(
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $appPackagePath,
|
||||
|
||||
[parameter(Mandatory=$true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $parentContentTypeId
|
||||
)
|
||||
|
||||
$fileName = Split-Path -Path $appPackagePath -Leaf
|
||||
$appManifestFile = "/AppManifest.xml"
|
||||
$elementsString = "/elements"
|
||||
$featureString = "/feature"
|
||||
$pages = "/pages/"
|
||||
$sendToOneDrive = "Send To OneDrive"
|
||||
$newProdID = [guid]::NewGuid().ToString()
|
||||
$newFeatureID = [guid]::NewGuid().ToString()
|
||||
|
||||
try
|
||||
{
|
||||
$package = [System.IO.Packaging.Package]::Open($appPackagePath, [System.IO.FileMode]::Open)
|
||||
$manifestUri = New-Object System.Uri($appManifestFile, [System.UriKind]::Relative)
|
||||
$appManifestPartNameUri = [System.IO.Packaging.PackUriHelper]::CreatePartUri($manifestUri)
|
||||
$appManifestPart = $package.GetPart($appManifestPartNameUri)
|
||||
$appManifestPartStream = $appManifestPart.GetStream()
|
||||
$reader = New-Object -Type System.IO.StreamReader -ArgumentList $appManifestPartStream
|
||||
$content = $reader.ReadToEnd()
|
||||
$xml = [xml] $content
|
||||
if($xml.App.ProductID)
|
||||
{
|
||||
$xml.App.ProductID = "{" + $newProdID + "}"
|
||||
}
|
||||
if($xml.App.Properties.StartPage -and -1 -lt $xml.App.Properties.StartPage.ToLowerInvariant().IndexOf($pages))
|
||||
{
|
||||
$previousURL = $xml.App.Properties.StartPage
|
||||
$xml.App.Properties.StartPage = $SiteUrl + $previousURL.Substring($previousURL.ToLowerInvariant().IndexOf($pages))
|
||||
}
|
||||
if($xml.App.AppPrincipal.RemoteWebApplication.ClientId)
|
||||
{
|
||||
$xml.App.AppPrincipal.RemoteWebApplication.ClientId = $ClientID
|
||||
}
|
||||
|
||||
$appManifestPartStream.Position = 0
|
||||
$appManifestPartStream.SetLength(0)
|
||||
$writer = New-Object -TypeName System.IO.StreamWriter -ArgumentList $appManifestPartStream
|
||||
$writer.Write($xml.InnerXml)
|
||||
$writer.Flush()
|
||||
|
||||
$parts = $package.GetParts()
|
||||
foreach ($part in $parts){
|
||||
$partNameUri = $part.Uri.OriginalString
|
||||
if($partNameUri -match $elementsString -or $partNameUri -match $featureString){
|
||||
$partStream = $part.GetStream()
|
||||
$partReader = New-Object -Type System.IO.StreamReader -ArgumentList $partStream
|
||||
$partContent = $partReader.ReadToEnd()
|
||||
$partXml = [xml] $partContent
|
||||
if($partNameUri -match $elementsString){
|
||||
# Update Elements.xml for SharePoint App
|
||||
if($partXml.Elements.CustomAction.UrlAction.Url -and -1 -lt $partXml.Elements.CustomAction.UrlAction.Url.ToLowerInvariant().IndexOf($pages)){
|
||||
$previousURL = $partXml.Elements.CustomAction.UrlAction.Url
|
||||
$partXml.Elements.CustomAction.UrlAction.Url = $SiteUrl + $previousURL.Substring($previousURL.ToLowerInvariant().IndexOf($pages))
|
||||
}
|
||||
if($sendToOneDrive -eq $partXml.Elements.CustomAction.Title -and "" -ne $parentContentTypeId){
|
||||
$partXml.Elements.CustomAction.RegistrationId = $parentContentTypeId
|
||||
}
|
||||
# Update Elements.xml for OneDrive Ribbon App
|
||||
if($partXml.Elements.CustomAction.CommandUIExtension.CommandUIHandlers.CommandUIHandler.CommandAction -and 0 -lt $partXml.Elements.CustomAction.CommandUIExtension.CommandUIHandlers.CommandUIHandler.CommandAction.Count){
|
||||
foreach ($item in $partXml.Elements.CustomAction.CommandUIExtension.CommandUIHandlers.ChildNodes){
|
||||
$previousURL = $item.CommandAction
|
||||
$item.CommandAction = $SiteUrl + $previousURL.Substring($previousURL.ToLowerInvariant().IndexOf($pages))
|
||||
}
|
||||
}
|
||||
} elseif($partNameUri -match $featureString){
|
||||
# Update Feature.xml for the App
|
||||
if($partXml.Feature.Id){
|
||||
$partXml.Feature.Id = "{" + $newFeatureID.ToLowerInvariant() + "}"
|
||||
}
|
||||
}
|
||||
$partStream.Position = 0
|
||||
$partStream.SetLength(0)
|
||||
$partWriter = New-Object -TypeName System.IO.StreamWriter -ArgumentList $partStream
|
||||
$partWriter.Write($partXml.InnerXml)
|
||||
$partWriter.Flush()
|
||||
}
|
||||
}
|
||||
$package.Close()
|
||||
Show-Message -Message "Updated the $fileName package" -Type ([MessageType]::Success)
|
||||
} catch [Exception]
|
||||
{
|
||||
$parentContentTypeId = " "
|
||||
Show-Message -Message "Failed to update the $fileName package" -Type ([MessageType]::Failure)
|
||||
Write-Log $ErrorLogFile $_.Exception.ToString()
|
||||
}
|
||||
}
|
||||
|
||||
$Configurations = (Read-FromExcel $ExcelFilePath "Config" ("ContentTypeHubURL", "UISiteURL", "ClientID") $ErrorLogFile)
|
||||
$Configurations = $Configurations.Split(";")
|
||||
if (3 -eq $Configurations.Count){
|
||||
$ContentTypeHubURL = $Configurations[0]
|
||||
$SiteUrl = $Configurations[1]
|
||||
$ClientID = $Configurations[2]
|
||||
|
||||
$UtilityFolder = "\Helper Utilities\"
|
||||
$SharePointAppFolder = "\SharePoint App\"
|
||||
|
||||
Add-Type -Path (Get-ChildItem ((Get-Item $ScriptDirectory).FullName + $UtilityFolder + "WindowsBase.dll"))
|
||||
$SharePointAppPath = (Get-Item $ScriptDirectory).Parent.FullName + $SharePointAppFolder + "Microsoft.Legal.MatterCenter.app"
|
||||
$RibbonAppPath = (Get-Item $ScriptDirectory).Parent.FullName + $SharePointAppFolder + "Microsoft.Legal.MatterCenter.OneDriveRibbon.app"
|
||||
# Get the parent Content Type ID
|
||||
$ParentContentTypeId = GetContentTypeID -IsDeployedOnAzure $IsDeployedOnAzure -Credentials $Credentials
|
||||
|
||||
# Update SharePoint App
|
||||
UpdateAppFile -appPackagePath $SharePointAppPath -parentContentTypeId $ParentContentTypeId
|
||||
# Update OneDrive Ribbon App
|
||||
if(Test-Path $RibbonAppPath) {
|
||||
UpdateAppFile -appPackagePath $RibbonAppPath -parentContentTypeId $ParentContentTypeId
|
||||
}
|
||||
} else{
|
||||
$ErrorMessage = "Incorrect configuration retrieved while updating App packages"
|
||||
Show-Message -Message $ErrorMessage -Type ([MessageType]::Failure)
|
||||
Write-Log $ErrorMessage
|
||||
}
|
|
@ -72,7 +72,7 @@
|
|||
}, "sp.js");
|
||||
|
||||
function preLoad() {
|
||||
var iFrameUrl = "SETTINGS_PAGE_URL", queryString = "";
|
||||
var iFrameUrl = "SETTINGS_PAGE_URL/#/settings", queryString = "";
|
||||
if ("/" !== _spPageContextInfo.siteServerRelativeUrl) {
|
||||
queryString = "&clientdetails=" + _spPageContextInfo.webAbsoluteUrl + "$|$" + _spPageContextInfo.webTitle;
|
||||
iFrameUrl += "?" + encodeURIComponent(queryString);
|
||||
|
|
|
@ -109,7 +109,12 @@
|
|||
if (sSectionID) {
|
||||
sQueryString = sQuestionMarkChar + sSection + sEqualChar + sSectionID + sAmpersandChar;
|
||||
}
|
||||
oWebDashboardSPGlobal.iFrame.src = "WEB_DASHBOARD_PAGE_URL" + sQueryString;
|
||||
if(sSectionID==="1"){
|
||||
oWebDashboardSPGlobal.iFrame.src = "WEB_DASHBOARD_PAGE_URL/#/matterdashboard";
|
||||
}
|
||||
else{
|
||||
oWebDashboardSPGlobal.iFrame.src = "WEB_DASHBOARD_PAGE_URL/#/documentdashboard";
|
||||
}
|
||||
});
|
||||
// Dynamically update height of iFrame
|
||||
(function () {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Document Details</title>
|
||||
<title id="tabTitle"></title>
|
||||
<link rel="stylesheet" type="text/css" href="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Common%20Assets/Styles/spCommon.css?ver=21.0.0.0" />
|
||||
<link rel="stylesheet" type="text/css" href="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Styles/documentDetails.css?ver=20.0.0.0" />
|
||||
</head>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<div id="expandCollapse">
|
||||
<span class="inlineElement" id="expandMessage">+</span>
|
||||
<span id="collapseMessage" class="inlineElement hide">-</span>
|
||||
<span>Click here for details</span>
|
||||
<span id="collapseMessageDetails"></span>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<span id="errorMessage" class="hide ellipsis"></span>
|
||||
|
@ -30,52 +30,53 @@
|
|||
<div id="leftSection">
|
||||
<div id="actionBarMainContainer">
|
||||
<span class="loadingImageContainer actionChild" id="loadingActionBar"><img class="loadingImage" alt="Loading" title="Loading..." src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/WindowsLoadingFast.GIF" /></span>
|
||||
<span id="documentName" class="actionChild hide ellipsis">File Name: <span id="documentTitle"></span></span>
|
||||
<div id="gotoAllDocuments" class="actionChild hide" title="Go to all documents"><a>Go to all documents</a></div>
|
||||
<span id="documentName" class="actionChild hide ellipsis"><span id="spanDocumentName"><span id="documentTitle"></span></span>
|
||||
<div id="gotoAllDocuments" class="actionChild hide" ><a id="linkGoToAllDocument">
|
||||
</a></div>
|
||||
<div id="actionBar" class="actionChild hide">
|
||||
<span class="documentAction" id="openDocument" title="Open">
|
||||
<span class="documentAction" id="openDocument" >
|
||||
<a>
|
||||
<img alt="Open" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Open_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">open</span>
|
||||
<span class="actionText" id="spanOpenDownload"></span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="documentAction" id="download" title="Download">
|
||||
<span class="documentAction" id="download">
|
||||
<a>
|
||||
<img alt="Download" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Download_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">download</span>
|
||||
<span class="actionText" id="spanDownload"></span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="documentAction" id="shareDocument" title="Share">
|
||||
<span class="documentAction" id="shareDocument">
|
||||
<img alt="Share" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Share_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">share</span>
|
||||
<span class="actionText" id="spanShare"></span>
|
||||
</span>
|
||||
<span class="documentAction" id="checkInOut">
|
||||
<span id="checkInDocument" title="Check in">
|
||||
<span id="checkInDocument">
|
||||
<img alt="Check in" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Check_in_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">check in</span>
|
||||
<span class="actionText" id="spanCheckin"></span>
|
||||
</span>
|
||||
<span id="checkOutDocument" class="hide" title="Check out">
|
||||
<span id="checkOutDocument" class="hide">
|
||||
<img id="checkOutLoading" class="loadingImage hide" alt="Loading" title="Loading..." src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/loading_circles_30px_X_30px_white.gif" />
|
||||
<img alt="Check out" id="checkOutImage" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Check_Out_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">check out</span>
|
||||
<span class="actionText" id="spanCheckOut"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="documentAction" id="sendLink" title="Send as link">
|
||||
<span class="documentAction" id="sendLink">
|
||||
<img alt="Send as link" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Send_Link_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">send link</span>
|
||||
<span class="actionText" id="spanSendLink" ></span>
|
||||
</span>
|
||||
<span class="documentAction" id="sendToOneDrive" title="Send to OneDrive">
|
||||
<span class="documentAction" id="sendToOneDrive">
|
||||
<img alt="OneDrive" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_OneDrive_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">OneDrive</span>
|
||||
<span class="actionText" id="spanOneDrive" ></span>
|
||||
</span>
|
||||
<span class="documentAction" id="pinUnpinDocument" title="Pin">
|
||||
<span class="documentAction" id="pinUnpinDocument">
|
||||
<span id="pinDocument">
|
||||
<img alt="Pin" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Pin_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">pin</span>
|
||||
<span class="actionText" id="spanPin" ></span>
|
||||
</span>
|
||||
<span id="unpinDocument" class="hide" title="Unpin">
|
||||
<span id="unpinDocument" class="hide">
|
||||
<img alt="Unpin" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Unpin_Icon_30px_x_30px.png" />
|
||||
<span class="actionText">unpin</span>
|
||||
<span class="actionText" id="spanUnpin" ></span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
@ -85,8 +86,8 @@
|
|||
<iframe class="hide" name="documentPreviewSource" id="documentPreviewSource"></iframe>
|
||||
<div id="documentPreviewNotSupported" class="hide">
|
||||
<span class="previewContainer">
|
||||
<img class="previewImage" alt="Preview not supported" title="Preview not supported..." src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landingpage_No-Preview_Icon_120px_x_90px.png" />
|
||||
<span id="previewUnsupportedText">There is no preview for this document</span>
|
||||
<img class="previewImage" id="imgNoPreview" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landingpage_No-Preview_Icon_120px_x_90px.png" />
|
||||
<span id="previewUnsupportedText"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -98,18 +99,24 @@
|
|||
<img class="hide toggleFileSection" id="OpenFileProperties" alt="Open" title="Open" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Glyph_Open.png" />
|
||||
<img class="toggleFileSection" id="CloseFileProperties" alt="Close" title="Close" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Glyph_Close.png" />
|
||||
<span id="filePropertiesTitle">File Properties</span>
|
||||
<span class="viewMoreSection" title="View more"><a id="viewMoreFileProperties">View more</a></span>
|
||||
<span class="viewMoreSection" id="viewMoreVersions"></span>
|
||||
</div>
|
||||
<div class="separtor"></div>
|
||||
<ul id="metadataProperties">
|
||||
<li><span class="loadingImageContainer" id="loadingFileProperties"><img class="loadingImage" alt="Loading" title="Loading..." src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/WindowsLoadingFast.GIF" /></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="File title">File title:</span><span class="propertyValue ellipsis" id="fileTitleValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Client">Client:</span><span class="propertyValue ellipsis" id="clientValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Matter">Matter:</span><span class="propertyValue ellipsis" id="matterValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Client.MatterID">Client.MatterID:</span><span class="propertyValue ellipsis" id="clientMatterIdValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Document ID">Document ID:</span><span class="propertyValue ellipsis" id="documentIdValue"></span></li>
|
||||
<li class="hide">
|
||||
<span class="propertyName ellipsis" title="Checked out to">Checked out to:</span>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column1" >
|
||||
</span><span class="propertyValue ellipsis" id="fileTitleValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column2" >
|
||||
</span><span class="propertyValue ellipsis" id="clientValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column3" >
|
||||
</span><span class="propertyValue ellipsis" id="matterValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column4" >
|
||||
</span><span class="propertyValue ellipsis" id="clientMatterIdValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column5" >
|
||||
</span><span class="propertyValue ellipsis" id="documentIdValue"></span></li>
|
||||
<li class="hide">
|
||||
<span class="propertyName ellipsis" id="Section1Column6" >
|
||||
</span>
|
||||
<span id="checkOutLyncIndicator">
|
||||
<span class="ms-verticalAlignTop ms-noWrap">
|
||||
<span class="ms-imnSpan">
|
||||
|
@ -124,7 +131,8 @@
|
|||
<span class="propertyValue ellipsis" id="checkOutUserValue"></span>
|
||||
</li>
|
||||
<li class="hide">
|
||||
<span class="propertyName ellipsis" title="Author">Author:</span>
|
||||
<span class="propertyName ellipsis" id="Section1Column7" >
|
||||
</span>
|
||||
<span id="authorLyncIndicator">
|
||||
<span class="ms-verticalAlignTop ms-noWrap">
|
||||
<span class="ms-imnSpan">
|
||||
|
@ -138,26 +146,35 @@
|
|||
</span>
|
||||
<span class="propertyValue ellipsis" id="authorValue"></span>
|
||||
</li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Date created">Date created:</span><span class="propertyValue ellipsis" id="dateCreatedValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Practice group">Practice group:</span><span class="propertyValue ellipsis" id="practiceGroupValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Area of law">Area of law:</span><span class="propertyValue ellipsis" id="areaOfLawValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="Sub area of law">Sub area of law:</span><span class="propertyValue ellipsis" id="subAreaOfLaw"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="File type">File type:</span><span class="propertyValue ellipsis" id="fileTypeValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="File size">File size:</span><span class="propertyValue ellipsis" id="fileSizeValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" title="File access">File access:</span><a class="propertyValue ellipsis" id="accessValue" title="View shared properties"></a></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column8">
|
||||
</span><span class="propertyValue ellipsis" id="dateCreatedValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column9">
|
||||
</span><span class="propertyValue ellipsis" id="practiceGroupValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column10">
|
||||
</span><span class="propertyValue ellipsis" id="areaOfLawValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column11">
|
||||
</span><span class="propertyValue ellipsis" id="subAreaOfLaw"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column12">
|
||||
</span><span class="propertyValue ellipsis" id="fileTypeValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column13">
|
||||
</span><span class="propertyValue ellipsis" id="fileSizeValue"></span></li>
|
||||
<li class="hide"><span class="propertyName ellipsis" id="Section1Column14">
|
||||
</span><a class="propertyValue ellipsis" id="accessValue" title="View shared properties"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="metadataVersion">
|
||||
<div class="viewMoreContainer">
|
||||
<img class="hide toggleVersionSection" id="OpenVersionHistory" alt="Open" title="Open" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Glyph_Open.png" />
|
||||
<img class="toggleVersionSection" id="CloseVersionHistory" alt="Close" title="Close" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/MC_Documents_Landing_Page_Glyph_Close.png" />
|
||||
<span id="versionHistoryTitle">Version history</span>
|
||||
<span class="viewMoreSection" id="viewMoreVersions" title="View more">View more</span>
|
||||
<span id="versionHistoryTitle" id="Section2Header"></span>
|
||||
<span class="viewMoreSection" id="viewMoreVersions"></span>
|
||||
</div>
|
||||
<div class="separtor"></div>
|
||||
<div id="documentMetadataContainer">
|
||||
<div id="versionHeader" class="hide">
|
||||
<span class="versionHeaders">Version</span><span class="versionHeaders">Modified</span><span class="versionHeaders">Modified By</span>
|
||||
<span class="versionHeaders" id="Section2Column1"></span>
|
||||
<span class="versionHeaders" id="Section2Column2"></span>
|
||||
<span class="versionHeaders" id="Section2Column3"></span>
|
||||
</div>
|
||||
<ul id="documentMetadata">
|
||||
<li><span class="loadingImageContainer" id="loadingVersion"><img class="loadingImage" alt="Loading" title="Loading..." src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Images/WindowsLoadingFast.GIF" /></span></li>
|
||||
|
@ -170,6 +187,7 @@
|
|||
</div>
|
||||
<script type="text/javascript" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Common%20Assets/Scripts/jquery-1.11.1.min.js?ver=20.0.0.0"></script>
|
||||
<script type="text/javascript" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Common%20Assets/Scripts/spCommon.js?ver=20.0.0.0"></script>
|
||||
<script type="text/javascript" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Common%20Assets/Scripts/uiconfigforspo.js"></script>
|
||||
<script type="text/javascript" src="CATALOG_SITE_URL/SiteAssets/Matter%20Center%20Assets/Document%20Landing%20Assets/Scripts/documentDetails.js?ver=20.0.0.0"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,77 @@
|
|||
var uiconfigs =
|
||||
{
|
||||
"MatterLanding": {
|
||||
"Label1Tab1HeaderText": "Matter Profile",
|
||||
"Label2Tab2HeaderText": "Matter Description",
|
||||
"Label3Tab1Column1Text": "Client Name",
|
||||
"Label4Tab1Column2Text": "Client & Matter ID",
|
||||
"Label5Tab1Column3Text": "Practice Group",
|
||||
"Label6Tab1Column4Text": "Area of Law",
|
||||
"Label7Tab1Column5Text": "Responsible Attorney",
|
||||
"Label8Tab1Section2HeaderText": "Matter Library",
|
||||
"MenuImageUpperCaption": "Matter Center",
|
||||
"MenuImageLowerCaption": "for Office 365",
|
||||
"Menu1Option1Text": "Matters",
|
||||
"Menu1Option2Text": "Documents",
|
||||
"Menu1Option3Text": "Settings",
|
||||
"ErrMsg1NoTask": "There are no tasks created",
|
||||
"ErrMsg2FetchTask": "Error occurred while trying to fetch tasks",
|
||||
"ErrMsg3CreateEvent": "Error occurred while trying to fetch events",
|
||||
"ErrMsg4ActiveEvents": "There are no active events",
|
||||
"ErrMsg5NoMatterDescription": "There is no description for this matter",
|
||||
"ErrMsg6ForPinUnpinMatters": "Error while trying to retrieve matter pin/unpin status",
|
||||
"ErrMsg7MatterInformation": "Error while trying to retrieve matter information",
|
||||
"ErrMsg8MatterDescription": "Error while trying to retrieve matter description",
|
||||
"ErrMsg9NoPinUnpinMatter": "Error while trying to pin/unpin matter",
|
||||
"Label1MenuText": "Matter Name",
|
||||
"Label9Section1Text": "Matter Id",
|
||||
"Label10Section1Text": "Client Id",
|
||||
"Label11Section1Text": "Description",
|
||||
"Label12ManageUserTitleText": "Manage users",
|
||||
"Label13GotoOnnoteTitleText": "Go to Matter OneNote",
|
||||
"Label14TaskeTitleText": "Task ",
|
||||
"Label15CalenderTitleText": "Calendar Events",
|
||||
"Label16RSSFeedTitleText": "Related News (RSS)",
|
||||
"Label17EditTitleText": "View / Edit",
|
||||
"Label18MenuText": "My Matters",
|
||||
"Label19Section4Text": "Matter Library"
|
||||
},
|
||||
"DocumentDetails": {
|
||||
"Label1HeaderText": "File Name",
|
||||
"Label2Section2HeaderText": "File Properties",
|
||||
"Label3Section2Column1Text": "File title",
|
||||
"Label4Section2Column2Text": "Client",
|
||||
"Label5Section2Column3Text": "Matter",
|
||||
"Label6Section2Column4Text": "Client.MatterID",
|
||||
"Label7Section2Column5Text": "Document ID",
|
||||
"Label8Section2Column6Text": "Checked out to",
|
||||
"Label9Section2Column7Text": "Author",
|
||||
"Label10Section2Column8Text": "Date created",
|
||||
"Label11Section2Column9Text": "Practice group",
|
||||
"Label12Section2Column10Text": "Area of law:",
|
||||
"Label13Section2Column11Text": "Sub area of law",
|
||||
"Label14Section2Column12Text": "File type",
|
||||
"Label15Section2Column13Text": "File size",
|
||||
"Label16Section2Column14Text": "File access",
|
||||
"Label17Section2HeaderText": "Version history",
|
||||
"Label18Section2Column1Text": "Version",
|
||||
"Label19Section2Column2Text": "Modified",
|
||||
"Label20Section2Column3Text": "Modified By",
|
||||
"Label21MenuHeaderOption1Text": "open",
|
||||
"Label22MenuHeaderOption2Text": "download",
|
||||
"Label23MenuHeaderOption3Text": "share",
|
||||
"Label24MenuHeaderOption4Text": "check in",
|
||||
"Label25MenuHeaderOption5Text": "check out",
|
||||
"Label26MenuHeaderOption6Text": "send link",
|
||||
"Label27MenuHeaderOption7Text": "pin",
|
||||
"Label28MenuHeaderOption8Text": "unpin",
|
||||
"Label1TabTitleText": "Document Details",
|
||||
"Link1ErrorDetailsCaptionText": "Click here for details",
|
||||
"Link2AllDocumentText": "Go to all documents",
|
||||
"LabelNoPreviewText": "There is no preview for this document",
|
||||
"ImgNoPreviewSuppoertText": "Preview not supported...",
|
||||
"Link3ViewMoreText": "View More",
|
||||
"Label135MenuHead" : "OneDrive",
|
||||
"Label36MenuHeaderOption7Text" : "Send to OneDrive"
|
||||
}
|
||||
};
|
|
@ -1157,6 +1157,77 @@ var oDocumentLandingObject = (function () {
|
|||
return string.replace(new RegExp(oCommonFunctions.escapeRegExp(find), "g"), replace);
|
||||
};
|
||||
|
||||
oCommonFunctions.applyConfigSettings = function () {
|
||||
|
||||
|
||||
$("#tabTitle").html(uiconfigs.DocumentDetails.Label1TabTitleText);
|
||||
$("#collapseMessageDetails").html(uiconfigs.DocumentDetails.Link1ErrorDetailsCaptionText);
|
||||
$("#gotoAllDocuments").attr("title",uiconfigs.DocumentDetails.Link2AllDocumentText);
|
||||
$("#linkGoToAllDocument").html(uiconfigs.DocumentDetails.Link2AllDocumentText);
|
||||
$("#previewUnsupportedText").html(uiconfigs.DocumentDetails.LabelNoPreviewText);
|
||||
$("#imgNoPreview").attr("title",uiconfigs.DocumentDetails.ImgNoPreviewSuppoertText);
|
||||
$("#spanViewMore").attr("title",uiconfigs.DocumentDetails.Link3ViewMoreText);
|
||||
$("#viewMoreFileProperties").html(uiconfigs.DocumentDetails.Link3ViewMoreText);
|
||||
$("#viewMoreVersions").attr("title",uiconfigs.DocumentDetails.Link3ViewMoreText);
|
||||
$("#viewMoreVersions").html(uiconfigs.DocumentDetails.Link3ViewMoreText);
|
||||
|
||||
$("#spanDocumentName").html(uiconfigs.DocumentDetails.Label1HeaderText+ ":");
|
||||
|
||||
$("#filePropertiesTitle").html(uiconfigs.DocumentDetails.Label2Section2HeaderText);
|
||||
$("#Section1Column1").html(uiconfigs.DocumentDetails.Label1HeaderText + ":");
|
||||
$("#Section1Column1").attr("title",uiconfigs.DocumentDetails.Label1HeaderText);
|
||||
$("#Section1Column2").html(uiconfigs.DocumentDetails.Label4Section2Column2Text+ ":");
|
||||
$("#Section1Column2").attr("title",uiconfigs.DocumentDetails.Label4Section2Column2Text);
|
||||
$("#Section1Column3").html(uiconfigs.DocumentDetails.Label5Section2Column3Text+ ":");
|
||||
$("#Section1Column3").attr("title",uiconfigs.DocumentDetails.Label5Section2Column3Text);
|
||||
$("#Section1Column4").html(uiconfigs.DocumentDetails.Label6Section2Column4Text+ ":");
|
||||
$("#Section1Column4").attr("title",uiconfigs.DocumentDetails.Label6Section2Column4Text);
|
||||
$("#Section1Column5").html(uiconfigs.DocumentDetails.Label7Section2Column5Text+ ":");
|
||||
$("#Section1Column5").attr("title",uiconfigs.DocumentDetails.Label7Section2Column5Text);
|
||||
$("#Section1Column6").html(uiconfigs.DocumentDetails.Label8Section2Column6Text+ ":");
|
||||
$("#Section1Column6").attr("title",uiconfigs.DocumentDetails.Label8Section2Column6Text);
|
||||
$("#Section1Column7").html(uiconfigs.DocumentDetails.Label9Section2Column7Text+ ":");
|
||||
$("#Section1Column7").attr("title",uiconfigs.DocumentDetails.Label9Section2Column7Text);
|
||||
$("#Section1Column8").html(uiconfigs.DocumentDetails.Label10Section2Column8Text+ ":");
|
||||
$("#Section1Column8").attr("title",uiconfigs.DocumentDetails.Label10Section2Column8Text);
|
||||
$("#Section1Column9").html(uiconfigs.DocumentDetails.Label11Section2Column9Text+ ":");
|
||||
$("#Section1Column9").attr("title",uiconfigs.DocumentDetails.Label11Section2Column9Text);
|
||||
$("#Section1Column10").html(uiconfigs.DocumentDetails.Label12Section2Column10Text+ ":");
|
||||
$("#Section1Column10").attr("title",uiconfigs.DocumentDetails.Label12Section2Column10Text);
|
||||
$("#Section1Column11").html(uiconfigs.DocumentDetails.Label13Section2Column11Text+ ":");
|
||||
$("#Section1Column11").attr("title",uiconfigs.DocumentDetails.Label13Section2Column11Text);
|
||||
$("#Section1Column12").html(uiconfigs.DocumentDetails.Label14Section2Column12Text+ ":");
|
||||
$("#Section1Column12").attr("title",uiconfigs.DocumentDetails.Label14Section2Column12Text);
|
||||
$("#Section1Column13").html(uiconfigs.DocumentDetails.Label15Section2Column13Text+ ":");
|
||||
$("#Section1Column13").attr("title",uiconfigs.DocumentDetails.Label15Section2Column13Text);
|
||||
$("#Section1Column14").html(uiconfigs.DocumentDetails.Label16Section2Column14Text+ ":");
|
||||
$("#Section1Column14").attr("title",uiconfigs.DocumentDetails.Label16Section2Column14Text);
|
||||
|
||||
|
||||
$("#Section2Header").html(uiconfigs.DocumentDetails.Label17Section2HeaderText);
|
||||
$("#Section2Column1").html(uiconfigs.DocumentDetails.Label18Section2Column1Text);
|
||||
$("#Section2Column2").html(uiconfigs.DocumentDetails.Label19Section2Column2Text);
|
||||
$("#Section2Column3").html(uiconfigs.DocumentDetails.Label20Section2Column3Text);
|
||||
|
||||
$("#spanOpenDownload").html(uiconfigs.DocumentDetails.Label21MenuHeaderOption1Text);
|
||||
$("#spanDownload").html(uiconfigs.DocumentDetails.Label22MenuHeaderOption2Text);
|
||||
$("#spanShare").html(uiconfigs.DocumentDetails.Label23MenuHeaderOption3Text);
|
||||
$("#spanCheckin").html(uiconfigs.DocumentDetails.Label24MenuHeaderOption4Text);
|
||||
$("#spanCheckOut").html(uiconfigs.DocumentDetails.Label25MenuHeaderOption5Text);
|
||||
$("#spanSendLink").html(uiconfigs.DocumentDetails.Label26MenuHeaderOption6Text);
|
||||
$("#spanPin").html(uiconfigs.DocumentDetails.Label27MenuHeaderOption7Text);
|
||||
$("#spanUnpin").html(uiconfigs.DocumentDetails.Label28MenuHeaderOption8Text);
|
||||
|
||||
$("#openDocument").attr("title",uiconfigs.DocumentDetails.Label21MenuHeaderOption1Text);
|
||||
$("#download").attr("title",uiconfigs.DocumentDetails.Label22MenuHeaderOption2Text);
|
||||
$("#shareDocument").attr("title",uiconfigs.DocumentDetails.Label23MenuHeaderOption3Text);
|
||||
$("#checkInDocument").attr("title",uiconfigs.DocumentDetails.Label24MenuHeaderOption4Text);
|
||||
$("#checkOutDocument").attr("title",uiconfigs.DocumentDetails.Label25MenuHeaderOption5Text);
|
||||
$("#sendLink").attr("title",uiconfigs.DocumentDetails.Label26MenuHeaderOption6Text);
|
||||
$("#pinDocument").attr("title",uiconfigs.DocumentDetails.Label27MenuHeaderOption7Text);
|
||||
$("#unpinDocument").attr("title",uiconfigs.DocumentDetails.Label28MenuHeaderOption8Text);
|
||||
|
||||
}
|
||||
|
||||
/* Function to be executed once DOM loaded completely */
|
||||
$(document).ready(function () {
|
||||
|
@ -1166,6 +1237,7 @@ var oDocumentLandingObject = (function () {
|
|||
oDocumentLanding.sDocumentParentListId = oCommonFunctions.getParameterByName("listguid");
|
||||
oDocumentLanding.sDocumentGUID = oCommonFunctions.getParameterByName("docguid");
|
||||
oCommonFunctions.applyBindings();
|
||||
oCommonFunctions.applyConfigSettings();
|
||||
if ("" === oDocumentLanding.sClientRelativeUrl || "" === oDocumentLanding.sDocumentParentListId || "" === oDocumentLanding.sDocumentGUID) {
|
||||
oCommonFunctions.showCommonErrorPopUp(oErrorMessages.sInsufficientParametersMessage);
|
||||
} else {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
/// <disable>JS1003,JS2005,JS2024,JS2027,JS2031,JS2032,JS2052,JS2053,JS2064,JS2073,JS2074,JS2076,JS2085,JS3054,JS3057,JS3085,JS3116,JS3056,JS3058,JS3092</disable>
|
||||
/* Matter Center constants */
|
||||
|
||||
|
||||
var oMatterLandingHtmlConstants = {
|
||||
"matterInfoHtml": "<div class='documentLoadingIcon hide'><img class=\"loadingIcon\" src=\"@@LoadingImage\" alt=\"Loading\"/></div><div class=\"errorPopUpHolder hide\"><div class=\"errorPopupBackground\"></div><div class=\"errorPopUpContainer errorPopUpCenter\"><img title=\"Close\" class=\"errorPopUpCloseIcon popUpFloatRight\" alt=\"Close\" src=\"@@PopupCloseIcon\"><div class=\"errorPopUpMessage\"><span id=\"genericMessage\">Something went wrong</span><div class=\"clear\"></div><div id=\"expandCollapse\"><span class=\"inlineElement\" id=\"expandMessage\">+</span><span id=\"collapseMessage\" class=\"inlineElement hide\">-</span><span>Click here for details</span></div><div class=\"clear\"></div><span id=\"errorMessage\" class=\"hide ellipsis\"></span></div></div></div><div title='@@MatterName' class=\"matterName\">@@MatterName</div><div class=\"matterLink\"><a class=\"matterLinkPart\" title='My Matters' href=\"@@FindMatterUrl\" target=\"_self\"> My Matters </a> > <a class=\"matterLinkPart\" title='@@MatterName' href=\"@@MatterUrl\" target=\"_self\"> @@MatterName </a> </div><div class=\"matterAction\"><div class=\"matterView\"><div class=\"matterProfileTitle\">Matter Profile</div><div class=\"matterDescriptionTitle changeSection\">Matter Description</div></div>@@PinChunk</div><div class=\"clear\"></div><div class=\"matterDescriptionBody hide\"><div><img class=\"loadingIcon\" alt=\"Loading Image\" src=\"@@LoadingImage\" /></div></div><div class=\"matterProfileBody\"><div class=\"matterDetails\"><img class=\"loadingIcon\" alt=\"Loading Image\" src=\"@@LoadingImage\" /></div><div class=\"clear\"></div></div>",
|
||||
"matterInfoHtml": "<div class='documentLoadingIcon hide'><img class=\"loadingIcon\" src=\"@@LoadingImage\" alt=\"Loading\"/></div><div class=\"errorPopUpHolder hide\"><div class=\"errorPopupBackground\"></div><div class=\"errorPopUpContainer errorPopUpCenter\"><img title=\"Close\" class=\"errorPopUpCloseIcon popUpFloatRight\" alt=\"Close\" src=\"@@PopupCloseIcon\"><div class=\"errorPopUpMessage\"><span id=\"genericMessage\">Something went wrong</span><div class=\"clear\"></div><div id=\"expandCollapse\"><span class=\"inlineElement\" id=\"expandMessage\">+</span><span id=\"collapseMessage\" class=\"inlineElement hide\">-</span><span>Click here for details</span></div><div class=\"clear\"></div><span id=\"errorMessage\" class=\"hide ellipsis\"></span></div></div></div><div title='@@MatterName' class=\"matterName\">@@MatterName</div><div class=\"matterLink\"><a class=\"matterLinkPart\" title='My Matters' href=\"@@FindMatterUrl\" target=\"_self\"> @@MyMatters </a> > <a class=\"matterLinkPart\" title='@@MatterName' href=\"@@MatterUrl\" target=\"_self\"> @@MatterName </a> </div><div class=\"matterAction\"><div class=\"matterView\"><div class=\"matterProfileTitle\">@@Label1Tab1HeaderText</div><div class=\"matterDescriptionTitle changeSection\">@@Label2Tab2HeaderText</div></div>@@PinChunk</div><div class=\"clear\"></div><div class=\"matterDescriptionBody hide\"><div><img class=\"loadingIcon\" alt=\"Loading Image\" src=\"@@LoadingImage\" /></div></div><div class=\"matterProfileBody\"><div class=\"matterDetails\"><img class=\"loadingIcon\" alt=\"Loading Image\" src=\"@@LoadingImage\" /></div><div class=\"clear\"></div></div>",
|
||||
"taskSectionHtml": "<div class=\"taskHeading\"> <div class=\"headingText\" title='Task'> Task </div> <div class=\"taskOption\"> <a href=\"@@TaskLink\" onclick=\"LogEvent(appInsightsMatterLandingText + appInsightsOperations.Task)\" title= \"View / Edit\" target =\"_self\">View / Edit </a></div> </div> <div class=\"taskBoard\"><img class=\"loadingIcon\" src=\"@@LoadingImage\" alt=\"Loading\"/></div>",
|
||||
"calendarSectionHtml": "<div class=\"calenderHeading\"> <div title='Calendar' class=\"headingText\"> Calendar Events </div><div class=\"calenderOption\"><a href=\"@@TaskLink\" title= \"View / Edit\" target =\"_self\" onclick=\"LogEvent(appInsightsMatterLandingText + appInsightsOperations.Calendar)\" >View / Edit </a></div></div><div class=\"eventBoard\"><img class=\"loadingIcon\" src=\"@@LoadingImage\" alt=\"Loading\"/></div>",
|
||||
"rssSectionHtml": "<div class=\"taskHeading\"><div title='Related News (RSS)' class=\"headingText\"> Related News (RSS) </div></div><div class=\"clear\"></div>",
|
||||
|
@ -180,40 +182,29 @@ oGlobalConstants.Go_To_OneNote = "GoToOneNote";
|
|||
oGlobalConstants.sAppName = "ProvisionDMSMatter";
|
||||
oGlobalConstants.sSendMailListName = "SendMail";
|
||||
oGlobalConstants.sEffectivePermissionUrl = "{0}/_api/Web/lists/getbytitle('{1}')/EffectiveBasePermissions";
|
||||
|
||||
oGlobalConstants.matterCenterMatterList = "MatterCenterMatters";
|
||||
// Declare the element for pin
|
||||
var oElement = null;
|
||||
|
||||
//window.location.pathname.split('/').pop().replace('.aspx', '')
|
||||
/* Function to get matter name in case if GUID is not present */
|
||||
function getMatterName() {
|
||||
return ("undefined" === typeof (documentLibraryGUID)) ? documentLibraryName : documentLibraryGUID;
|
||||
//return documentLibraryGUID;
|
||||
}
|
||||
|
||||
/* Document ready function */
|
||||
$(document).ready(function () {
|
||||
|
||||
|
||||
"use strict";
|
||||
displayHeaderAndFooterContent();
|
||||
var clientUrl = _spPageContextInfo.webServerRelativeUrl + "/";
|
||||
LogEvent(appInsightsMatterLandingText + appInsightsOperations.PageLoad);
|
||||
/* Make a call to display content on the page */
|
||||
//documentLibraryGUID = window.location.pathname.split('/').pop().replace('.aspx', '')
|
||||
displayContent();
|
||||
/* Register the click event for Matter Information section */
|
||||
$(".matterDescriptionTitle,.matterProfileTitle").click(function () {
|
||||
var className = $(this)[0].className;
|
||||
if (-1 !== className.indexOf("matterDescriptionTitle")) {
|
||||
$(".matterDescriptionTitle").removeClass("changeSection");
|
||||
$(".matterProfileTitle").addClass("changeSection");
|
||||
$(".matterDescriptionBody").removeClass("hide");
|
||||
$(".matterProfileBody").addClass("hide");
|
||||
LogEvent(appInsightsMatterLandingText + appInsightsOperations.MatterDescription);
|
||||
} else {
|
||||
$(".matterDescriptionTitle").addClass("changeSection");
|
||||
$(".matterProfileTitle").removeClass("changeSection");
|
||||
$(".matterDescriptionBody").addClass("hide");
|
||||
$(".matterProfileBody").removeClass("hide");
|
||||
LogEvent(appInsightsMatterLandingText + appInsightsOperations.MatterInfo);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$("#matterLink").click(function (event) {
|
||||
LogEvent(appInsightsMatterLandingText + appInsightsOperations.MatterLink);
|
||||
|
@ -311,8 +302,7 @@ $(document).ready(function () {
|
|||
$(".errorPopUpHolder").addClass("hide");
|
||||
});
|
||||
|
||||
// Cache the pin element
|
||||
oElement = document.getElementById("PinMatter");
|
||||
|
||||
|
||||
// Make a call to SharePoint functions
|
||||
ExecuteOrDelayUntilScriptLoaded(function () {
|
||||
|
@ -330,12 +320,14 @@ $(document).ready(function () {
|
|||
getCurrentUserTitle();
|
||||
retrievePinListItems();
|
||||
}, "sp.js");
|
||||
|
||||
});
|
||||
$(window).on("resize", function (event) {
|
||||
adjustFooter();
|
||||
|
||||
});
|
||||
|
||||
|
||||
/* Close the popup if clicked outside the selected area */
|
||||
function closeAllPopup(event) {
|
||||
"use strict";
|
||||
|
@ -396,6 +388,7 @@ function createModalDialog(isEdit) {
|
|||
var options = SP.UI.$create_DialogOptions();
|
||||
options.title = title;
|
||||
options.url = oGlobalModalDialog.url + "?" + querystring;
|
||||
|
||||
options.width = oGlobalModalDialog.width;
|
||||
options.height = oGlobalModalDialog.height;
|
||||
if ("addEventListener" in window) { // All browsers except IE before version 9
|
||||
|
@ -429,47 +422,132 @@ function receiveMessage(event) {
|
|||
|
||||
/* Attaches all the content on the page */
|
||||
function displayContent() {
|
||||
"use strict";
|
||||
"use strict";
|
||||
var url = "/sites/catalog/SiteAssets/Matter Center Assets/Common Assets/Scripts/uiconfigforspo.js";
|
||||
$.getScript( url, function() {
|
||||
/* Remove the hierarchy div if it already exists */
|
||||
var hierarchyDiv = $("#documentLibraryTitle");
|
||||
if (hierarchyDiv) {
|
||||
$(hierarchyDiv).remove();
|
||||
}
|
||||
|
||||
var listUrl = _spPageContextInfo.webAbsoluteUrl + "/Lists";
|
||||
//alert(uiconfigs.MatterLanding.Label1Tab1HeaderText);
|
||||
|
||||
oMatterLandingCommonObjects.hierarchyLibraryName = uiconfigs.MatterLanding.Label19Section4Text;
|
||||
/* Set the matter information html */
|
||||
var pinChunk = oMatterLandingHtmlConstants.pinHtml.replace("@@PinIcon", oCommonLinks.sCatalogSite + oMatterLandingCommonObjects.oMatterCenterAssetsLocation + oMatterLandingAssetsLocation.pinIcon);
|
||||
pinChunk = pinChunk.replace("@@LoadingImage", oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
pinChunk = pinChunk.replace("@@UnpinIcon", oCommonLinks.sCatalogSite + oMatterLandingCommonObjects.oMatterCenterAssetsLocation + oMatterLandingAssetsLocation.unPinIcon);
|
||||
var sMatterInformationText = oMatterLandingHtmlConstants.matterInfoHtml.replace("@@PinChunk", pinChunk);
|
||||
sMatterInformationText = sMatterInformationText.replace("@@FindMatterUrl", oFooterLinks.dashboard + oFooterLinks.matterDocumentsQueryString);
|
||||
sMatterInformationText = sMatterInformationText.replace("@@MatterUrl", _spPageContextInfo.siteServerRelativeUrl + "/" + getMatterName() + oGlobalConstants.sUrlExtension);
|
||||
sMatterInformationText = sMatterInformationText.replace(/@@MatterName/g, documentLibraryName);
|
||||
sMatterInformationText = sMatterInformationText.replace(/@@LoadingImage/g, oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
sMatterInformationText = sMatterInformationText.replace(/@@PopupCloseIcon/g, oCommonLinks.sCatalogSite + oMatterLandingCommonObjects.oMatterCenterAssetsLocation + oMatterLandingAssetsLocation.popupCloseIcon);
|
||||
|
||||
sMatterInformationText = sMatterInformationText.replace("@@Label1Tab1HeaderText", uiconfigs.MatterLanding.Label1Tab1HeaderText);
|
||||
sMatterInformationText = sMatterInformationText.replace("@@Label2Tab2HeaderText", uiconfigs.MatterLanding.Label2Tab2HeaderText);
|
||||
sMatterInformationText = sMatterInformationText.replace("@@MyMatters", uiconfigs.MatterLanding.Label18MenuText);
|
||||
sMatterInformationText = sMatterInformationText.replace("title='My Matters'", "title='" + uiconfigs.MatterLanding.Label18MenuText + "'");
|
||||
|
||||
|
||||
/* Remove the hierarchy div if it already exists */
|
||||
var hierarchyDiv = $("#documentLibraryTitle");
|
||||
if (hierarchyDiv) {
|
||||
$(hierarchyDiv).remove();
|
||||
}
|
||||
|
||||
$("#matterInfo").html(sMatterInformationText);
|
||||
$("#matterInfo").parent().append(oMatterLandingHtmlConstants.hierarchyHtml.replace(/@@MatterName/g, oMatterLandingCommonObjects.hierarchyLibraryName));
|
||||
|
||||
/* Set the task panel html text */
|
||||
var sTaskPanelText = oMatterLandingHtmlConstants.taskSectionHtml;
|
||||
sTaskPanelText = sTaskPanelText.replace("@@LoadingImage", oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
sTaskPanelText = sTaskPanelText.replace("@@TaskLink", listUrl + getMatterName() + libraryNameSuffix.taskSuffix);
|
||||
sTaskPanelText = sTaskPanelText.replace("title='Task'> Task </div>", "title='" + uiconfigs.MatterLanding.Label14TaskeTitleText + "'> "+ uiconfigs.MatterLanding.Label14TaskeTitleText+" </div>");
|
||||
sTaskPanelText = sTaskPanelText.replace("View / Edit </a>", "" + uiconfigs.MatterLanding.Label17EditTitleText + "</a>");
|
||||
sTaskPanelText = sTaskPanelText.replace("title= \"View / Edit\"" , "title=\"" + uiconfigs.MatterLanding.Label17EditTitleText+ "\"");
|
||||
|
||||
var listUrl = _spPageContextInfo.webAbsoluteUrl + "/Lists/";
|
||||
|
||||
$("#taskPane").html(sTaskPanelText);
|
||||
|
||||
noItemsMessage.noTasks = uiconfigs.MatterLanding.ErrMsg1NoTask;
|
||||
noItemsMessage.errorMsgTask = uiconfigs.MatterLanding.ErrMsg2FetchTask;
|
||||
noItemsMessage.errorMsgCalendar = uiconfigs.MatterLanding.ErrMsg3CreateEvent;
|
||||
noItemsMessage.noEvents = uiconfigs.MatterLanding.ErrMsg4ActiveEvents;
|
||||
noItemsMessage.noDescription = uiconfigs.MatterLanding.ErrMsg5NoMatterDescription;
|
||||
noItemsMessage.errorRetrieveFails = uiconfigs.MatterLanding.ErrMsg6ForPinUnpinMatters;
|
||||
noItemsMessage.errorMatterInfo = uiconfigs.MatterLanding.ErrMsg7MatterInformation;
|
||||
noItemsMessage.errorMatterDesc = uiconfigs.MatterLanding.ErrMsg8MatterDescription;
|
||||
noItemsMessage.errorPinUnpinData = uiconfigs.MatterLanding.ErrMsg9NoPinUnpinMatter;
|
||||
|
||||
oPropertyNameMapping.MatterName = uiconfigs.MatterLanding.Label1MenuText;
|
||||
oPropertyNameMapping.ClientName = uiconfigs.MatterLanding.Label3Tab1Column1Text;
|
||||
oPropertyNameMapping.AreaOfLaw = uiconfigs.MatterLanding.Label6Tab1Column4Text;
|
||||
oPropertyNameMapping.ClientID = uiconfigs.MatterLanding.Label10Section1Text;
|
||||
oPropertyNameMapping.MatterID = uiconfigs.MatterLanding.Label9Section1Text;
|
||||
oPropertyNameMapping.PracticeGroup= uiconfigs.MatterLanding.Label5Tab1Column3Text;
|
||||
oPropertyNameMapping.ResponsibleAttorney = uiconfigs.MatterLanding.Label7Tab1Column5Text;
|
||||
oPropertyNameMapping.Description = uiconfigs.MatterLanding.Label11Section1Text;
|
||||
|
||||
oGlobalConstants.sMatterIdAndClientIdTitle = uiconfigs.MatterLanding.Label4Tab1Column2Text;
|
||||
|
||||
/* Set the matter information html */
|
||||
var pinChunk = oMatterLandingHtmlConstants.pinHtml.replace("@@PinIcon", oCommonLinks.sCatalogSite + oMatterLandingCommonObjects.oMatterCenterAssetsLocation + oMatterLandingAssetsLocation.pinIcon);
|
||||
pinChunk = pinChunk.replace("@@LoadingImage", oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
pinChunk = pinChunk.replace("@@UnpinIcon", oCommonLinks.sCatalogSite + oMatterLandingCommonObjects.oMatterCenterAssetsLocation + oMatterLandingAssetsLocation.unPinIcon);
|
||||
var sMatterInformationText = oMatterLandingHtmlConstants.matterInfoHtml.replace("@@PinChunk", pinChunk);
|
||||
sMatterInformationText = sMatterInformationText.replace("@@FindMatterUrl", oFooterLinks.dashboard + oFooterLinks.matterDocumentsQueryString);
|
||||
sMatterInformationText = sMatterInformationText.replace("@@MatterUrl", _spPageContextInfo.siteServerRelativeUrl + "/" + getMatterName() + oGlobalConstants.sUrlExtension);
|
||||
sMatterInformationText = sMatterInformationText.replace(/@@MatterName/g, documentLibraryName);
|
||||
sMatterInformationText = sMatterInformationText.replace(/@@LoadingImage/g, oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
sMatterInformationText = sMatterInformationText.replace(/@@PopupCloseIcon/g, oCommonLinks.sCatalogSite + oMatterLandingCommonObjects.oMatterCenterAssetsLocation + oMatterLandingAssetsLocation.popupCloseIcon);
|
||||
$("#matterInfo").html(sMatterInformationText);
|
||||
$("#matterInfo").parent().append(oMatterLandingHtmlConstants.hierarchyHtml.replace(/@@MatterName/g, oMatterLandingCommonObjects.hierarchyLibraryName));
|
||||
/* Set the calendar panel html text */
|
||||
var sCalendarPanelText = oMatterLandingHtmlConstants.calendarSectionHtml;
|
||||
sCalendarPanelText = sCalendarPanelText.replace("@@LoadingImage", oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
sCalendarPanelText = sCalendarPanelText.replace("@@TaskLink", listUrl + getMatterName() + libraryNameSuffix.calendarSuffix);
|
||||
sCalendarPanelText = sCalendarPanelText.replace("Calendar Events </div>", "" + uiconfigs.MatterLanding.Label15CalenderTitleText + " </div>");
|
||||
sCalendarPanelText = sCalendarPanelText.replace("title= \"View / Edit\"" , "title=\"" + uiconfigs.MatterLanding.Label17EditTitleText+ "\"");
|
||||
sCalendarPanelText = sCalendarPanelText.replace("View / Edit </a>", "" + uiconfigs.MatterLanding.Label17EditTitleText + "</a>");
|
||||
|
||||
/* Set the task panel html text */
|
||||
var sTaskPanelText = oMatterLandingHtmlConstants.taskSectionHtml;
|
||||
sTaskPanelText = sTaskPanelText.replace("@@LoadingImage", oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
sTaskPanelText = sTaskPanelText.replace("@@TaskLink", listUrl + getMatterName() + libraryNameSuffix.taskSuffix);
|
||||
$("#taskPane").html(sTaskPanelText);
|
||||
|
||||
/* Set the calendar panel html text */
|
||||
var sCalendarPanelText = oMatterLandingHtmlConstants.calendarSectionHtml;
|
||||
sCalendarPanelText = sCalendarPanelText.replace("@@LoadingImage", oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage);
|
||||
sCalendarPanelText = sCalendarPanelText.replace("@@TaskLink", listUrl + getMatterName() + libraryNameSuffix.calendarSuffix);
|
||||
$("#calendarPane").html(sCalendarPanelText);
|
||||
$("#calendarPane").html(sCalendarPanelText);
|
||||
|
||||
/* Set the rss panel html text */
|
||||
var sRSSText = oMatterLandingHtmlConstants.rssSectionHtml;
|
||||
sRSSText = sRSSText.replace("Related News (RSS) </div>", "" + uiconfigs.MatterLanding.Label16RSSFeedTitleText+ "</a>");
|
||||
sRSSText = sRSSText.replace("title='Related News (RSS)'", "title='" + uiconfigs.MatterLanding.Label16RSSFeedTitleText + "'");
|
||||
|
||||
/* Set the rss panel html text */
|
||||
var sRSSText = oMatterLandingHtmlConstants.rssSectionHtml;
|
||||
$("#rssPane").html(sRSSText);
|
||||
|
||||
/* Add loading image to OneNote section */
|
||||
$("#oneNotePane").html(oMatterLandingHtmlConstants.oneNoteLoadingHtml.replace("@@LoadingImage", oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage));
|
||||
$("#rssPane").html(sRSSText);
|
||||
|
||||
/* Add loading image to OneNote section */
|
||||
$("#oneNotePane").html(oMatterLandingHtmlConstants.oneNoteLoadingHtml.replace("@@LoadingImage",
|
||||
oCommonLinks.sCatalogSite + oCommonLinks.oMatterCenterAssetsLocation + oCommonAssets.loadingImage));
|
||||
// Cache the pin element
|
||||
oElement = $("#PinMatter");
|
||||
$(".matterDescriptionTitle, .matterProfileTitle").click(function () {
|
||||
var className = $(this)[0].className;
|
||||
if (-1 !== className.indexOf("matterDescriptionTitle")) {
|
||||
$(".matterDescriptionTitle").removeClass("changeSection");
|
||||
$(".matterProfileTitle").addClass("changeSection");
|
||||
$(".matterDescriptionBody").removeClass("hide");
|
||||
$(".matterProfileBody").addClass("hide");
|
||||
LogEvent(appInsightsMatterLandingText + appInsightsOperations.MatterDescription);
|
||||
}
|
||||
else {
|
||||
$(".matterDescriptionTitle").addClass("changeSection");
|
||||
$(".matterProfileTitle").removeClass("changeSection");
|
||||
$(".matterDescriptionBody").addClass("hide");
|
||||
$(".matterProfileBody").removeClass("hide");
|
||||
LogEvent(appInsightsMatterLandingText + appInsightsOperations.MatterInfo);
|
||||
}
|
||||
});
|
||||
|
||||
$("#matterLink").text(uiconfigs.MatterLanding.Menu1Option1Text);
|
||||
$("#matterLink").attr('title', uiconfigs.MatterLanding.Menu1Option1Text);
|
||||
|
||||
$("#documentLink").text(uiconfigs.MatterLanding.Menu1Option2Text);
|
||||
$("#documentLink").attr('title', uiconfigs.MatterLanding.Menu1Option2Text);
|
||||
|
||||
$("#settingsLink").text(uiconfigs.MatterLanding.Menu1Option3Text);
|
||||
$("#settingsLink").attr('title', uiconfigs.MatterLanding.Menu1Option3Text);
|
||||
|
||||
$(".iconText .mainText")[0].innerHTML = uiconfigs.MatterLanding.MenuImageUpperCaption;
|
||||
$(".iconText .subText")[0].innerHTML = uiconfigs.MatterLanding.MenuImageLowerCaption;
|
||||
|
||||
//$("#searchText").attr('placeholder', uiconfigs.MatterLanding.Menu1Option3Text);
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
// Replace query string key with value
|
||||
|
@ -751,7 +829,7 @@ function getUserData() {
|
|||
arrResponsibleAttorney = trimEndChar(htmlDecode(oPinProperties.ResponsibleAttorney.trim()), ";").split(";");
|
||||
}
|
||||
arrUserNames = $.merge(arrTeamMembers, arrResponsibleAttorney);
|
||||
if (oPinProperties.BlockedUsers) {
|
||||
if (oPinProperties.BlockedUsers && trimEndChar(htmlDecode(oPinProperties.BlockedUsers.trim()), ";").length > 0) {
|
||||
arrBlockUserName = trimEndChar(htmlDecode(oPinProperties.BlockedUsers.trim()), ";").split(";");
|
||||
arrBlockUserName = unique($.map(arrBlockUserName, function (item) { return item.trim(); }));
|
||||
}
|
||||
|
@ -861,7 +939,7 @@ function displayUserDetails(oUserArray, IsTeam) {
|
|||
// Function to check if user is exist of SharePoint Group
|
||||
function checkUserExistsInSharePointGroup() {
|
||||
"use strict";
|
||||
var sUrl = oCommonLinks.sCatalogSite + oGlobalConstants.sEffectivePermissionUrl.replace("{0}", oGlobalConstants.sAppName).replace("{1}", oGlobalConstants.sSendMailListName);
|
||||
var sUrl = oCommonLinks.sCatalogSite + oGlobalConstants.sEffectivePermissionUrl.replace("{0}", oGlobalConstants.matterCenterMatterList);
|
||||
$.ajax({
|
||||
url: sUrl,
|
||||
type: "GET",
|
||||
|
@ -1421,6 +1499,10 @@ function pinUnpinMatter(event) {
|
|||
"use strict";
|
||||
$(".pinIcon .loadingIcon").removeClass("hide");
|
||||
$("#PinMatter").addClass("hide");
|
||||
// if( $(".pinImg").cl)
|
||||
// $(".pinImg").addClass("hide");
|
||||
// $(".unPinImg").removeClass("hide");
|
||||
|
||||
if (oElement) {
|
||||
if (oGlobalConstants.sOperationPin === $(oElement).attr("title")) {
|
||||
LogEvent(appInsightsMatterLandingText + appInsightsOperations.Pin);
|
||||
|
@ -1468,7 +1550,7 @@ function urlExists() {
|
|||
// Get the link from the data-href attribute
|
||||
var oOneNoteLink = $("#oneNotePane"), arrOneNoteURL;
|
||||
var sDocumentLibraryOriginalName = getMatterName();
|
||||
var sOneNoteURL = _spPageContextInfo.siteServerRelativeUrl + oGlobalConstants.wopiFrameUrl + _spPageContextInfo.siteServerRelativeUrl + "/" + sDocumentLibraryOriginalName + libraryNameSuffix.oneNoteSuffix + "/" + sDocumentLibraryOriginalName + "/" + sDocumentLibraryOriginalName + oGlobalConstants.oneNoteExtension;
|
||||
var sOneNoteURL = _spPageContextInfo.siteServerRelativeUrl + oGlobalConstants.wopiFrameUrl + _spPageContextInfo.siteServerRelativeUrl + "/" + sDocumentLibraryOriginalName + libraryNameSuffix.oneNoteSuffix + "/" + documentLibraryName + "/" + sDocumentLibraryOriginalName + oGlobalConstants.oneNoteExtension;
|
||||
if (sOneNoteURL && "" !== sOneNoteURL) {
|
||||
arrOneNoteURL = sOneNoteURL.split("sourcedoc=");
|
||||
if (arrOneNoteURL.length && arrOneNoteURL[1]) {
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|AnyCPU">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>AnyCPU</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|AnyCPU">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>AnyCPU</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>ad4204fd-2f59-4a0c-868a-4a9a3c602df1</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFrameworkIdentifier>Deployment</TargetFrameworkIdentifier>
|
||||
<TargetFrameworkVersion>1.0</TargetFrameworkVersion>
|
||||
<PrepareForBuildDependsOn>
|
||||
</PrepareForBuildDependsOn>
|
||||
</PropertyGroup>
|
||||
<Import Condition=" Exists('Deployment.targets') " Project="Deployment.targets" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
|
||||
<!-- vertag<:>start tokens<:>maj.min -->
|
||||
<Import Condition=" Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Deployment\1.1\DeploymentProject.targets') " Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Deployment\1.1\DeploymentProject.targets" />
|
||||
<!-- vertag<:>end -->
|
||||
<ItemGroup>
|
||||
<Folder Include="Tools\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Deployment.targets">
|
||||
<Visible>False</Visible>
|
||||
</None>
|
||||
<Content Include="Scripts\Deploy-AzureResourceGroup.ps1" />
|
||||
<None Include="Scripts\Create-AzureStorageTable.ps1" />
|
||||
<None Include="Scripts\KeyVaultSecret.ps1" />
|
||||
<None Include="Scripts\ManageTableStorageWithCsvFile\ManageTableStorageWithCsvFile.psd1" />
|
||||
<None Include="Scripts\ManageTableStorageWithCsvFile\ManageTableStorageWithCsvFile.psm1" />
|
||||
<None Include="Templates\template.json" />
|
||||
<None Include="Templates\template.parameters.json" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Tools\AzCopy.exe" />
|
||||
<Content Include="Tools\Microsoft.Data.Edm.dll">
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="Tools\Microsoft.Data.OData.dll">
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="Tools\Microsoft.Data.Services.Client.dll">
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="Tools\Microsoft.WindowsAzure.Storage.dll">
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
<Content Include="Tools\Microsoft.WindowsAzure.Storage.DataMovement.dll">
|
||||
<Visible>False</Visible>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<Target Name="GetReferenceAssemblyPaths" />
|
||||
</Project>
|
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<SkipCopyBuildProduct>true</SkipCopyBuildProduct>
|
||||
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
|
||||
<TargetRuntime>None</TargetRuntime>
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">obj\</BaseIntermediateOutputPath>
|
||||
<BaseIntermediateOutputPath Condition=" !HasTrailingSlash('$(BaseIntermediateOutputPath)') ">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
|
||||
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
|
||||
<ProjectReferencesOutputPath Condition=" '$(ProjectReferencesOutputPath)' == '' ">$(IntermediateOutputPath)ProjectReferences</ProjectReferencesOutputPath>
|
||||
<ProjectReferencesOutputPath Condition=" !HasTrailingSlash('$(ProjectReferencesOutputPath)') ">$(ProjectReferencesOutputPath)\</ProjectReferencesOutputPath>
|
||||
<StageArtifacts Condition=" '$(StageArtifacts)' == '' ">true</StageArtifacts>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<DefineCommonItemSchemas>false</DefineCommonItemSchemas>
|
||||
<DefineCommonCapabilities>false</DefineCommonCapabilities>
|
||||
</PropertyGroup>
|
||||
|
||||
<ProjectExtensions>
|
||||
<ProjectCapabilities>
|
||||
<DeploymentProject />
|
||||
</ProjectCapabilities>
|
||||
</ProjectExtensions>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<Content>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<None>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</None>
|
||||
<ProjectReference>
|
||||
<Private>false</Private>
|
||||
<Targets>Build</Targets>
|
||||
</ProjectReference>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<Target Name="CreateManifestResourceNames" />
|
||||
|
||||
<PropertyGroup>
|
||||
<StageArtifactsDependsOn>
|
||||
_GetDeploymentProjectContent;
|
||||
_CalculateContentOutputRelativePaths;
|
||||
_GetReferencedProjectsOutput;
|
||||
_CalculateArtifactStagingDirectory;
|
||||
_CopyOutputToArtifactStagingDirectory;
|
||||
</StageArtifactsDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="_CopyOutputToArtifactStagingDirectory">
|
||||
<Copy SourceFiles="@(DeploymentProjectContentOutput)" DestinationFiles="$(ArtifactStagingDirectory)\$(MSBuildProjectName)%(RelativePath)" />
|
||||
<Copy SourceFiles="@(BuildProjectReferencesOutput)" DestinationFiles="$(ArtifactStagingDirectory)%(ProjectName)\%(RecursiveDir)%(FileName)%(Extension)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_GetDeploymentProjectContent">
|
||||
<MSBuild Projects="$(MSBuildProjectFile)" Targets="ContentFilesProjectOutputGroup">
|
||||
<Output TaskParameter="TargetOutputs" ItemName="DeploymentProjectContentOutput" />
|
||||
</MSBuild>
|
||||
</Target>
|
||||
|
||||
<Target Name="_GetReferencedProjectsOutput">
|
||||
<PropertyGroup>
|
||||
<MsBuildProperties>Configuration=$(Configuration);Platform=$(Platform)</MsBuildProperties>
|
||||
</PropertyGroup>
|
||||
|
||||
<MSBuild Projects="@(ProjectReference)"
|
||||
BuildInParallel="$(BuildInParallel)"
|
||||
Properties="$(MsBuildProperties)"
|
||||
Targets="%(ProjectReference.Targets)" />
|
||||
|
||||
<ItemGroup>
|
||||
<BuildProjectReferencesOutput Include="%(ProjectReference.IncludeFilePath)">
|
||||
<ProjectName>$([System.IO.Path]::GetFileNameWithoutExtension('%(ProjectReference.Identity)'))</ProjectName>
|
||||
</BuildProjectReferencesOutput>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_CalculateArtifactStagingDirectory" Condition=" '$(ArtifactStagingDirectory)'=='' ">
|
||||
<PropertyGroup>
|
||||
<ArtifactStagingDirectory Condition=" '$(OutDir)'!='' ">$(OutDir)</ArtifactStagingDirectory>
|
||||
<ArtifactStagingDirectory Condition=" '$(ArtifactStagingDirectory)'=='' ">$(OutputPath)</ArtifactStagingDirectory>
|
||||
<ArtifactStagingDirectory Condition=" !HasTrailingSlash('$(ArtifactStagingDirectory)') ">$(ArtifactStagingDirectory)\</ArtifactStagingDirectory>
|
||||
<ArtifactStagingDirectory>$(ArtifactStagingDirectory)staging\</ArtifactStagingDirectory>
|
||||
<ArtifactStagingDirectory Condition=" '$(TF_Build)' == 'True' ">$(Build_StagingDirectory)</ArtifactStagingDirectory>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
<!-- Appends each of the deployment project's content output files with metadata indicating its relative path from the deployment project's folder. -->
|
||||
<Target Name="_CalculateContentOutputRelativePaths"
|
||||
Outputs="%(DeploymentProjectContentOutput.Identity)">
|
||||
<PropertyGroup>
|
||||
<_OriginalIdentity>%(DeploymentProjectContentOutput.Identity)</_OriginalIdentity>
|
||||
<_RelativePath>$(_OriginalIdentity.Replace('$(MSBuildProjectDirectory)', ''))</_RelativePath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<DeploymentProjectContentOutput>
|
||||
<RelativePath>$(_RelativePath)</RelativePath>
|
||||
</DeploymentProjectContentOutput>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="CoreCompile" />
|
||||
|
||||
<PropertyGroup>
|
||||
<StageArtifactsAfterTargets Condition=" '$(StageArtifacts)' == 'true' ">
|
||||
PrepareForRun
|
||||
</StageArtifactsAfterTargets>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="StageArtifacts" DependsOnTargets="$(StageArtifactsDependsOn)" AfterTargets="$(StageArtifactsAfterTargets)"/>
|
||||
|
||||
<!-- Custom target to clean up local deployment staging files -->
|
||||
<Target Name="DeleteBinObjFolders" BeforeTargets="Clean">
|
||||
<RemoveDir Directories="$(OutputPath)" />
|
||||
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -0,0 +1,23 @@
|
|||
Function Create-AzureTableStorage
|
||||
{
|
||||
[CmdletBinding(SupportsShouldProcess=$true)]
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$ResourceGroupName,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$StorageAccountName,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$StorageAccountKey,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$TableName
|
||||
|
||||
)
|
||||
|
||||
Import-Module "$PSScriptRoot\ManageTableStorageWithCsvFile\ManageTableStorageWithCsvFile.psm1"
|
||||
$Path = "$PSScriptRoot\ManageTableStorageWithCsvFile\AzureStorageTable.csv"
|
||||
Get-Module -Name ManageTableStorageWithCsvFile
|
||||
Get-Command -Module ManageTableStorageWithCsvFile
|
||||
Import-AzureTableStorage -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -TableName $TableName -Path $Path
|
||||
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
#Requires -Version 3.0
|
||||
#Requires -Module AzureRM.Resources
|
||||
#Requires -Module Azure.Storage
|
||||
|
||||
Param(
|
||||
[string] [Parameter(Mandatory=$true)] $ResourceGroupLocation,
|
||||
[string] $ResourceGroupName = 'Microsoft.Legal.MatterCenter',
|
||||
[switch] $UploadArtifacts,
|
||||
[string] $StorageAccountName,
|
||||
[string] $StorageAccountResourceGroupName,
|
||||
[string] $StorageContainerName = $ResourceGroupName.ToLowerInvariant() + '-stageartifacts',
|
||||
[string] $TemplateFile = '..\Templates\template.json',
|
||||
[string] $TemplateParametersFile = '..\Templates\template.parameters.json',
|
||||
[string] $ArtifactStagingDirectory = '..\bin\Debug\staging',
|
||||
[string] $AzCopyPath = '..\Tools\AzCopy.exe',
|
||||
[string] $DSCSourceFolder = '..\DSC'
|
||||
)
|
||||
|
||||
Import-Module Azure -ErrorAction SilentlyContinue
|
||||
|
||||
try {
|
||||
[Microsoft.Azure.Common.Authentication.AzureSession]::ClientFactory.AddUserAgent("VSAzureTools-$UI$($host.name)".replace(" ","_"), "2.8")
|
||||
} catch { }
|
||||
|
||||
Set-StrictMode -Version 3
|
||||
|
||||
$OptionalParameters = New-Object -TypeName Hashtable
|
||||
$TemplateFile = [System.IO.Path]::Combine($PSScriptRoot, $TemplateFile)
|
||||
$TemplateParametersFile = [System.IO.Path]::Combine($PSScriptRoot, $TemplateParametersFile)
|
||||
|
||||
if ($UploadArtifacts) {
|
||||
# Convert relative paths to absolute paths if needed
|
||||
$AzCopyPath = [System.IO.Path]::Combine($PSScriptRoot, $AzCopyPath)
|
||||
$ArtifactStagingDirectory = [System.IO.Path]::Combine($PSScriptRoot, $ArtifactStagingDirectory)
|
||||
$DSCSourceFolder = [System.IO.Path]::Combine($PSScriptRoot, $DSCSourceFolder)
|
||||
|
||||
Set-Variable ArtifactsLocationName '_artifactsLocation' -Option ReadOnly -Force
|
||||
Set-Variable ArtifactsLocationSasTokenName '_artifactsLocationSasToken' -Option ReadOnly -Force
|
||||
|
||||
$OptionalParameters.Add($ArtifactsLocationName, $null)
|
||||
$OptionalParameters.Add($ArtifactsLocationSasTokenName, $null)
|
||||
|
||||
# Parse the parameter file and update the values of artifacts location and artifacts location SAS token if they are present
|
||||
$JsonContent = Get-Content $TemplateParametersFile -Raw | ConvertFrom-Json
|
||||
$JsonParameters = $JsonContent | Get-Member -Type NoteProperty | Where-Object {$_.Name -eq "parameters"}
|
||||
|
||||
if ($JsonParameters -eq $null) {
|
||||
$JsonParameters = $JsonContent
|
||||
}
|
||||
else {
|
||||
$JsonParameters = $JsonContent.parameters
|
||||
}
|
||||
|
||||
$JsonParameters | Get-Member -Type NoteProperty | ForEach-Object {
|
||||
$ParameterValue = $JsonParameters | Select-Object -ExpandProperty $_.Name
|
||||
|
||||
if ($_.Name -eq $ArtifactsLocationName -or $_.Name -eq $ArtifactsLocationSasTokenName) {
|
||||
$OptionalParameters[$_.Name] = $ParameterValue.value
|
||||
}
|
||||
}
|
||||
|
||||
$StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $StorageAccountResourceGroupName -Name $StorageAccountName).Key1
|
||||
|
||||
$StorageAccountContext = (Get-AzureRmStorageAccount -ResourceGroupName $StorageAccountResourceGroupName -Name $StorageAccountName).Context
|
||||
|
||||
# Create DSC configuration archive
|
||||
if (Test-Path $DSCSourceFolder) {
|
||||
Add-Type -Assembly System.IO.Compression.FileSystem
|
||||
$ArchiveFile = Join-Path $ArtifactStagingDirectory "dsc.zip"
|
||||
Remove-Item -Path $ArchiveFile -ErrorAction SilentlyContinue
|
||||
[System.IO.Compression.ZipFile]::CreateFromDirectory($DSCSourceFolder, $ArchiveFile)
|
||||
}
|
||||
|
||||
# Generate the value for artifacts location if it is not provided in the parameter file
|
||||
$ArtifactsLocation = $OptionalParameters[$ArtifactsLocationName]
|
||||
if ($ArtifactsLocation -eq $null) {
|
||||
$ArtifactsLocation = $StorageAccountContext.BlobEndPoint + $StorageContainerName
|
||||
$OptionalParameters[$ArtifactsLocationName] = $ArtifactsLocation
|
||||
}
|
||||
|
||||
# Use AzCopy to copy files from the local storage drop path to the storage account container
|
||||
& $AzCopyPath """$ArtifactStagingDirectory""", $ArtifactsLocation, "/DestKey:$StorageAccountKey", "/S", "/Y", "/Z:$env:LocalAppData\Microsoft\Azure\AzCopy\$ResourceGroupName"
|
||||
if ($LASTEXITCODE -ne 0) { return }
|
||||
|
||||
# Generate the value for artifacts location SAS token if it is not provided in the parameter file
|
||||
$ArtifactsLocationSasToken = $OptionalParameters[$ArtifactsLocationSasTokenName]
|
||||
if ($ArtifactsLocationSasToken -eq $null) {
|
||||
# Create a SAS token for the storage container - this gives temporary read-only access to the container
|
||||
$ArtifactsLocationSasToken = New-AzureStorageContainerSASToken -Container $StorageContainerName -Context $StorageAccountContext -Permission r -ExpiryTime (Get-Date).AddHours(4)
|
||||
$ArtifactsLocationSasToken = ConvertTo-SecureString $ArtifactsLocationSasToken -AsPlainText -Force
|
||||
$OptionalParameters[$ArtifactsLocationSasTokenName] = $ArtifactsLocationSasToken
|
||||
}
|
||||
}
|
||||
|
||||
# Create or update the resource group using the specified template file and template parameters file
|
||||
New-AzureRmResourceGroup -Name $ResourceGroupName -Location $ResourceGroupLocation -Verbose -Force -ErrorAction Stop
|
||||
|
||||
New-AzureRmResourceGroupDeployment -Name ((Get-ChildItem $TemplateFile).BaseName + '-' + ((Get-Date).ToUniversalTime()).ToString('MMdd-HHmm')) `
|
||||
-ResourceGroupName $ResourceGroupName `
|
||||
-TemplateFile $TemplateFile `
|
||||
-TemplateParameterFile $TemplateParametersFile `
|
||||
@OptionalParameters `
|
||||
-Force -Verbose
|
||||
|
||||
$custScriptFile = [System.IO.Path]::Combine($PSScriptRoot, 'MatterCenter-Deploy.ps1')
|
||||
Invoke-Expression $custScriptFile
|
||||
|
||||
Invoke-Expression "$PSScriptRoot/Create-AzureStorageTable.ps1"
|
||||
|
||||
Create-AzureTableStorage -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -TableName "MatterCenterConfiguration"
|
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# KeyVaultSecret.ps1
|
||||
#
|
||||
|
||||
Param(
|
||||
[string] [Parameter(Mandatory=$true)] $AppKey,
|
||||
[string] [Parameter(Mandatory=$true)] $VaultName,
|
||||
[string] [Parameter(Mandatory=$true)] $secretvalue
|
||||
)
|
||||
|
||||
Login-AzureRmAccount
|
||||
|
||||
$secretvalue = ConvertTo-SecureString $AppKey -AsPlainText -Force
|
||||
$secret = Set-AzureKeyVaultSecret -VaultName $VaultName -Name 'General-AppKey' -SecretValue $secretvalue
|
|
@ -0,0 +1,479 @@
|
|||
"PartitionKey","RowKey","ConfigGroup","Key","Value"
|
||||
MatterCenterConfig,RowKey001,CreateMatter,Tab1HeaderTitle,Step 1: Select a client and provide basic information for your new matter.
|
||||
MatterCenterConfig,RowKey002,CreateMatter,Tab2HeaderTitle,Step 2: Confirm that a conflict check was conducted and specify who should be conflicted from or given access to this matter.
|
||||
MatterCenterConfig,RowKey003,CreateMatter,Tab3HeaderTitle,"Step 3: When you've entered all relevant information for your new matter, create the matter and notify your team."
|
||||
MatterCenterConfig,RowKey004,CreateMatter,ButtonNextText,Next
|
||||
MatterCenterConfig,RowKey005,CreateMatter,ButtonPreviousText,Previous
|
||||
MatterCenterConfig,RowKey006,CreateMatter,ButtonCreateText,Create
|
||||
MatterCenterConfig,RowKey007,CreateMatter,Tab2NoSearchResultText,No Results Found
|
||||
MatterCenterConfig,RowKey008,CreateMatter,Tab1Type1Header1Label1,Select a Practice Group
|
||||
MatterCenterConfig,RowKey009,CreateMatter,Tab1Type1Footer1Label1,Please select primary matter type before you save.
|
||||
MatterCenterConfig,RowKey010,CreateMatter,Tab1SiteColumn1Caption,Area of Law
|
||||
MatterCenterConfig,RowKey011,CreateMatter,Tab1SiteColumn2Caption,Sub Area of Law (select matter type)
|
||||
MatterCenterConfig,RowKey012,CreateMatter,Tab1SiteColumn3Caption,Matter Type
|
||||
MatterCenterConfig,RowKey013,CreateMatter,Tab1Type1Label1,select primary matter type
|
||||
MatterCenterConfig,RowKey014,CreateMatter,Tab1ButtonAddTitle,Add
|
||||
MatterCenterConfig,RowKey015,CreateMatter,Tab1ButtonRemoveTitle,Remove
|
||||
MatterCenterConfig,RowKey016,CreateMatter,MenuImageTitle,Matter Center menu
|
||||
MatterCenterConfig,RowKey017,CreateMatter,MenuImageCaption,menu
|
||||
MatterCenterConfig,RowKey018,CreateMatter,Tab1ButtonCloseTitle,Close
|
||||
MatterCenterConfig,RowKey019,CreateMatter,Tab1ButtonSelectType,Select Type
|
||||
MatterCenterConfig,RowKey020,CreateMatter,Tab1ImageLoadingAltText,Loading...
|
||||
MatterCenterConfig,RowKey021,CreateMatter,MenuItem1LinkTitle,Home
|
||||
MatterCenterConfig,RowKey022,CreateMatter,MenuItem2LinkTitle,Search matters
|
||||
MatterCenterConfig,RowKey023,CreateMatter,MenuItem3LinkTitle,Search documents
|
||||
MatterCenterConfig,RowKey024,CreateMatter,MenuItem1LinkText,Home
|
||||
MatterCenterConfig,RowKey025,CreateMatter,MenuItem2LinkText,Matters
|
||||
MatterCenterConfig,RowKey026,CreateMatter,MenuItem3LinkText,Documents
|
||||
MatterCenterConfig,RowKey027,CreateMatter,ButtonSaveText,Save
|
||||
MatterCenterConfig,RowKey028,CreateMatter,MenuImageOpenTitle,Open App Switcher
|
||||
MatterCenterConfig,RowKey029,CreateMatter,MenuImageCloseTitle,Close App Switcher
|
||||
MatterCenterConfig,RowKey030,CreateMatter,ButtonDeleteText,Delete
|
||||
MatterCenterConfig,RowKey031,CreateMatter,Tab1LeftButtonAltText,Left
|
||||
MatterCenterConfig,RowKey032,CreateMatter,Tab1RighttButtonAltText,Right
|
||||
MatterCenterConfig,RowKey033,CreateMatter,Tab3SectionText,"You have entered all of the necessary information to create this matter. After you click Create and Notify, the matter will be created and all team members will receive an email containing a link to this matter's location. "
|
||||
MatterCenterConfig,RowKey034,CreateMatter,LabelNotificationPopupForExternalSharingText,The following recipent is outside your organization. Would you still like to invite them to the Assigned Team?
|
||||
MatterCenterConfig,RowKey035,CreateMatter,RemoveLinkText,Remove
|
||||
MatterCenterConfig,RowKey036,CreateMatter,ConfirmLinkText,Confirm
|
||||
MatterCenterConfig,RowKey037,CreateMatter,Tab1Dropdown1Label,Client Name
|
||||
MatterCenterConfig,RowKey038,CreateMatter,Tab1Header,Open Matter
|
||||
MatterCenterConfig,RowKey039,CreateMatter,Tab2Header,Assign Permission
|
||||
MatterCenterConfig,RowKey040,CreateMatter,Tab3Header,Create and Notify
|
||||
MatterCenterConfig,RowKey041,CreateMatter,Tab2Checkbox1Lebal,Conflict check conducted (must be complete prior to provisioning matter)
|
||||
MatterCenterConfig,RowKey042,CreateMatter,Tab2Textbox1Label,Who conducted the conflict check?
|
||||
MatterCenterConfig,RowKey043,CreateMatter,Tab2DateLabel,Date Conducted
|
||||
MatterCenterConfig,RowKey044,CreateMatter,Tab2RadioButton1Label,Conflict Identified?
|
||||
MatterCenterConfig,RowKey045,CreateMatter,Tab2RadioButton1Option1,Yes
|
||||
MatterCenterConfig,RowKey046,CreateMatter,Tab2RadioButton1Option2,No
|
||||
MatterCenterConfig,RowKey047,CreateMatter,Tab2Textbox2Label,Conflicted Users
|
||||
MatterCenterConfig,RowKey048,CreateMatter,Tab1Textbox1Label,Client ID
|
||||
MatterCenterConfig,RowKey049,CreateMatter,Tab2Textbox2PlaceHolder,Enter and select names
|
||||
MatterCenterConfig,RowKey050,CreateMatter,Tab2RadioButton2Label,Would you like this matter to be secured only to the assigned team?
|
||||
MatterCenterConfig,RowKey051,CreateMatter,Tab2RadioButton2Option1,Yes
|
||||
MatterCenterConfig,RowKey052,CreateMatter,Tab2RadioButton2Option2,No
|
||||
MatterCenterConfig,RowKey053,CreateMatter,Tab2TeamHeader,Assign Team
|
||||
MatterCenterConfig,RowKey054,CreateMatter,Tab2Textbox3Label,Name
|
||||
MatterCenterConfig,RowKey055,CreateMatter,Tab2Textbox3PlaceHolder,Enter and select names
|
||||
MatterCenterConfig,RowKey056,CreateMatter,Tab2Deopdown1Label,Role
|
||||
MatterCenterConfig,RowKey057,CreateMatter,Tab2Deopdown2Label,Permission Level
|
||||
MatterCenterConfig,RowKey058,CreateMatter,Tab2AddMoreHeaderLabel,Add More Names
|
||||
MatterCenterConfig,RowKey059,CreateMatter,Tab1Textbox2Label,Matter Name
|
||||
MatterCenterConfig,RowKey060,CreateMatter,Tab3CheckBox1Text,Include calendar
|
||||
MatterCenterConfig,RowKey061,CreateMatter,Tab3CheckBox2Text,Include RSS Feeds
|
||||
MatterCenterConfig,RowKey062,CreateMatter,Tab3CheckBox3Text,Include email notification
|
||||
MatterCenterConfig,RowKey063,CreateMatter,Tab3CheckBox4Text,Include Tasks
|
||||
MatterCenterConfig,RowKey064,CreateMatter,Tab3ButtonText,Create and Notify
|
||||
MatterCenterConfig,RowKey065,CreateMatter,Tab1Textbox2PlaceholderText,Enter a name for this matter
|
||||
MatterCenterConfig,RowKey066,CreateMatter,Tab1Textbox3Label,Matter ID
|
||||
MatterCenterConfig,RowKey067,CreateMatter,Tab1Textbox3PlaceholderText,Enter a matter ID
|
||||
MatterCenterConfig,RowKey068,CreateMatter,Tab1Textbox4Label,Matter Description
|
||||
MatterCenterConfig,RowKey069,CreateMatter,Tab1Textbox4PlaceholderText,Enter a brief description of the matter
|
||||
MatterCenterConfig,RowKey070,CreateMatter,Tab1Textbox5Label,Matter Type (click Select to define the practice group and area of law)
|
||||
MatterCenterConfig,RowKey071,CreateMatter,Tab1DrpDownLevel1DefaultSelectOption,Select a practice group
|
||||
MatterCenterConfig,RowKey072,CreateMatter,Tab1TermsSelectionSearchPlaceHolderText,Search by typing
|
||||
MatterCenterConfig,RowKey073,CreateMatter,Tab1LabelFinalTypeText,MatterType
|
||||
MatterCenterConfig,RowKey074,CreateMatter,Tab1LabelPrimaryTypeText,Please select primary matter type
|
||||
MatterCenterConfig,RowKey075,CreateMatter,Tab1LabelPrimaryTypeBeforeSaveText,Please select primary matter type before you save.
|
||||
MatterCenterConfig,RowKey076,CreateMatter,Tab1ButtonSaveSelectiponText,Save Selections
|
||||
MatterCenterConfig,RowKey081,DocumentDashboard,LinkImageLoadingTitle,Matter Center Home
|
||||
MatterCenterConfig,RowKey082,DocumentDashboard,ImageLoadingAltText,Matter Center
|
||||
MatterCenterConfig,RowKey083,DocumentDashboard,Image1EmailAttachmentText,Email as attachment
|
||||
MatterCenterConfig,RowKey084,DocumentDashboard,Image2EmailAttachmentLinkText,Email as link
|
||||
MatterCenterConfig,RowKey085,DocumentDashboard,Image3EmailRemovalAttachmentLinkText,Remove attachment
|
||||
MatterCenterConfig,RowKey086,DocumentDashboard,SearchDocumentPlaceholderText,"Search by document name, document ID, or keyword"
|
||||
MatterCenterConfig,RowKey087,DocumentDashboard,ImageAdvanceSearchAltText,Drop Down
|
||||
MatterCenterConfig,RowKey088,DocumentDashboard,ImageAdvanceSearchTitle,Advanced search
|
||||
MatterCenterConfig,RowKey089,DocumentDashboard,AdvSearchLabel1Text,Clients
|
||||
MatterCenterConfig,RowKey090,DocumentDashboard,AdvSearchLabel1FunctionParameterText,client
|
||||
MatterCenterConfig,RowKey091,DocumentDashboard,AdvSearchTextbox1PlaceholderText,Enter or select a client
|
||||
MatterCenterConfig,RowKey092,DocumentDashboard,AdvSearchSelectAllLinkText,Select All
|
||||
MatterCenterConfig,RowKey093,DocumentDashboard,AdvSearchSelectNoneLinkText,Select None
|
||||
MatterCenterConfig,RowKey094,DocumentDashboard,AdvSearchbuttonOkText,Ok
|
||||
MatterCenterConfig,RowKey095,DocumentDashboard,AdvSearchbuttonCancelText,Cancel
|
||||
MatterCenterConfig,RowKey096,DocumentDashboard,AdvSearchLabel2Text,Author
|
||||
MatterCenterConfig,RowKey097,DocumentDashboard,AdvSearchTextbox2PlaceholderText,Document Author
|
||||
MatterCenterConfig,RowKey098,DocumentDashboard,AdvSearchLabel3Text,Date
|
||||
MatterCenterConfig,RowKey099,DocumentDashboard,AdvSearchTextbox3PlaceholderText,From
|
||||
MatterCenterConfig,RowKey100,DocumentDashboard,AdvSearchTextbox4PlaceholderText,To
|
||||
MatterCenterConfig,RowKey101,DocumentDashboard,NoSearchResultMsgText,No Results Found
|
||||
MatterCenterConfig,RowKey102,DocumentDashboard,AdvSearchButtonSearchText,Search
|
||||
MatterCenterConfig,RowKey103,DocumentDashboard,Tab1HeaderText,My documents
|
||||
MatterCenterConfig,RowKey104,DocumentDashboard,Tab2HeaderText,All documents
|
||||
MatterCenterConfig,RowKey105,DocumentDashboard,Tab3HeaderText,Pinned documents
|
||||
MatterCenterConfig,RowKey106,DocumentDashboard,ImageMailCartIconTitle,Review the contents of your mail cart and send the selected documents to your OneDrive or via email.
|
||||
MatterCenterConfig,RowKey107,DocumentDashboard,ImageMailCartIconAltText,Mail Cart
|
||||
MatterCenterConfig,RowKey108,DocumentDashboard,LabelSortByText,Sort by:
|
||||
MatterCenterConfig,RowKey109,DocumentDashboard,LabelSortByTitle,Sort By
|
||||
MatterCenterConfig,RowKey110,DocumentDashboard,DrpDownOption1Text,None
|
||||
MatterCenterConfig,RowKey111,DocumentDashboard,DrpDownOption2Text,Alphabetical
|
||||
MatterCenterConfig,RowKey112,DocumentDashboard,DrpDownOption3Text,Created date
|
||||
MatterCenterConfig,RowKey113,DocumentDashboard,DrpDownOption4Text,Modified date
|
||||
MatterCenterConfig,RowKey114,DocumentDashboard,MattersPreLoadingMsgText, Please wait while the Documents load.
|
||||
MatterCenterConfig,RowKey115,DocumentDashboard,AttachmentLoadingText,Loading...
|
||||
MatterCenterConfig,RowKey116,DocumentDashboard,GridColumn1Header,Document
|
||||
MatterCenterConfig,RowKey117,DocumentDashboard,GridColumn2Header,Client
|
||||
MatterCenterConfig,RowKey118,DocumentDashboard,GridColumn3Header,Author
|
||||
MatterCenterConfig,RowKey119,DocumentDashboard,GridColumn4Header,Modified Date
|
||||
MatterCenterConfig,RowKey120,DocumentDashboard,GridColumn5Header,Document ID
|
||||
MatterCenterConfig,RowKey121,DocumentDashboard,GridColumn6Header,Version
|
||||
MatterCenterConfig,RowKey131,Documents,EllipsisLink4Text,Unpin this Document
|
||||
MatterCenterConfig,RowKey132,Documents,StartDatePlaceHolder,Start mm/dd/yyyy
|
||||
MatterCenterConfig,RowKey133,Documents,EndDatePlaceHolder,End mm/dd/yyyy
|
||||
MatterCenterConfig,RowKey134,Documents,ImageWarningTitle,Warning
|
||||
MatterCenterConfig,RowKey135,Documents,ImageWarningAltText,Warning icon
|
||||
MatterCenterConfig,RowKey136,Documents,AttachmentSuccessfullyMsgText,Documents successfully attached.
|
||||
MatterCenterConfig,RowKey137,Documents,AttachmentProgressingText,Attaching
|
||||
MatterCenterConfig,RowKey138,Documents,AttachmentProgressingWarningText,Do not close Matter Center until all documents are attached.
|
||||
MatterCenterConfig,RowKey139,Documents,AttachmentLoadingText,Loading...
|
||||
MatterCenterConfig,RowKey140,Documents,ButtonOkText,Ok
|
||||
MatterCenterConfig,RowKey141,Documents,ImageClearTitle,Clear
|
||||
MatterCenterConfig,RowKey142,Documents,LabelCloseText,Close
|
||||
MatterCenterConfig,RowKey143,Documents,ClearFilterFromLabelText,Clear filters from
|
||||
MatterCenterConfig,RowKey144,Documents,NoFilterMatchMsgTitle,There are no items that match this filter
|
||||
MatterCenterConfig,RowKey145,Documents,NoFilterMatchMsgText,There are no items that match this filter
|
||||
MatterCenterConfig,RowKey146,Documents,LabelDocumentText,documents...
|
||||
MatterCenterConfig,RowKey147,Documents,LabelOfText,of
|
||||
MatterCenterConfig,RowKey148,Documents,ImageClearAltText,Clear filters
|
||||
MatterCenterConfig,RowKey149,Documents,FilterSearchPlaceholderText,Search
|
||||
MatterCenterConfig,RowKey150,Documents,EllipsisDocTypeIconAltText,Document type icon
|
||||
MatterCenterConfig,RowKey151,Documents,FlyoutLable1Text,Matter
|
||||
MatterCenterConfig,RowKey152,Documents,FlyoutLable2Text,Document ID
|
||||
MatterCenterConfig,RowKey153,Documents,GridColumn8Header,Created Date
|
||||
MatterCenterConfig,RowKey154,Documents,Dropdown1Item1,All Documents
|
||||
MatterCenterConfig,RowKey155,Documents,Dropdown1Item2,My Documents
|
||||
MatterCenterConfig,RowKey156,Documents,Dropdown1Item3,Pinned Documents
|
||||
MatterCenterConfig,RowKey157,Documents,SearchPlaceholderText,"Search by ID, or document or client name"
|
||||
MatterCenterConfig,RowKey158,Documents,NoDataSearchText,"Nothing matches your search term or the filter you selected. Please try again.<br>If you applied a filter, remove it to get back to your list.<br>Search suggestions:<br><ul><li>Make sure all words are spelled correctly</li><li>Try different keywords</li><li>Try searching by the matter name or client name</li><li>Try more general search terms</li></ul>"
|
||||
MatterCenterConfig,RowKey159,Documents,GridColumn1Header,Document
|
||||
MatterCenterConfig,RowKey160,Documents,GridColumn2Header,Client
|
||||
MatterCenterConfig,RowKey161,Documents,GridColumn3Header,Client.MatterID
|
||||
MatterCenterConfig,RowKey162,Documents,GridColumn4Header,Modified Date
|
||||
MatterCenterConfig,RowKey163,Documents,GridColumn5Header,Author
|
||||
MatterCenterConfig,RowKey164,Documents,GridColumn6Header,Document Version
|
||||
MatterCenterConfig,RowKey165,Documents,GridColumn7Header,Checked out to
|
||||
MatterCenterConfig,RowKey166,Documents,HeaderText,All Documents
|
||||
MatterCenterConfig,RowKey167,Documents,EllipsisLink1Text,Open this Document
|
||||
MatterCenterConfig,RowKey168,Documents,EllipsisLink2Text,View Matter Details
|
||||
MatterCenterConfig,RowKey169,Documents,EllipsisLink3Text,Pin this Document
|
||||
MatterCenterConfig,RowKey170,Documents,FlyoutButton1Text,Open document
|
||||
MatterCenterConfig,RowKey171,Documents,FlyoutButton2Text,View document details
|
||||
MatterCenterConfig,RowKey181,Header,MenuImage1Title,Matter center menu
|
||||
MatterCenterConfig,RowKey182,Header,MenuImage1Caption,menu
|
||||
MatterCenterConfig,RowKey183,Header,MenuImage1OpenTitle,Open App Switcher
|
||||
MatterCenterConfig,RowKey184,Header,MenuImage1CloseTitle,Close App Switcher
|
||||
MatterCenterConfig,RowKey185,Header,Menu1Option1Title,Home
|
||||
MatterCenterConfig,RowKey186,Header,Menu1Option2Title,Search matters
|
||||
MatterCenterConfig,RowKey187,Header,Menu1Option3Title,Search documents
|
||||
MatterCenterConfig,RowKey188,Header,Menu1Option1Text,Home
|
||||
MatterCenterConfig,RowKey189,Header,Menu1Option2Text,Matters
|
||||
MatterCenterConfig,RowKey190,Header,Menu1Option3Text,Documents
|
||||
MatterCenterConfig,RowKey191,Header,ContextualHelpImageTitle,Matter center help
|
||||
MatterCenterConfig,RowKey192,Header,ContextualHelpHeader,Matter Center For Outlook
|
||||
MatterCenterConfig,RowKey193,Header,ContextualHelpNoLinkText,There are no help links available.
|
||||
MatterCenterConfig,RowKey194,Header,ContextualHelpFooterLink1Label,Matter Center Aisling Support
|
||||
MatterCenterConfig,RowKey195,Header,LogoImageTitle,Matter center home
|
||||
MatterCenterConfig,RowKey196,Header,ContextualHelpLabel1,Get to know this view
|
||||
MatterCenterConfig,RowKey197,Header,ContextualHelpLabel2,How do I get Project Center on my device?
|
||||
MatterCenterConfig,RowKey198,Header,MatterCenterSupportLink,mailto:support@supportsite.com
|
||||
MatterCenterConfig,RowKey199,Header,ContextualHelpFooterLink1Title,Write an email to support
|
||||
MatterCenterConfig,RowKey200,Header,ContextualHelpFooterLabel,Questions? Contact
|
||||
MatterCenterConfig,RowKey201,Header,ContextualHelpAltText,Contextual Help
|
||||
MatterCenterConfig,RowKey202,Header,ContextualHelpFlyoutAltText,Close flyout
|
||||
MatterCenterConfig,RowKey203,Header,CloseTitle,Close
|
||||
MatterCenterConfig,RowKey204,Header,DashboardMenuImageUpperCaption,Matter Center
|
||||
MatterCenterConfig,RowKey205,Header,DashboardMenuImageLowerCaption,for Office 365
|
||||
MatterCenterConfig,RowKey206,Header,ImageOpenHamburgerTitle,View links
|
||||
MatterCenterConfig,RowKey207,Header,DashboardHeaderSearchPlaceholderText,Search SharePoint
|
||||
MatterCenterConfig,RowKey208,Header,DashboardSearchIconTitle,Search
|
||||
MatterCenterConfig,RowKey209,Header,HamburgerMenuOption3Text,Settings
|
||||
MatterCenterConfig,RowKey210,Header,FooterMenuOption4Text,Microsoft
|
||||
MatterCenterConfig,RowKey211,Header,FooterMenuOption1Text,Feedback & Support
|
||||
MatterCenterConfig,RowKey212,Header,FooterMenuOption2Text,Privacy & Cookies
|
||||
MatterCenterConfig,RowKey213,Header,FooterMenuOption3Text,Terms of use
|
||||
MatterCenterConfig,RowKey214,Header,ProfilePictureLabelText,Profile Picture
|
||||
MatterCenterConfig,RowKey215,Header,LabelSingOutText,Sign Out
|
||||
MatterCenterConfig,RowKey216,Header,ImageCloseHamburgerTitle,Close
|
||||
MatterCenterConfig,RowKey226,MatterDashboard,LinkImageLoadingTitle,Matter Center Home
|
||||
MatterCenterConfig,RowKey227,MatterDashboard,ImageLoadingAltText,Matter Center
|
||||
MatterCenterConfig,RowKey228,MatterDashboard,ImageCloseTitle,Close
|
||||
MatterCenterConfig,RowKey229,MatterDashboard,AttachmentLoadingText,Loading...
|
||||
MatterCenterConfig,RowKey230,MatterDashboard,SearchTextboxPlaceholderText,"Search by document name, document ID, or keyword"
|
||||
MatterCenterConfig,RowKey231,MatterDashboard,ImageAdvanceSearchAltText,Drop Down
|
||||
MatterCenterConfig,RowKey232,MatterDashboard,ImageAdvanceSearchTitle,Advanced search
|
||||
MatterCenterConfig,RowKey233,MatterDashboard,AdvSearchLabel1Text,Clients
|
||||
MatterCenterConfig,RowKey234,MatterDashboard,AdvSearchTextbox1PlaceholderText,Enter or select a client
|
||||
MatterCenterConfig,RowKey235,MatterDashboard,AdvSearchSelectAllLinkText,Select All
|
||||
MatterCenterConfig,RowKey236,MatterDashboard,AdvSearchSelectNoneLinkText,Select None
|
||||
MatterCenterConfig,RowKey237,MatterDashboard,AdvSearchbuttonOkText,Ok
|
||||
MatterCenterConfig,RowKey238,MatterDashboard,AdvSearchbuttonCancelText,Cancel
|
||||
MatterCenterConfig,RowKey239,MatterDashboard,AdvSearchLabel2Text,Practice Group
|
||||
MatterCenterConfig,RowKey240,MatterDashboard,AdvSearchTextbox2PlaceholderText,Enter or select a practice group
|
||||
MatterCenterConfig,RowKey241,MatterDashboard,AdvSearchLabel3Text,Area of Law
|
||||
MatterCenterConfig,RowKey242,MatterDashboard,AdvSearchTextbox3PlaceholderText,Enter or select an area of law
|
||||
MatterCenterConfig,RowKey243,MatterDashboard,AdvSearchLabel4Text,Date
|
||||
MatterCenterConfig,RowKey244,MatterDashboard,AdvSearchTextbox4PlaceholderText,From
|
||||
MatterCenterConfig,RowKey245,MatterDashboard,AdvSearchTextbox5PlaceholderText,To
|
||||
MatterCenterConfig,RowKey246,MatterDashboard,AdvSearchButtonSearchText,Search
|
||||
MatterCenterConfig,RowKey247,MatterDashboard,Tab1HeaderText,My matters
|
||||
MatterCenterConfig,RowKey248,MatterDashboard,Tab2HeaderText,All matters
|
||||
MatterCenterConfig,RowKey249,MatterDashboard,Tab3HeaderText,Pinned matters
|
||||
MatterCenterConfig,RowKey250,MatterDashboard,ButtonExportText,Export
|
||||
MatterCenterConfig,RowKey251,MatterDashboard,LabelSortByText,Sort by:
|
||||
MatterCenterConfig,RowKey252,MatterDashboard,DrpDownOption1Text,None
|
||||
MatterCenterConfig,RowKey253,MatterDashboard,DrpDownOption2Text,Alphabetical
|
||||
MatterCenterConfig,RowKey254,MatterDashboard,DrpDownOption3Text,Created date
|
||||
MatterCenterConfig,RowKey255,MatterDashboard,NoSearchResultMsgText,No results found.
|
||||
MatterCenterConfig,RowKey256,MatterDashboard,Button1DuplicateContentTitle,Matter Center will compare all content and data associated with the two documents. Navigating away from this screen will cancel the content check.
|
||||
MatterCenterConfig,RowKey257,MatterDashboard,Button1DuplicateContentText,Perform content check
|
||||
MatterCenterConfig,RowKey258,MatterDashboard,Button2SaveLatestVersionTitle,The file will be saved as the latest version of the existing document that has same title. Matter Center will retain all prior versions of the document.
|
||||
MatterCenterConfig,RowKey259,MatterDashboard,Button2SaveLatestVersionText,Save as latest version
|
||||
MatterCenterConfig,RowKey260,MatterDashboard,Button3AppendDateTitle,"The file will be saved as new, separate document with the current date and time added to the end of the file name."
|
||||
MatterCenterConfig,RowKey261,MatterDashboard,Button3AppendDateText,Append date to file name and save
|
||||
MatterCenterConfig,RowKey262,MatterDashboard,Button4CancelUploadTitle,This document will not be uploaded and you will return to the previous screen.
|
||||
MatterCenterConfig,RowKey263,MatterDashboard,Button4CancelUploadText,Cancel upload
|
||||
MatterCenterConfig,RowKey264,MatterDashboard,Image1ContentCheckText,Checking content
|
||||
MatterCenterConfig,RowKey265,MatterDashboard,UploadCompleteLabel1Text,Upload complete.
|
||||
MatterCenterConfig,RowKey266,MatterDashboard,CloseIconText,X
|
||||
MatterCenterConfig,RowKey267,MatterDashboard,AttachmentPopupHeaderText,Drag and drop items to folders on the right
|
||||
MatterCenterConfig,RowKey268,MatterDashboard,AttachmentPopupHeaderItem1Text,Items
|
||||
MatterCenterConfig,RowKey269,MatterDashboard,AttachmentPopupHeaderItem2Text,Folders
|
||||
MatterCenterConfig,RowKey270,MatterDashboard,AttachmentEditImageTitle,Edit attachment name
|
||||
MatterCenterConfig,RowKey271,MatterDashboard,AttachmentEditImageAltText,Edit
|
||||
MatterCenterConfig,RowKey272,MatterDashboard,AttachmentSaveImageTitle,Save attachment name
|
||||
MatterCenterConfig,RowKey273,MatterDashboard,AttachmentSaveImageText,Save
|
||||
MatterCenterConfig,RowKey274,MatterDashboard,AttachmentUploadSuccessfullyImageAltText,Uploaded successfully
|
||||
MatterCenterConfig,RowKey275,MatterDashboard,AttachmentIconImageAltText,attachment icon
|
||||
MatterCenterConfig,RowKey276,MatterDashboard,AttachmentTestTitle,Test attachments
|
||||
MatterCenterConfig,RowKey277,MatterDashboard,AttachmentEmptyText,No files uploaded
|
||||
MatterCenterConfig,RowKey278,MatterDashboard,AttachmentPopupFooterImageCapetion,You can also drag and drop files from your desktop.
|
||||
MatterCenterConfig,RowKey279,MatterDashboard,MattersPreLoadingMsgText,Please wait while the Matters load.
|
||||
MatterCenterConfig,RowKey280,MatterDashboard,GridColumn1Header,Matter
|
||||
MatterCenterConfig,RowKey281,MatterDashboard,GridColumn2Header,Client
|
||||
MatterCenterConfig,RowKey282,MatterDashboard,GridColumn3Header,Client.Matter ID
|
||||
MatterCenterConfig,RowKey283,MatterDashboard,GridColumn4Header,Modified Date
|
||||
MatterCenterConfig,RowKey284,MatterDashboard,GridColumn5Header,Responsible attorney
|
||||
MatterCenterConfig,RowKey285,MatterDashboard,AdvSearchLabel1InternalFuncParamText,client
|
||||
MatterCenterConfig,RowKey286,MatterDashboard,AdvSearchLabel2InternalFuncParamText,level1
|
||||
MatterCenterConfig,RowKey287,MatterDashboard,AdvSearchLabel3InternalFuncParamText,level2
|
||||
MatterCenterConfig,RowKey297,Matters,EllipsisLink5Text,Unpin this matter
|
||||
MatterCenterConfig,RowKey298,Matters,AttachmentEditImageTitle,Edit attachment name
|
||||
MatterCenterConfig,RowKey299,Matters,AttachmentEditImageAltText,Edit
|
||||
MatterCenterConfig,RowKey300,Matters,AttachmentSaveImageTitle,Save attachment name
|
||||
MatterCenterConfig,RowKey301,Matters,AttachmentSaveImageText,Save
|
||||
MatterCenterConfig,RowKey302,Matters,AttachmentUploadSuccessfullyImageAltText,Uploaded successfully
|
||||
MatterCenterConfig,RowKey303,Matters,AttachmentIconImageAltText,attachment icon
|
||||
MatterCenterConfig,RowKey304,Matters,AttachmentTestTitle,Test attachments
|
||||
MatterCenterConfig,RowKey305,Matters,AttachmentEmptyText,No files uploaded
|
||||
MatterCenterConfig,RowKey306,Matters,AttachmentBreadcrumAltText,Root
|
||||
MatterCenterConfig,RowKey307,Matters,AttachmentFolderAltText,Documents
|
||||
MatterCenterConfig,RowKey308,Matters,FilterSearchPlaceholderText,Search
|
||||
MatterCenterConfig,RowKey309,Matters,ClearFilterText,Clear filters from
|
||||
MatterCenterConfig,RowKey310,Matters,NoFilterMatchMsgTitle,There are no items that match this filter
|
||||
MatterCenterConfig,RowKey311,Matters,NoFilterMatchMsgText,There are no items that match this filter
|
||||
MatterCenterConfig,RowKey312,Matters,ImageCloseText,Close
|
||||
MatterCenterConfig,RowKey313,Matters,ImageClearTitle,Clear
|
||||
MatterCenterConfig,RowKey314,Matters,ImageClearAltText,Clear filters
|
||||
MatterCenterConfig,RowKey315,Matters,ClearFilterFromLabelText,Clear filters from
|
||||
MatterCenterConfig,RowKey316,Matters,ImageWarningAltText,Warning Message
|
||||
MatterCenterConfig,RowKey317,Matters,Button1DuplicateContentTitle,Matter Center will compare all content and data associated with the two documents. Navigating away from this screen will cancel the content check.
|
||||
MatterCenterConfig,RowKey318,Matters,Button1DuplicateContentText,Perform content check
|
||||
MatterCenterConfig,RowKey319,Matters,Button2SaveLatestVersionTitle,The file will be saved as the latest version of the existing document that has same title. Matter Center will retain all prior versions of the document.
|
||||
MatterCenterConfig,RowKey320,Matters,Button2SaveLatestVersionText,Save as latest version
|
||||
MatterCenterConfig,RowKey321,Matters,Button3AppendDateTitle,"The file will be saved as new, separate document with the current date and time added to the end of the file name."
|
||||
MatterCenterConfig,RowKey322,Matters,Button3AppendDateText,Append date to file name and save
|
||||
MatterCenterConfig,RowKey323,Matters,Button4CancelUploadTitle,This document will not be uploaded and you will return to the previous screen.
|
||||
MatterCenterConfig,RowKey324,Matters,Button4CancelUploadText,Cancel upload
|
||||
MatterCenterConfig,RowKey325,Matters,Button5OkTitle,This document will not be uploaded and you will return to the previous screen.
|
||||
MatterCenterConfig,RowKey326,Matters,Button5OkText,Ok
|
||||
MatterCenterConfig,RowKey327,Matters,Image1ContentCheckText,Checking content
|
||||
MatterCenterConfig,RowKey328,Matters,Button6CancelText,Cancel
|
||||
MatterCenterConfig,RowKey329,Matters,UploadCompleteLabel1Text,Upload complete.
|
||||
MatterCenterConfig,RowKey330,Matters,CloseIconText,x
|
||||
MatterCenterConfig,RowKey331,Matters,StartDatePlaceHolder,Start mm/dd/yyyy
|
||||
MatterCenterConfig,RowKey332,Matters,EndDatePlaceHolder,End mm/dd/yyyy
|
||||
MatterCenterConfig,RowKey333,Matters,GridColumn8Header,Area of Law
|
||||
MatterCenterConfig,RowKey334,Matters,AttachmentLoadingText,Loading...
|
||||
MatterCenterConfig,RowKey335,Matters,GridColumn5Header,Responsible Attorney
|
||||
MatterCenterConfig,RowKey336,Matters,GridColumn6Header,Sub Area of Law
|
||||
MatterCenterConfig,RowKey337,Matters,GridColumn7Header,Open Date
|
||||
MatterCenterConfig,RowKey338,Matters,Dropdown1Item1,All Matters
|
||||
MatterCenterConfig,RowKey339,Matters,Dropdown1Item2,My Matters
|
||||
MatterCenterConfig,RowKey340,Matters,Dropdown1Item3,Pinned Matters
|
||||
MatterCenterConfig,RowKey341,Matters,SearchPlaceholderText,"Search by ID, or matter or client name"
|
||||
MatterCenterConfig,RowKey342,Matters,NoDataSearchText,"Nothing matches your search term or the filter you selected. Please try again.<br>If you applied a filter, remove it to get back to your list.<br>Search suggestions:<br><ul><li>Make sure all words are spelled correctly</li><li>Try different keywords</li><li>Try searching by the matter name or client name</li><li>Try more general search terms</li></ul>"
|
||||
MatterCenterConfig,RowKey343,Matters,GridColumn1Header,Matter
|
||||
MatterCenterConfig,RowKey344,Matters,GridColumn2Header,Client
|
||||
MatterCenterConfig,RowKey345,Matters,GridColumn3Header,Client.MatterID
|
||||
MatterCenterConfig,RowKey346,Matters,GridColumn4Header,Modified Date
|
||||
MatterCenterConfig,RowKey347,Matters,HeaderText,All Matters
|
||||
MatterCenterConfig,RowKey348,Matters,EllipsisLink1Text,Upload to this Matter
|
||||
MatterCenterConfig,RowKey349,Matters,EllipsisLink2Text,View Matter Details
|
||||
MatterCenterConfig,RowKey350,Matters,EllipsisLink3Text,Go to Matter OneNote
|
||||
MatterCenterConfig,RowKey351,Matters,EllipsisLink4Text,Pin this matter
|
||||
MatterCenterConfig,RowKey352,Matters,FlyoutButton1Text,View matter details
|
||||
MatterCenterConfig,RowKey353,Matters,FlyoutButton2Text,Upload to a matter
|
||||
MatterCenterConfig,RowKey354,Matters,AttachmentPopupHeaderText,Drag and drop items to folders on the right
|
||||
MatterCenterConfig,RowKey355,Matters,AttachmentPopupFooterImageCapetion,You can also drag and drop files from your desktop.
|
||||
MatterCenterConfig,RowKey356,Matters,AttachmentPopupHeaderItem1Text,Items
|
||||
MatterCenterConfig,RowKey357,Matters,AttachmentPopupHeaderItem2Text,Folders
|
||||
MatterCenterConfig,RowKey358,Matters,AttachmentPopupHeaderText,Upload to a matter
|
||||
MatterCenterConfig,RowKey371,Navigation,MenuItem1LinkTitle,Home
|
||||
MatterCenterConfig,RowKey372,Navigation,MenuItem1LinkTitle,Search matters
|
||||
MatterCenterConfig,RowKey373,Navigation,MenuItem1LinkTitle,Search documents
|
||||
MatterCenterConfig,RowKey374,Navigation,NameTitle,Matter
|
||||
MatterCenterConfig,RowKey375,Navigation,HeaderBarLink1Title,Learn more about matter center
|
||||
MatterCenterConfig,RowKey376,Navigation,HeaderBarLink2Title,Remove this section
|
||||
MatterCenterConfig,RowKey377,Navigation,MenuImageOpenTitle,Open App Switcher
|
||||
MatterCenterConfig,RowKey378,Navigation,MenuImageCloseTitle,Close App Switcher
|
||||
MatterCenterConfig,RowKey379,Navigation,HeaderBarLink1Text,LearnMore
|
||||
MatterCenterConfig,RowKey380,Navigation,HomeMenuText,Home
|
||||
MatterCenterConfig,RowKey381,Navigation,Image1Title,Search matters
|
||||
MatterCenterConfig,RowKey382,Navigation,Image2Title,Search documents
|
||||
MatterCenterConfig,RowKey383,Navigation,HelpRequesURL,https://msmatter.sharepoint.com/sites/catalog
|
||||
MatterCenterConfig,RowKey384,Navigation,FooterLabel,Questions? Contact
|
||||
MatterCenterConfig,RowKey385,Navigation,MenuImageCaption,menu
|
||||
MatterCenterConfig,RowKey386,Navigation,MenuImageTitle,Matter center menu
|
||||
MatterCenterConfig,RowKey387,Navigation,MenuItem1LinkText,Home
|
||||
MatterCenterConfig,RowKey388,Navigation,MenuItem2LinkText,Matters
|
||||
MatterCenterConfig,RowKey389,Navigation,MenuItem3LinkText,Documents
|
||||
MatterCenterConfig,RowKey390,Navigation,LogoImageTitle,Matter center home
|
||||
MatterCenterConfig,RowKey391,Navigation,ContextualHelpImageTitle,Matter center help
|
||||
MatterCenterConfig,RowKey392,Navigation,ContextualHelpLabel1,Get to know this view
|
||||
MatterCenterConfig,RowKey393,Navigation,ContextualHelpLink1Text,Home in Outlook and Word
|
||||
MatterCenterConfig,RowKey394,Navigation,ContextualHelpLink1URL,https://microsoft.sharepoint.com/teams/celapcconfig/Shared%20Documents/CELA%20Project%20Center%20End%20User%20Guide_24.pdf#Home_in_Outlook_and_Word
|
||||
MatterCenterConfig,RowKey395,Navigation,ContextualHelpLabel2,How do I get Project Center on my device?
|
||||
MatterCenterConfig,RowKey396,Navigation,ContextualHelpLink2URL,https://microsoft.sharepoint.com/teams/celapcconfig/Shared%20Documents/CELA%20Project%20Center%20End%20User%20Guide_24.pdf#Enabling_Project_Center
|
||||
MatterCenterConfig,RowKey397,Navigation,ContextualHelpFooterLink1Label,Matter Center Aisling Support
|
||||
MatterCenterConfig,RowKey398,Navigation,MatterCenterSupportLink,mailto:support@supportsite.com
|
||||
MatterCenterConfig,RowKey399,Navigation,ContextualHelpFooterLink1Title,Write an email to support
|
||||
MatterCenterConfig,RowKey400,Navigation,ContextualHelpHeader,Matter Center For Outlook
|
||||
MatterCenterConfig,RowKey401,Navigation,ContextualHelpFooterLabel,Questions? Contact
|
||||
MatterCenterConfig,RowKey402,Navigation,HeaderBarLabel,"Welcome to Matter Center! Upload, share, and save your documents here."
|
||||
MatterCenterConfig,RowKey403,Navigation,Image1Caption,Matters
|
||||
MatterCenterConfig,RowKey404,Navigation,Image2Caption,Documents
|
||||
MatterCenterConfig,RowKey405,Navigation,HeaderBarLink1URL,http://www.microsoft.com/mattercenter
|
||||
MatterCenterConfig,RowKey406,Navigation,HeaderBarLink2Text,dismiss
|
||||
MatterCenterConfig,RowKey407,Navigation,Image3Caption,Upload attachments
|
||||
MatterCenterConfig,RowKey408,Navigation,Image4Caption,Create a new matter
|
||||
MatterCenterConfig,RowKey409,Navigation,Image5Caption,Go to Matter Center Home
|
||||
MatterCenterConfig,RowKey410,Navigation,FooterLink1Title,Matter Center Support
|
||||
MatterCenterConfig,RowKey411,Navigation,FooterLink1Text,Matter Center Support
|
||||
MatterCenterConfig,RowKey412,Navigation,FooterLink1URL,mailto:lcaweb2@microsoft.com?subject=CELA Project Center Feedback and Support request
|
||||
MatterCenterConfig,RowKey413,Navigation,Image3Title,Upload documents to a matter
|
||||
MatterCenterConfig,RowKey414,Navigation,Image4Title,Create a new matter site
|
||||
MatterCenterConfig,RowKey415,Navigation,Image5Title,Go to the web home page
|
||||
MatterCenterConfig,RowKey425,Settings,Label1HeaderText,Settings
|
||||
MatterCenterConfig,RowKey426,Settings,Label2Text,Click on a name to configure matter creation options for that client.
|
||||
MatterCenterConfig,RowKey427,Settings,Label3Text,Client Name
|
||||
MatterCenterConfig,RowKey429,Settings,Label5Section1HeaderText,Select default values
|
||||
MatterCenterConfig,RowKey430,Settings,Label6Section1HeaderText,Default selections will be editable when a new matter is created.
|
||||
MatterCenterConfig,RowKey431,Settings,Label7DefaultValue1TitleText,Matter Name
|
||||
MatterCenterConfig,RowKey432,Settings,Label8DefaultValue1TitleDescription,"Enter default text to appear when a new matter is created. For example, a matter name prefix or suffix, or naming convention instructions.This text can be removed or changed when a new matter is created."
|
||||
MatterCenterConfig,RowKey433,Settings,Label9DefaultValue2TitleText,Matter ID
|
||||
MatterCenterConfig,RowKey434,Settings,Label10DefaultValue2TitleDescription,"ID numbers must be manually entered when a new matter is created. Enter default text, such as ID prefix or suffix, or numbering instructions. This text can be removed or changed when a new matter is created."
|
||||
MatterCenterConfig,RowKey435,Settings,Label11DefaultValue3HeaderText,"Set a default matter type by selecting a Practice group, Area of law, and Sub areas of law below."
|
||||
MatterCenterConfig,RowKey436,Settings,Label12DefaultValue3TitleText,Default to restricting access to an assigned team?
|
||||
MatterCenterConfig,RowKey437,Settings,Label13DefaultValue3TitleDescription,"This can be changed when a new matter is created. If you select yes, you can either define a default team below or leave the team permission blank."
|
||||
MatterCenterConfig,RowKey438,Settings,Radio1Option1Text,Yes
|
||||
MatterCenterConfig,RowKey439,Settings,Radio1Option2Text,No
|
||||
MatterCenterConfig,RowKey440,Settings,Label14DefaultValue4HeaderText,Assign team permission
|
||||
MatterCenterConfig,RowKey441,Settings,Label15DefaultValue4Text,Name
|
||||
MatterCenterConfig,RowKey442,Settings,Label16DefaultValue4Text,Role
|
||||
MatterCenterConfig,RowKey443,Settings,Label17DefaultValue4Text,Permission level
|
||||
MatterCenterConfig,RowKey444,Settings,Textbox1DefaultValue4PlaceholdertText,Enter and select names
|
||||
MatterCenterConfig,RowKey445,Settings,Label18DefaultValue4NoResultsFoundText,No Results Found
|
||||
MatterCenterConfig,RowKey446,Settings,Label19DefaultValue4AddMoreText,Add More
|
||||
MatterCenterConfig,RowKey447,Settings,Label20DefaultValue5Text,Include email notification?
|
||||
MatterCenterConfig,RowKey448,Settings,Label21DefaultValue6Text,Include calendar?
|
||||
MatterCenterConfig,RowKey449,Settings,Label22DefaultValue7Text,Include tasks?
|
||||
MatterCenterConfig,RowKey450,Settings,Label23DefaultValue8Text,Include RSS Feeds?
|
||||
MatterCenterConfig,RowKey451,Settings,Label24Section2HeaderText,Set matter options
|
||||
MatterCenterConfig,RowKey452,Settings,Label25Section2HeaderText,These settings will not be editable when a new matter is created.
|
||||
MatterCenterConfig,RowKey453,Settings,Label26Section2Text,Make the matter description field required?
|
||||
MatterCenterConfig,RowKey454,Settings,Label27Section2DescriptionText,Selecting No will allow new matters to be saved without a description
|
||||
MatterCenterConfig,RowKey455,Settings,Label28Section2Text,Do matters need conflict check data?
|
||||
MatterCenterConfig,RowKey456,Settings,Label29Section2DescriptionText,Selecting No will remove the conflict check declaration fields from new matters
|
||||
MatterCenterConfig,RowKey457,Settings,Label30Section2Text,Show or hide role?
|
||||
MatterCenterConfig,RowKey458,Settings,Label31Section2Text,Show matter id?
|
||||
MatterCenterConfig,RowKey459,Settings,Label32Section2Text,Matter Id Configuration
|
||||
MatterCenterConfig,RowKey460,Settings,Radio2Option1Text,Guid
|
||||
MatterCenterConfig,RowKey461,Settings,Radio2Option2Text,Date Time
|
||||
MatterCenterConfig,RowKey462,Settings,Radio2Option3Text,Custom
|
||||
MatterCenterConfig,RowKey463,Settings,ButtonSaveText,Save
|
||||
MatterCenterConfig,RowKey464,Settings,ButtonCancelText,Cancel
|
||||
MatterCenterConfig,RowKey465,Settings,ImageLoadingAltText,Loading...
|
||||
MatterCenterConfig,RowKey466,Settings,Label4Selection1HeaderText,"This page shows the current settings for this client's new matters. The first section allows you to set new matter default selections, which can be changed when a matter is created. The second section defines settings that can not be changed when a new matter is created. No changes are required, and any changes made will not affect existing matters."
|
||||
MatterCenterConfig,RowKey467,Settings,DeleteTitleText,Delete
|
||||
MatterCenterConfig,RowKey468,Settings,Radio2Option2ValueText,DateTime
|
||||
MatterCenterConfig,RowKey469,Settings,Label33Section2Text,Your changes have been saved. Go back to
|
||||
MatterCenterConfig,RowKey470,Settings,Label34Section2Text,Clients
|
||||
MatterCenterConfig,RowKey481,MatterLanding,Label1Tab1HeaderText,Matter Profile
|
||||
MatterCenterConfig,RowKey482,MatterLanding,Label2Tab2HeaderText,Matter Description
|
||||
MatterCenterConfig,RowKey483,MatterLanding,Label3Tab1Column1Text,Client Name
|
||||
MatterCenterConfig,RowKey484,MatterLanding,Label4Tab1Column2Text,Client & Matter ID
|
||||
MatterCenterConfig,RowKey485,MatterLanding,Label5Tab1Column3Text,Practice Group
|
||||
MatterCenterConfig,RowKey486,MatterLanding,Label6Tab1Column4Text,Area of Law
|
||||
MatterCenterConfig,RowKey487,MatterLanding,Label7Tab1Column5Text,Responsible Attorney
|
||||
MatterCenterConfig,RowKey488,MatterLanding,Label8Tab1Section2HeaderText,Matter Library
|
||||
MatterCenterConfig,RowKey489,MatterLanding,MenuImageUpperCaption,Matter Center
|
||||
MatterCenterConfig,RowKey490,MatterLanding,MenuImageLowerCaption,for Office 365
|
||||
MatterCenterConfig,RowKey491,MatterLanding,Menu1Option1Text,Matters
|
||||
MatterCenterConfig,RowKey492,MatterLanding,Menu1Option2Text,Documents
|
||||
MatterCenterConfig,RowKey493,MatterLanding,Menu1Option3Text,Settings
|
||||
MatterCenterConfig,RowKey502,DocumentDetails,Label1HeaderText,File Name
|
||||
MatterCenterConfig,RowKey503,DocumentDetails,Label2Section2HeaderText,File Properties
|
||||
MatterCenterConfig,RowKey504,DocumentDetails,Label3Section2Column1Text,File title
|
||||
MatterCenterConfig,RowKey505,DocumentDetails,Label4Section2Column2Text,Client
|
||||
MatterCenterConfig,RowKey506,DocumentDetails,Label5Section2Column3Text,Matter
|
||||
MatterCenterConfig,RowKey507,DocumentDetails,Label6Section2Column4Text,Client.MatterID
|
||||
MatterCenterConfig,RowKey508,DocumentDetails,Label7Section2Column5Text,Document ID
|
||||
MatterCenterConfig,RowKey509,DocumentDetails,Label8Section2Column6Text,Checked out to
|
||||
MatterCenterConfig,RowKey510,DocumentDetails,Label9Section2Column7Text,Author
|
||||
MatterCenterConfig,RowKey511,DocumentDetails,Label10Section2Column8Text,Date created
|
||||
MatterCenterConfig,RowKey512,DocumentDetails,Label11Section2Column9Text,Practice group
|
||||
MatterCenterConfig,RowKey513,DocumentDetails,Label12Section2Column10Text,Area of law:
|
||||
MatterCenterConfig,RowKey514,DocumentDetails,Label13Section2Column11Text,Sub area of law
|
||||
MatterCenterConfig,RowKey515,DocumentDetails,Label14Section2Column12Text,File type
|
||||
MatterCenterConfig,RowKey516,DocumentDetails,Label15Section2Column13Text,File size
|
||||
MatterCenterConfig,RowKey517,DocumentDetails,Label16Section2Column14Text,File access
|
||||
MatterCenterConfig,RowKey518,DocumentDetails,Label17Section2HeaderText,Version history
|
||||
MatterCenterConfig,RowKey519,DocumentDetails,Label18Section2Column1Text,Version
|
||||
MatterCenterConfig,RowKey520,DocumentDetails,Label19Section2Column2Text,Modified
|
||||
MatterCenterConfig,RowKey521,DocumentDetails,Label20Section2Column3Text,Modified By
|
||||
MatterCenterConfig,RowKey522,DocumentDetails,Label21MenuHeaderOption1Text,open
|
||||
MatterCenterConfig,RowKey523,DocumentDetails,Label22MenuHeaderOption2Text,download
|
||||
MatterCenterConfig,RowKey524,DocumentDetails,Label23MenuHeaderOption3Text,share
|
||||
MatterCenterConfig,RowKey525,DocumentDetails,Label24MenuHeaderOption4Text,check in
|
||||
MatterCenterConfig,RowKey526,DocumentDetails,Label25MenuHeaderOption5Text,check out
|
||||
MatterCenterConfig,RowKey527,DocumentDetails,Label26MenuHeaderOption6Text,send link
|
||||
MatterCenterConfig,RowKey528,DocumentDetails,Label27MenuHeaderOption7Text,pin
|
||||
MatterCenterConfig,RowKey529,DocumentDetails,Label28MenuHeaderOption8Text,unpin
|
||||
MatterCenterConfig,RowKey530,DocumentDetails,Label1TabTitleText,Document Details
|
||||
MatterCenterConfig,RowKey531,DocumentDetails,Link1ErrorDetailsCaptionText,Click here for details
|
||||
MatterCenterConfig,RowKey532,DocumentDetails,Link2AllDocumentText,Go to all documents
|
||||
MatterCenterConfig,RowKey533,DocumentDetails,LabelNoPreviewText,There is no preview for this document
|
||||
MatterCenterConfig,RowKey534,DocumentDetails,ImgNoPreviewSuppoertText,Preview not supported...
|
||||
MatterCenterConfig,RowKey538,DocumentDetails,Link3ViewMoreText,View More
|
||||
MatterCenterConfig,RowKey540,MatterLanding,ErrMsg1NoTask,There are no tasks created
|
||||
MatterCenterConfig,RowKey541,MatterLanding,ErrMsg2FetchTask,Error occurred while trying to fetch tasks
|
||||
MatterCenterConfig,RowKey542,MatterLanding,ErrMsg3CreateEvent,Error occurred while trying to fetch events
|
||||
MatterCenterConfig,RowKey543,MatterLanding,ErrMsg4ActiveEvents,There are no active events
|
||||
MatterCenterConfig,RowKey544,MatterLanding,ErrMsg5NoMatterDescription,There is no description for this matter
|
||||
MatterCenterConfig,RowKey545,MatterLanding,ErrMsg6ForPinUnpinMatters,Error while trying to retrieve matter pin/unpin status
|
||||
MatterCenterConfig,RowKey546,MatterLanding,ErrMsg7MatterInformation,Error while trying to retrieve matter information
|
||||
MatterCenterConfig,RowKey547,MatterLanding,ErrMsg8MatterDescription,Error while trying to retrieve matter description
|
||||
MatterCenterConfig,RowKey548,MatterLanding,ErrMsg9NoPinUnpinMatter,Error while trying to pin/unpin matter
|
||||
MatterCenterConfig,RowKey549,MatterLanding,Label1MenuText,Matter Name
|
||||
MatterCenterConfig,RowKey550,MatterLanding,Label9Section1Text,Matter Id
|
||||
MatterCenterConfig,RowKey551,MatterLanding,Label10Section1Text,Client Id
|
||||
MatterCenterConfig,RowKey552,MatterLanding,Label11Section1Text,Description
|
||||
MatterCenterConfig,RowKey553,MatterLanding,Label12ManageUserTitleText,Manage users
|
||||
MatterCenterConfig,RowKey554,MatterLanding,Label13GotoOnnoteTitleText,Go to Matter OneNote
|
||||
MatterCenterConfig,RowKey555,MatterLanding,Label14TaskeTitleText,Task
|
||||
MatterCenterConfig,RowKey556,MatterLanding,Label15CalenderTitleText,Calendar Events
|
||||
MatterCenterConfig,RowKey557,MatterLanding,Label16RSSFeedTitleText,Related News (RSS)
|
||||
MatterCenterConfig,RowKey558,MatterLanding,Label17EditTitleText,View / Edit
|
||||
MatterCenterConfig,RowKey561,MatterLanding,Label18MenuText,My Matters
|
||||
MatterCenterConfig,RowKey562,MatterLanding,Label19Section4Text,Matter Library
|
||||
MatterCenterConfig,RowKey570,DocumentDetails,Label135MenuHead,OneDrive
|
||||
MatterCenterConfig,RowKey571,DocumentDetails,Label36MenuHeaderOption7Text,Send to OneDrive
|
|
|
@ -0,0 +1,40 @@
|
|||
@{
|
||||
|
||||
# Script module or binary module file associated with this manifest.
|
||||
RootModule = 'ManageTableStorageWithCsvFile'
|
||||
|
||||
# Version number of this module.
|
||||
ModuleVersion = '1.0'
|
||||
|
||||
# ID used to uniquely identify this module
|
||||
GUID = '587ec309-7f25-4f13-b360-03db37a4d80d'
|
||||
|
||||
# Author of this module
|
||||
Author = 'OneScript Team'
|
||||
|
||||
# Company or vendor of this module
|
||||
CompanyName = 'Microsoft'
|
||||
|
||||
# Copyright statement for this module
|
||||
Copyright = '(c) 2015 Microsoft Corporation. All rights reserved.'
|
||||
|
||||
# Description of the functionality provided by this module
|
||||
Description = 'The module contains two advanced functions that can be used to import/export data with Excel to/from Azure table storage.'
|
||||
|
||||
# Minimum version of the Windows PowerShell engine required by this module
|
||||
PowerShellVersion = '1.0'
|
||||
|
||||
# Functions to export from this module
|
||||
FunctionsToExport = '*'
|
||||
|
||||
# Cmdlets to export from this module
|
||||
CmdletsToExport = '*'
|
||||
|
||||
# Variables to export from this module
|
||||
VariablesToExport = '*'
|
||||
|
||||
# Aliases to export from this module
|
||||
AliasesToExport = '*'
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,230 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
#The sample scripts are not supported under any Microsoft standard support
|
||||
#program or service. The sample scripts are provided AS IS without warranty
|
||||
#of any kind. Microsoft further disclaims all implied warranties including,
|
||||
#without limitation, any implied warranties of merchantability or of fitness for
|
||||
#a particular purpose. The entire risk arising out of the use or performance of
|
||||
#the sample scripts and documentation remains with you. In no event shall
|
||||
#Microsoft, its authors, or anyone else involved in the creation, production, or
|
||||
#delivery of the scripts be liable for any damages whatsoever (including,
|
||||
#without limitation, damages for loss of business profits, business interruption,
|
||||
#loss of business information, or other pecuniary loss) arising out of the use
|
||||
#of or inability to use the sample scripts or documentation, even if Microsoft
|
||||
#has been advised of the possibility of such damages
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
#requires -Version 3.0
|
||||
|
||||
Function Export-AzureTableStorage
|
||||
{
|
||||
<#
|
||||
.SYNOPSIS
|
||||
This is an advanced function which can be used to export the entity of azure table storage.
|
||||
.DESCRIPTION
|
||||
This is an advanced function which can be used to export the entity of azure table storage.
|
||||
.PARAMETER StorageAccountName
|
||||
Spcifies the name of storage account.
|
||||
.PARAMETER TableName
|
||||
Specifies the name of table storage.
|
||||
.PARAMETER Path
|
||||
Specifies the path to the item that will save it to a csv file.
|
||||
.EXAMPLE
|
||||
C:\PS> Export-AzureTableStorage -StorageAccountName "storageaccount" -TableName SchemasTable -Path C:\Tables\
|
||||
|
||||
Successfully export the table storage to csv file.
|
||||
|
||||
This command shows how to export the entities of table storage and saves them to a csv file named 'ShemasTable'.
|
||||
#>
|
||||
[CmdletBinding(SupportsShouldProcess=$true)]
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$StorageAccountName,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$TableName,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$Path
|
||||
)
|
||||
|
||||
#Check if Windows Azure PowerShell Module is avaliable
|
||||
If((Get-Module -ListAvailable Azure) -eq $null)
|
||||
{
|
||||
Write-Warning "Windows Azure PowerShell module not found! Please install from http://www.windowsazure.com/en-us/downloads/#cmd-line-tools"
|
||||
}
|
||||
Else
|
||||
{
|
||||
If($StorageAccountName)
|
||||
{
|
||||
Get-AzureRmStorageAccount -ResourceGroupName "test26aug" -Name $StorageAccountName -verbose -ErrorAction SilentlyContinue `
|
||||
-ErrorVariable IsExistStorageError | Out-Null
|
||||
|
||||
#Check if storage account is exist
|
||||
If($IsExistStorageError.Exception -eq $null)
|
||||
{
|
||||
If($TableName)
|
||||
{
|
||||
Get-AzureStorageTable -Name $TableName -ErrorAction SilentlyContinue `
|
||||
-ErrorVariable IsExistTableError | Out-Null
|
||||
|
||||
#Check if table is exist
|
||||
If($IsExistTableError.Exception -eq $null)
|
||||
{
|
||||
#Specify a Windows Azure Storage Library path
|
||||
$StorageLibraryPath = "$env:SystemDrive\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.5\ref\Microsoft.WindowsAzure.Storage.dll"
|
||||
|
||||
#Getting Azure storage account key
|
||||
$Keys = Get-AzureStorageKey -StorageAccountName $StorageAccountName
|
||||
$StorageAccountKey = "yDOE9PA2C/IDy0EL50eMOY3AnUkBN7qXn4AtXDYtJg6Y9xnZtokBugYhKoVn3fMfliYtm/uOU+ry5mGNaJdwIA=="
|
||||
|
||||
#Loading Windows Azure Storage Library for .NET.
|
||||
Write-Verbose -Message "Loading Windows Azure Storage Library from $StorageLibraryPath"
|
||||
[Reflection.Assembly]::LoadFile("$StorageLibraryPath") | Out-Null
|
||||
|
||||
$Creds = New-Object Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("$StorageAccountName","$StorageAccountKey")
|
||||
$CloudStorageAccount = New-Object Microsoft.WindowsAzure.Storage.CloudStorageAccount($Creds, $true)
|
||||
$CloudTableClient = $CloudStorageAccount.CreateCloudTableClient()
|
||||
$Table = $CloudTableClient.GetTableReference($TableName)
|
||||
|
||||
$Query = New-Object "Microsoft.WindowsAzure.Storage.Table.TableQuery"
|
||||
$Datas = $Table.ExecuteQuery($Query)
|
||||
|
||||
$ExportObjs = @()
|
||||
|
||||
Foreach($Data in $Datas)
|
||||
{
|
||||
|
||||
$Obj = New-Object PSObject
|
||||
|
||||
$Obj | Add-Member -Name PartitionKey -Value $Data.PartitionKey -MemberType NoteProperty
|
||||
$Obj | Add-Member -Name RowKey -Value $Data.RowKey -MemberType NoteProperty
|
||||
|
||||
$Data.Properties.Keys | Foreach{$Value = $data.Properties[$_].PropertyAsObject;
|
||||
$Obj | Add-Member -Name $_ -Value $value -MemberType NoteProperty; }
|
||||
|
||||
$ExportObjs += $Obj
|
||||
}
|
||||
|
||||
#Export the entities of table storage to csv file.
|
||||
$ExportObjs | Export-Csv "$Path\$TableName.csv" -NoTypeInformation
|
||||
Write-Host "Successfully export the table storage to csv file."
|
||||
|
||||
}
|
||||
Else
|
||||
{
|
||||
Write-Warning "Cannot find blob '$TableName' because it does not exist. Please make sure thar the name of table is correct."
|
||||
}
|
||||
}
|
||||
}
|
||||
Else
|
||||
{
|
||||
Write-Warning "Cannot find storage account '$StorageAccountName' because it does not exist. Please make sure thar the name of storage is correct."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Function Import-AzureTableStorage
|
||||
{
|
||||
<#
|
||||
.SYNOPSIS
|
||||
This is an advanced function which can be used to import the entities of csv file into a table storage.
|
||||
.DESCRIPTION
|
||||
This is an advanced function which can be used to import the entities of csv file into a table storage.
|
||||
.PARAMETER StorageAccountName
|
||||
Spcifies the name of storage account.
|
||||
.PARAMETER TableName
|
||||
Specifies the name of table storage.
|
||||
.PARAMETER Path
|
||||
Specifies the file path of the csv to be imported. This parameter is required.
|
||||
|
||||
.EXAMPLE
|
||||
C:\PS> Import-AzureTableStorage -StorageAccountName "storageaccount" -TableName SchemasTable2 -Path C:\Tables\SchemasTable.csv
|
||||
|
||||
Successfully Imported entities of table storage named 'SchemasTable'.
|
||||
|
||||
This command shows how to import the entities of the csv file into a table storage.
|
||||
#>
|
||||
[CmdletBinding(SupportsShouldProcess=$true)]
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$ResourceGroupName,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$StorageAccountName,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$StorageAccountKey,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$TableName,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[String]$Path
|
||||
|
||||
)
|
||||
|
||||
#Check if Windows Azure PowerShell Module is avaliable
|
||||
If((Get-Module -ListAvailable Azure) -eq $null)
|
||||
{
|
||||
Write-Warning "Windows Azure PowerShell module not found! Please install from http://www.windowsazure.com/en-us/downloads/#cmd-line-tools"
|
||||
}
|
||||
Else
|
||||
{
|
||||
If($StorageAccountName)
|
||||
{
|
||||
Get-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -ErrorAction SilentlyContinue `
|
||||
-ErrorVariable IsExistStorageError | Out-Null
|
||||
|
||||
#Check if storage account is exist
|
||||
If($IsExistStorageError.Exception -eq $null)
|
||||
{
|
||||
If($TableName)
|
||||
{
|
||||
#Specify a Windows Azure Storage Library path
|
||||
$StorageLibraryPath = "$env:SystemDrive\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.5\ref\Microsoft.WindowsAzure.Storage.dll"
|
||||
|
||||
#Getting Azure storage account key
|
||||
|
||||
$Creds = New-Object Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("$StorageAccountName","$StorageAccountKey")
|
||||
$CloudStorageAccount = New-Object Microsoft.WindowsAzure.Storage.CloudStorageAccount($Creds, $true)
|
||||
$CloudTableClient = $CloudStorageAccount.CreateCloudTableClient()
|
||||
$Table = $CloudTableClient.GetTableReference($TableName)
|
||||
|
||||
#Create a Table Storage
|
||||
Write-Verbose "Creating a table storage named '$TableName'."
|
||||
#Try to create table if it does not exist
|
||||
$Table.CreateIfNotExists() | Out-Null
|
||||
|
||||
If(Test-Path -Path $Path)
|
||||
{
|
||||
$CsvContents = Import-Csv -Path $Path
|
||||
$CsvHeaders = ($CsvContents[0] | Get-Member -MemberType NoteProperty).Name | Where{$_ -ne "RowKey" -and $_ -ne "PartitionKey"}
|
||||
|
||||
Foreach($CsvContent in $CsvContents)
|
||||
{
|
||||
$PartitionKey = $CsvContent.PartitionKey
|
||||
$RowKey = $CsvContent.RowKey
|
||||
$Entity = New-Object "Microsoft.WindowsAzure.Storage.Table.DynamicTableEntity" "$PartitionKey", "$RowKey"
|
||||
|
||||
Foreach($CsvHeader in $CsvHeaders)
|
||||
{
|
||||
$Value = $CsvContent.$CsvHeader
|
||||
$Entity.Properties.Add($CsvHeader, $Value)
|
||||
}
|
||||
Write-Verbose "Inserting the entity into table storage."
|
||||
$result = $Table.Execute([Microsoft.WindowsAzure.Storage.Table.TableOperation]::Insert($Entity))
|
||||
}
|
||||
Write-Host "Successfully Imported entities of table storage named '$TableName'."
|
||||
}
|
||||
Else
|
||||
{
|
||||
Write-Warning "The path does not exist, please check it is correct."
|
||||
}
|
||||
}
|
||||
}
|
||||
Else
|
||||
{
|
||||
Write-Warning "Cannot find storage account '$StorageAccountName' because it does not exist. Please make sure thar the name of storage is correct."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,220 @@
|
|||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"Tenant_id": {
|
||||
"defaultValue": "",
|
||||
"type": "String"
|
||||
},
|
||||
"Redis_cache_name": {
|
||||
"defaultValue": "MatterCenterCache",
|
||||
"type": "String"
|
||||
},
|
||||
"autoscalesettings_name": {
|
||||
"defaultValue": "MatterCenterWebPlan",
|
||||
"type": "String"
|
||||
},
|
||||
"components_AppInsights_name": {
|
||||
"defaultValue": "MatterCenterInsights",
|
||||
"type": "String"
|
||||
},
|
||||
"vaults_KeyVault_name": {
|
||||
"defaultValue": "MatterCenterKeyVault",
|
||||
"type": "String"
|
||||
},
|
||||
"storageAccount_name": {
|
||||
"defaultValue": "mattercenterstorage",
|
||||
"type": "String"
|
||||
},
|
||||
"serverfarms_WebPlan_name": {
|
||||
"defaultValue": "MatterCenterWebPlan",
|
||||
"type": "String"
|
||||
},
|
||||
"webSite_name": {
|
||||
"defaultValue": "MatterCenterWeb",
|
||||
"type": "String"
|
||||
},
|
||||
"Web_ADApp_Name": {
|
||||
"defaultValue": "MatterCenterWebApp",
|
||||
"type": "String"
|
||||
},
|
||||
"KeyVault_ADApp_Name": {
|
||||
"defaultValue": "MatterCenterKVApp",
|
||||
"type": "String"
|
||||
},
|
||||
"KeyVault_certificate_expiryDate": {
|
||||
"defaultValue": "2018-04-11",
|
||||
"type": "String"
|
||||
}
|
||||
},
|
||||
"variables": {},
|
||||
"resources": [
|
||||
|
||||
{
|
||||
"type": "microsoft.insights/autoscalesettings",
|
||||
"name": "[parameters('autoscalesettings_name')]",
|
||||
"apiVersion": "2014-04-01",
|
||||
"location": "westus",
|
||||
"properties": {
|
||||
"profiles": [
|
||||
{
|
||||
"name": "Default",
|
||||
"capacity": {
|
||||
"minimum": "1",
|
||||
"maximum": "2",
|
||||
"default": "1"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"metricTrigger": {
|
||||
"metricName": "CpuPercentage",
|
||||
"metricNamespace": "",
|
||||
"metricResourceUri": "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_WebPlan_name'))]",
|
||||
"timeGrain": "PT1M",
|
||||
"statistic": "Average",
|
||||
"timeWindow": "PT10M",
|
||||
"timeAggregation": "Average",
|
||||
"operator": "GreaterThan",
|
||||
"threshold": 80
|
||||
},
|
||||
"scaleAction": {
|
||||
"direction": "Increase",
|
||||
"type": "ChangeCount",
|
||||
"value": "1",
|
||||
"cooldown": "PT10M"
|
||||
}
|
||||
},
|
||||
{
|
||||
"metricTrigger": {
|
||||
"metricName": "CpuPercentage",
|
||||
"metricNamespace": "",
|
||||
"metricResourceUri": "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_WebPlan_name'))]",
|
||||
"timeGrain": "PT1M",
|
||||
"statistic": "Average",
|
||||
"timeWindow": "PT1H",
|
||||
"timeAggregation": "Average",
|
||||
"operator": "LessThan",
|
||||
"threshold": 60
|
||||
},
|
||||
"scaleAction": {
|
||||
"direction": "Decrease",
|
||||
"type": "ChangeCount",
|
||||
"value": "1",
|
||||
"cooldown": "PT1H"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"enabled": false,
|
||||
"name": "[parameters('autoscalesettings_name')]",
|
||||
"targetResourceUri": "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_WebPlan_name'))]"
|
||||
},
|
||||
"resources": [],
|
||||
"dependsOn": [
|
||||
"[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_WebPlan_name'))]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Insights/components",
|
||||
"kind": "web",
|
||||
"name": "[parameters('components_AppInsights_name')]",
|
||||
"apiVersion": "2014-04-01",
|
||||
"location": "Central US",
|
||||
"properties": {
|
||||
"ApplicationId": "[parameters('components_AppInsights_name')]"
|
||||
},
|
||||
"resources": [],
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.KeyVault/vaults",
|
||||
"name": "[parameters('vaults_KeyVault_name')]",
|
||||
"apiVersion": "2015-06-01",
|
||||
"location": "West US",
|
||||
"tags": {},
|
||||
"properties": {
|
||||
"sku": {
|
||||
"family": "A",
|
||||
"name": "Standard"
|
||||
},
|
||||
"tenantId": "[parameters('Tenant_id')]",
|
||||
"accessPolicies": [
|
||||
|
||||
],
|
||||
"enabledForDeployment": false
|
||||
},
|
||||
"resources": [],
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Storage/storageAccounts",
|
||||
"sku": {
|
||||
"name": "Standard_RAGRS",
|
||||
"tier": "Standard"
|
||||
},
|
||||
"kind": "Storage",
|
||||
"name": "[parameters('storageAccount_name')]",
|
||||
"apiVersion": "2016-01-01",
|
||||
"location": "westus",
|
||||
"tags": {},
|
||||
"properties": {},
|
||||
"resources": [],
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Web/serverfarms",
|
||||
"sku": {
|
||||
"name": "F1",
|
||||
"tier": "Free",
|
||||
"size": "F1",
|
||||
"family": "F",
|
||||
"capacity": 0
|
||||
},
|
||||
"name": "[parameters('serverfarms_WebPlan_name')]",
|
||||
"apiVersion": "2015-08-01",
|
||||
"location": "West US",
|
||||
"properties": {
|
||||
"name": "[parameters('serverfarms_WebPlan_name')]",
|
||||
"numberOfWorkers": 0
|
||||
},
|
||||
"resources": [],
|
||||
"dependsOn": []
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Web/sites",
|
||||
"name": "[parameters('webSite_name')]",
|
||||
"apiVersion": "2015-08-01",
|
||||
"location": "West US",
|
||||
"properties": {
|
||||
"name": "[parameters('webSite_name')]",
|
||||
"hostNames": [
|
||||
"[concat(parameters('webSite_name'),'.azurewebsites.net')]"
|
||||
],
|
||||
"enabledHostNames": [
|
||||
"[concat(parameters('webSite_name'),'.azurewebsites.net')]",
|
||||
"[concat(parameters('webSite_name'),'.scm.azurewebsites.net')]"
|
||||
],
|
||||
"hostNameSslStates": [
|
||||
{
|
||||
"name": "[concat(parameters('webSite_name'),'.azurewebsites.net')]",
|
||||
"sslState": 0,
|
||||
"thumbprint": null,
|
||||
"ipBasedSslState": 0
|
||||
},
|
||||
{
|
||||
"name": "[concat(parameters('webSite_name'),'.scm.azurewebsites.net')]",
|
||||
"sslState": 0,
|
||||
"thumbprint": null,
|
||||
"ipBasedSslState": 0
|
||||
}
|
||||
],
|
||||
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_WebPlan_name'))]"
|
||||
},
|
||||
"resources": [],
|
||||
"dependsOn": [
|
||||
"[resourceId('Microsoft.Web/serverfarms', parameters('serverfarms_WebPlan_name'))]"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"Redis_cache_name": {
|
||||
"value": "MatterCenterAug2614"
|
||||
},
|
||||
"autoscalesettings_name": {
|
||||
"value": "MatterCenterAug2614"
|
||||
},
|
||||
"components_AppInsights_name": {
|
||||
"value": "MatterCenterAug2614"
|
||||
},
|
||||
"vaults_KeyVault_name": {
|
||||
"value": "MatterCenterAug2614"
|
||||
},
|
||||
"storageAccount_name": {
|
||||
"value": "mattercenteraug2614"
|
||||
},
|
||||
"serverfarms_WebPlan_name": {
|
||||
"value": "MatterCenterAug2614"
|
||||
},
|
||||
"webSite_name": {
|
||||
"value": "MatterCenterAug2614"
|
||||
},
|
||||
"Tenant_id": {
|
||||
"value": "3c4562ca-39a4-4d8b-91ff-6d3eefab5c1d"
|
||||
},
|
||||
"Web_ADApp_Name": {
|
||||
"value": "MatterCenterWebAppAD1"
|
||||
},
|
||||
"KeyVault_ADApp_Name": {
|
||||
"value": "MatterCenterKVApp1"
|
||||
},
|
||||
"KeyVault_certificate_expiryDate": {
|
||||
"value": "2018-04-11"
|
||||
}
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.Data.OData.dll
Normal file
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.Data.OData.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.Data.Services.Client.dll
Normal file
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.Data.Services.Client.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.WindowsAzure.Storage.DataMovement.dll
Normal file
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.WindowsAzure.Storage.DataMovement.dll
Normal file
Двоичный файл не отображается.
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.WindowsAzure.Storage.dll
Normal file
Двоичные данные
tree/master/cloud/src/solution/Deployment/Tools/Microsoft.WindowsAzure.Storage.dll
Normal file
Двоичный файл не отображается.
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.Legal.MatterCenter.Models
|
||||
{
|
||||
public class ManagedColumn
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the term (practice group).
|
||||
/// </summary>
|
||||
/// <value>The name of the term.</value>
|
||||
public string TermName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the id of the term (practice group). This is a GUID value (string representation) and is used as the Id property of the Term.
|
||||
/// </summary>
|
||||
/// <value>The id of the term.</value>
|
||||
public string Id
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the WssId of the term (practice group). This is an integer value being used as the Id of the Term in the TaxonomyHiddenList.
|
||||
/// </summary>
|
||||
/// <value>The WssId of the term.</value>
|
||||
public int WssId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,143 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.DataLayer
|
||||
// Author : v-swmirj
|
||||
// Created : 06-16-2015
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="Constants.cs" company="Microsoft.Legal.MatterCenter.DataLayer">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file defines constants used under current project.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.DataLayer
|
||||
{
|
||||
#region using
|
||||
using System.Collections.Generic;
|
||||
#endregion
|
||||
|
||||
static class Constants
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Holds the relative location for OneNote file that is uploaded upon matter creation
|
||||
/// </summary>
|
||||
internal const string ONENOTERELATIVEFILEPATH = "~/Open Notebook.onetoc2";
|
||||
|
||||
/// <summary>
|
||||
/// Constant required for extension for OneNote table of content
|
||||
/// </summary>
|
||||
internal const string EXTENSIONONENOTETABLEOFCONTENT = ".onetoc2";
|
||||
|
||||
/// <summary>
|
||||
/// The true constant
|
||||
/// </summary>
|
||||
internal const string TRUE = "true";
|
||||
|
||||
/// <summary>
|
||||
/// The false constant
|
||||
/// </summary>
|
||||
internal const string FALSE = "false";
|
||||
|
||||
/// <summary>
|
||||
/// The colon constant
|
||||
/// </summary>
|
||||
internal const string COLON = ":";
|
||||
|
||||
/// <summary>
|
||||
/// The forward slash constant
|
||||
/// </summary>
|
||||
internal const string FORWARDSLASH = "/";
|
||||
/// <summary>
|
||||
/// Web Query string
|
||||
/// </summary>
|
||||
internal const string WEBSTRING = "?Web=1";
|
||||
/// <summary>
|
||||
/// The dollar constant
|
||||
/// </summary>
|
||||
internal const string DOLLAR = "$";
|
||||
|
||||
/// <summary>
|
||||
/// Modified date column
|
||||
/// </summary>
|
||||
internal const string MODIFIED_DATE_COLUMN = "Modified";
|
||||
|
||||
/// <summary>
|
||||
/// The pipe constant
|
||||
/// </summary>
|
||||
internal const string PIPE = "|";
|
||||
|
||||
/// <summary>
|
||||
/// Zone index to be used while creating matter page
|
||||
/// </summary>
|
||||
internal const int ZONEINDEX = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Title column for list item
|
||||
/// </summary>
|
||||
internal const string TITLE = "Title";
|
||||
}
|
||||
|
||||
public class ListInformation
|
||||
{
|
||||
public string name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string description
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public string templateType
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public bool isContentTypeEnable
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public IList<string> folderNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public VersioningInfo versioning
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public string Path
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
public class VersioningInfo
|
||||
{
|
||||
public bool EnableVersioning
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public bool EnableMinorVersions
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public bool ForceCheckout
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -1,669 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.DataLayer
|
||||
// Author : v-rijadh
|
||||
// Created : 06-16-2015
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="Lists.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file contains methods related to SharePoint list object.</summary>
|
||||
// ***********************************************************************
|
||||
|
||||
//// Keeping using System over here because of usage of CLSComplaint attribute for namespace
|
||||
using System;
|
||||
[assembly: CLSCompliant(false)]
|
||||
namespace Microsoft.Legal.MatterCenter.DataLayer
|
||||
{
|
||||
#region using
|
||||
using Microsoft.SharePoint.Client;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using IO = System.IO;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Performs operation to update SharePoint list
|
||||
/// </summary>
|
||||
public static class Lists
|
||||
{
|
||||
/// <summary>
|
||||
/// Function to create document library for Matter and OneNote
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="listInfo">List information</param>
|
||||
/// <returns>Success flag</returns>
|
||||
|
||||
public static bool Create(ClientContext clientContext, ListInformation listInfo)
|
||||
{
|
||||
bool result = true;
|
||||
if (null != clientContext && null != listInfo && !string.IsNullOrWhiteSpace(listInfo.name))
|
||||
{
|
||||
Web web = clientContext.Web;
|
||||
ListTemplateCollection listTemplates = web.ListTemplates;
|
||||
ListCreationInformation creationInfo = new ListCreationInformation();
|
||||
creationInfo.Title = listInfo.name;
|
||||
creationInfo.Description = listInfo.description;
|
||||
// To determine changes in URL we specified below condition as this function is common
|
||||
if (!string.IsNullOrWhiteSpace(listInfo.Path))
|
||||
{
|
||||
creationInfo.Url = listInfo.Path;
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(listInfo.templateType))
|
||||
{
|
||||
string templateType = listInfo.templateType;
|
||||
clientContext.Load(listTemplates, item => item.Include(currentTemplate => currentTemplate.Name, currentTemplate => currentTemplate.ListTemplateTypeKind).Where(selectedTemplate => selectedTemplate.Name == templateType));
|
||||
clientContext.ExecuteQuery();
|
||||
if (null != listTemplates && 0 < listTemplates.Count)
|
||||
{
|
||||
creationInfo.TemplateType = listTemplates.FirstOrDefault().ListTemplateTypeKind;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
creationInfo.TemplateType = (int)ListTemplateType.DocumentLibrary;
|
||||
}
|
||||
if (result)
|
||||
{
|
||||
List list = web.Lists.Add(creationInfo);
|
||||
list.ContentTypesEnabled = listInfo.isContentTypeEnable;
|
||||
if (null != listInfo.folderNames && listInfo.folderNames.Count > 0)
|
||||
{
|
||||
list = Lists.AddFolders(clientContext, list, listInfo.folderNames);
|
||||
}
|
||||
if (null != listInfo.versioning)
|
||||
{
|
||||
list.EnableVersioning = listInfo.versioning.EnableVersioning;
|
||||
list.EnableMinorVersions = listInfo.versioning.EnableMinorVersions;
|
||||
list.ForceCheckout = listInfo.versioning.ForceCheckout;
|
||||
}
|
||||
list.Update();
|
||||
clientContext.Load(list, l => l.DefaultViewUrl);
|
||||
clientContext.ExecuteQuery();
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates the OneNote in List/Library
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="clientAddressPath">Client URL</param>
|
||||
/// <param name="oneNoteLocation">OneNote URL</param>
|
||||
/// <param name="oneNoteTitle">OneNote Title</param>
|
||||
/// <param name="listName">List/library name</param>
|
||||
/// <returns></returns>
|
||||
public static string AddOneNote(ClientContext clientContext, string clientAddressPath, string oneNoteLocation, string listName, string oneNoteTitle)
|
||||
{
|
||||
string returnValue = String.Empty;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(clientAddressPath) && !string.IsNullOrWhiteSpace(oneNoteLocation) && !string.IsNullOrWhiteSpace(listName))
|
||||
{
|
||||
Uri clientUrl = new Uri(clientAddressPath);
|
||||
string oneNotePath = HttpContext.Current.Server.MapPath(Constants.ONENOTERELATIVEFILEPATH);
|
||||
byte[] oneNoteFile = System.IO.File.ReadAllBytes(oneNotePath);
|
||||
Web web = clientContext.Web;
|
||||
Microsoft.SharePoint.Client.File file = web.GetFolderByServerRelativeUrl(oneNoteLocation).Files.Add(new FileCreationInformation()
|
||||
{
|
||||
Url = string.Concat(listName, Constants.EXTENSIONONENOTETABLEOFCONTENT),
|
||||
Overwrite = true,
|
||||
ContentStream = new IO.MemoryStream(oneNoteFile)
|
||||
});
|
||||
web.Update();
|
||||
clientContext.Load(file);
|
||||
clientContext.ExecuteQuery();
|
||||
ListItem oneNote = file.ListItemAllFields;
|
||||
oneNote["Title"] = oneNoteTitle;
|
||||
oneNote.Update();
|
||||
returnValue = string.Concat(clientUrl.Scheme, Constants.COLON, Constants.FORWARDSLASH, Constants.FORWARDSLASH, clientUrl.Authority, file.ServerRelativeUrl, Constants.WEBSTRING);
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds all the folders from Content type in matter library.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="list">List of folders</param>
|
||||
/// <param name="folderNames">The folder names.</param>
|
||||
/// <returns>Microsoft SharePoint Client List</returns>
|
||||
public static List AddFolders(ClientContext clientContext, List list, IList<string> folderNames)
|
||||
{
|
||||
if (null != clientContext && null != list && null != folderNames)
|
||||
{
|
||||
FolderCollection listFolders = list.RootFolder.Folders;
|
||||
Folder listRootFolder = list.RootFolder;
|
||||
clientContext.Load(listFolders);
|
||||
clientContext.ExecuteQuery();
|
||||
if (0 < folderNames.Count)
|
||||
{
|
||||
foreach (string folderName in folderNames)
|
||||
{
|
||||
// Check for empty folder names
|
||||
if (!string.IsNullOrEmpty(folderName))
|
||||
{
|
||||
listFolders.Add(folderName);
|
||||
listRootFolder.Update();
|
||||
}
|
||||
}
|
||||
list.Update();
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds list item in specified list.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="list">Name of the list</param>
|
||||
/// <param name="columns">List of column names</param>
|
||||
/// <param name="values">Values for corresponding columns</param>
|
||||
/// <returns>String stating success flag</returns>
|
||||
public static bool AddItem(ClientContext clientContext, List list, IList<string> columns, IList<object> values)
|
||||
{
|
||||
bool result = false;
|
||||
if (null != clientContext && null != list && null != columns && null != values && columns.Count == values.Count)
|
||||
{
|
||||
// Add the Matter URL in list
|
||||
ListItemCreationInformation listItemCreateInfo = new ListItemCreationInformation();
|
||||
ListItem newListItem = list.AddItem(listItemCreateInfo);
|
||||
int position = 0;
|
||||
foreach (string column in columns)
|
||||
{
|
||||
newListItem[column] = values[position++];
|
||||
}
|
||||
///// Update the list
|
||||
newListItem.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Breaks the permissions of the list.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="libraryName">Name of list</param>
|
||||
/// <param name="isCopyRoleAssignment">Flag to copy permission from parent</param>
|
||||
/// <returns>Success flag</returns>
|
||||
public static bool BreakPermission(ClientContext clientContext, string libraryName, bool isCopyRoleAssignment)
|
||||
{
|
||||
bool flag = false;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(libraryName))
|
||||
{
|
||||
try
|
||||
{
|
||||
List list = clientContext.Web.Lists.GetByTitle(libraryName);
|
||||
clientContext.Load(list, l => l.HasUniqueRoleAssignments);
|
||||
clientContext.ExecuteQuery();
|
||||
|
||||
if (!list.HasUniqueRoleAssignments)
|
||||
{
|
||||
list.BreakRoleInheritance(isCopyRoleAssignment, true);
|
||||
list.Update();
|
||||
clientContext.Load(list);
|
||||
clientContext.ExecuteQuery();
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw; // This will transfer control to catch block of parent function.
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets permissions for the list.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="AssignUserEmails">List of User emails to give permission</param>
|
||||
/// <param name="permissions">Permissions for the users</param>
|
||||
/// <param name="listName">List name</param>
|
||||
/// <returns>String stating success flag</returns>
|
||||
public static bool SetPermission(ClientContext clientContext, IList<IList<string>> AssignUserEmails, IList<string> permissions, string listName)
|
||||
{
|
||||
bool result = false;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(listName))
|
||||
{
|
||||
ClientRuntimeContext clientRuntimeContext = clientContext;
|
||||
try
|
||||
{
|
||||
List list = clientContext.Web.Lists.GetByTitle(listName);
|
||||
clientContext.Load(list, l => l.HasUniqueRoleAssignments);
|
||||
clientContext.ExecuteQuery();
|
||||
if (list.HasUniqueRoleAssignments && null != permissions && null != AssignUserEmails && permissions.Count == AssignUserEmails.Count)
|
||||
{
|
||||
int position = 0;
|
||||
foreach (string roleName in permissions)
|
||||
{
|
||||
IList<string> assignUserEmails = AssignUserEmails[position];
|
||||
if (!string.IsNullOrWhiteSpace(roleName) && null != assignUserEmails)
|
||||
{
|
||||
RoleDefinition roleDefinition = clientContext.Web.RoleDefinitions.GetByName(roleName);
|
||||
foreach (string user in assignUserEmails)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(user))
|
||||
{
|
||||
/////get the user object
|
||||
Principal userPrincipal = clientContext.Web.EnsureUser(user.Trim());
|
||||
/////create the role definition binding collection
|
||||
RoleDefinitionBindingCollection roleDefinitionBindingCollection = new RoleDefinitionBindingCollection(clientRuntimeContext);
|
||||
/////add the role definition to the collection
|
||||
roleDefinitionBindingCollection.Add(roleDefinition);
|
||||
/////create a RoleAssigment with the user and role definition
|
||||
list.RoleAssignments.Add(userPrincipal, roleDefinitionBindingCollection);
|
||||
}
|
||||
}
|
||||
/////execute the query to add everything
|
||||
clientRuntimeContext.ExecuteQuery();
|
||||
}
|
||||
position++;
|
||||
}
|
||||
///// Success. Return a success code
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validates and breaks the item level permission for the specified list item under the list/library.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="listName">List name</param>
|
||||
/// <param name="listItemId">Unique list item id to break item level permission</param>
|
||||
/// <param name="isCopyRoleAssignment">Flag to copy permission from parent</param>
|
||||
/// <returns>String stating success flag</returns>
|
||||
public static bool BreakItemPermission(ClientContext clientContext, string listName, int listItemId, bool isCopyRoleAssignment)
|
||||
{
|
||||
bool result = false;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(listName))
|
||||
{
|
||||
ListItem listItem = clientContext.Web.Lists.GetByTitle(listName).GetItemById(listItemId);
|
||||
clientContext.Load(listItem, item => item.HasUniqueRoleAssignments);
|
||||
clientContext.ExecuteQuery();
|
||||
|
||||
if (!listItem.HasUniqueRoleAssignments)
|
||||
{
|
||||
listItem.BreakRoleInheritance(isCopyRoleAssignment, true);
|
||||
listItem.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set permission to the specified list item
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="AssignUserEmails">User emails to give permission</param>
|
||||
/// <param name="listName">List name</param>
|
||||
/// <param name="listItemId">Unique list item id to break item level permission</param>
|
||||
/// <param name="permissions">Permissions for the users</param>
|
||||
/// <returns>Status of the unique item level permission assignment operation</returns>
|
||||
public static bool SetItemPermission(ClientContext clientContext, IList<IList<string>> AssignUserEmails, string listName, int listItemId, IList<string> permissions)
|
||||
{
|
||||
bool result = false;
|
||||
if (null != clientContext)
|
||||
{
|
||||
ClientRuntimeContext clientRuntimeContext = clientContext;
|
||||
ListItem listItem = clientContext.Web.Lists.GetByTitle(listName).GetItemById(listItemId);
|
||||
clientContext.Load(listItem, item => item.HasUniqueRoleAssignments);
|
||||
clientContext.ExecuteQuery();
|
||||
if (listItem.HasUniqueRoleAssignments && null != permissions && null != AssignUserEmails && permissions.Count == AssignUserEmails.Count)
|
||||
{
|
||||
int position = 0;
|
||||
foreach (string roleName in permissions)
|
||||
{
|
||||
IList<string> assignUserEmails = AssignUserEmails[position];
|
||||
if (!string.IsNullOrWhiteSpace(roleName) && null != assignUserEmails)
|
||||
{
|
||||
RoleDefinition roleDefinition = clientContext.Web.RoleDefinitions.GetByName(roleName);
|
||||
foreach (string user in assignUserEmails)
|
||||
{
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(user))
|
||||
{
|
||||
/////get the user object
|
||||
Principal userPrincipal = clientContext.Web.EnsureUser(user.Trim());
|
||||
/////create the role definition binding collection
|
||||
RoleDefinitionBindingCollection roleDefinitionBindingCollection = new RoleDefinitionBindingCollection(clientRuntimeContext);
|
||||
/////add the role definition to the collection
|
||||
roleDefinitionBindingCollection.Add(roleDefinition);
|
||||
/////create a RoleAssigment with the user and role definition
|
||||
listItem.RoleAssignments.Add(userPrincipal, roleDefinitionBindingCollection);
|
||||
}
|
||||
}
|
||||
/////execute the query to add everything
|
||||
clientRuntimeContext.ExecuteQuery();
|
||||
}
|
||||
position++;
|
||||
}
|
||||
///// Success. Return a success code
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list items of specified list based on CAML query.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="listName">Name of the list</param>
|
||||
/// <param name="camlQuery">CAML Query that need to be executed on list</param>
|
||||
/// <returns>Collection of list items</returns>
|
||||
public static ListItemCollection GetData(ClientContext clientContext, string listName, string camlQuery = null)
|
||||
{
|
||||
ListItemCollection listItemCollection = null;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(listName))
|
||||
{
|
||||
try
|
||||
{
|
||||
CamlQuery query = new CamlQuery();
|
||||
if (!string.IsNullOrWhiteSpace(camlQuery))
|
||||
{
|
||||
query.ViewXml = camlQuery;
|
||||
listItemCollection = clientContext.Web.Lists.GetByTitle(listName).GetItems(query);
|
||||
}
|
||||
else
|
||||
{
|
||||
listItemCollection = clientContext.Web.Lists.GetByTitle(listName).GetItems(CamlQuery.CreateAllItemsQuery());
|
||||
}
|
||||
clientContext.Load(listItemCollection);
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
listItemCollection = null;
|
||||
throw;
|
||||
}
|
||||
}
|
||||
return listItemCollection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new view for the list
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="matterList">List name</param>
|
||||
/// <param name="viewColumnList">Name of the columns in view</param>
|
||||
/// <param name="viewName">View name</param>
|
||||
/// <param name="strQuery">View query</param>
|
||||
/// <returns>String stating success flag</returns>
|
||||
public static bool AddView(ClientContext clientContext, List matterList, string[] viewColumnList, string viewName, string strQuery)
|
||||
{
|
||||
bool result = true;
|
||||
if (null != clientContext && null != matterList && null != viewColumnList && !string.IsNullOrWhiteSpace(viewName) && !string.IsNullOrWhiteSpace(strQuery))
|
||||
try
|
||||
{
|
||||
View outlookView = matterList.Views.Add(new ViewCreationInformation
|
||||
{
|
||||
Title = viewName,
|
||||
ViewTypeKind = ViewType.Html,
|
||||
ViewFields = viewColumnList,
|
||||
Paged = true
|
||||
});
|
||||
outlookView.ViewQuery = strQuery;
|
||||
outlookView.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Function to check whether list is present or not.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object for SharePoint</param>
|
||||
/// <param name="listsNames">List name</param>
|
||||
/// <returns>Success flag</returns>
|
||||
public static List<string> Exists(ClientContext clientContext, ReadOnlyCollection<string> listsNames)
|
||||
{
|
||||
List<string> existingLists = new List<string>();
|
||||
if (null != clientContext && null != listsNames)
|
||||
{
|
||||
ListCollection lists = clientContext.Web.Lists;
|
||||
clientContext.Load(lists);
|
||||
clientContext.ExecuteQuery();
|
||||
existingLists = (from listName in listsNames
|
||||
join item in lists
|
||||
on listName.ToUpper(CultureInfo.InvariantCulture) equals item.Title.ToUpper(CultureInfo.InvariantCulture)
|
||||
select listName).ToList();
|
||||
}
|
||||
return existingLists;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Function to delete the list
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="listsNames">List name</param>
|
||||
/// <returns>Success flag</returns>
|
||||
public static bool Delete(ClientContext clientContext, IList<string> listsNames)
|
||||
{
|
||||
bool result = false;
|
||||
if (null != clientContext && null != listsNames)
|
||||
{
|
||||
ListCollection allLists = clientContext.Web.Lists;
|
||||
clientContext.Load(allLists);
|
||||
clientContext.ExecuteQuery();
|
||||
foreach (string listName in listsNames)
|
||||
{
|
||||
List list = allLists.Cast<List>().FirstOrDefault(item => item.Title.ToUpperInvariant().Equals(listName.ToUpperInvariant()));
|
||||
if (null != list)
|
||||
{
|
||||
result = true;
|
||||
list.DeleteObject();
|
||||
}
|
||||
|
||||
}
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves the list item ID.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="libraryName">Library name</param>
|
||||
/// <param name="pageName">Page name</param>
|
||||
/// <returns>List item id</returns>
|
||||
public static int RetrieveItemId(ClientContext clientContext, string libraryName, string pageName)
|
||||
{
|
||||
int listItemId = -1;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(libraryName) && !string.IsNullOrWhiteSpace(pageName))
|
||||
{
|
||||
ListItemCollection listItemCollection = GetData(clientContext, libraryName);
|
||||
clientContext.Load(listItemCollection, listItemCollectionProperties => listItemCollectionProperties.Include(listItemProperties => listItemProperties.Id, listItemProperties => listItemProperties.DisplayName));
|
||||
clientContext.ExecuteQuery();
|
||||
|
||||
ListItem listItem = listItemCollection.Cast<ListItem>().FirstOrDefault(listItemProperties => listItemProperties.DisplayName.ToUpper(CultureInfo.InvariantCulture).Equals(pageName.ToUpper(CultureInfo.InvariantCulture)));
|
||||
|
||||
if (null != listItem)
|
||||
{
|
||||
listItemId = listItem.Id;
|
||||
}
|
||||
}
|
||||
return listItemId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To check if the folder is present in the list
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="folderPath">Folder path</param>
|
||||
/// <param name="documentLibraryName">Document library name</param>
|
||||
/// <returns>true or false</returns>
|
||||
public static bool CheckFolderPresent(ClientContext clientContext, string folderPath, string documentLibraryName)
|
||||
{
|
||||
bool folderFound = false;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(documentLibraryName) && !string.IsNullOrWhiteSpace(folderPath))
|
||||
{
|
||||
List list = clientContext.Web.Lists.GetByTitle(documentLibraryName);
|
||||
ListItemCollection folderList = list.GetItems(CamlQuery.CreateAllFoldersQuery());
|
||||
clientContext.Load(folderList, item => item.Include(items => items.Folder.Name, items => items.Folder.ServerRelativeUrl).Where(items => items.Folder.ServerRelativeUrl == folderPath));
|
||||
clientContext.ExecuteQuery();
|
||||
folderFound = 0 < folderList.Count;
|
||||
}
|
||||
return folderFound;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns stream data of the file.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="documentUrl">Document URL of the document whose stream is to be retrieved</param>
|
||||
/// <returns>Stream of the file</returns>
|
||||
public static ClientResult<System.IO.Stream> GetStreamFromFile(ClientContext clientContext, string documentUrl)
|
||||
{
|
||||
ClientResult<System.IO.Stream> data = null;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(documentUrl))
|
||||
{
|
||||
File file = clientContext.Web.GetFileByServerRelativeUrl(documentUrl);
|
||||
data = file.OpenBinaryStream();
|
||||
// Load the Stream data for the file
|
||||
clientContext.Load(file);
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if item is modified after it is loaded on the client side
|
||||
/// </summary>
|
||||
/// <param name="collection">List item collection</param>
|
||||
/// <param name="cachedItemModifiedDate">Date time when current user loaded the page to see/update configuration values.</param>
|
||||
/// <returns>Success flag</returns>
|
||||
public static bool CheckItemModified(ListItemCollection collection, string cachedItemModifiedDate)
|
||||
{
|
||||
bool response = false;
|
||||
int errorModifiedDate = 0; // If there is new list item being created then 'cachedItemModifiedDate' will be 0
|
||||
if (null != collection && !string.IsNullOrWhiteSpace(cachedItemModifiedDate))
|
||||
{
|
||||
if (String.Equals(Convert.ToString(errorModifiedDate, CultureInfo.InvariantCulture), cachedItemModifiedDate) && collection.Count.Equals(0)) // Verify if new item flag is true and no list item is present in the Matter Configuration list
|
||||
{
|
||||
response = true;
|
||||
}
|
||||
else if (0 < collection.Count)
|
||||
{
|
||||
ListItem settingsListItem = collection.FirstOrDefault();
|
||||
DateTime cachedDate;
|
||||
if (DateTime.TryParse(cachedItemModifiedDate, out cachedDate))
|
||||
{
|
||||
DateTime itemModifiedDate = Convert.ToDateTime(settingsListItem[Constants.MODIFIED_DATE_COLUMN], CultureInfo.InvariantCulture);
|
||||
if (0 == DateTime.Compare(cachedDate, itemModifiedDate))
|
||||
{
|
||||
response = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the value of the specified property.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="props">Property Bag</param>
|
||||
/// <param name="matterName">Name of matter to which property is to be attached</param>
|
||||
/// <param name="propertyList">List of properties</param>
|
||||
public static void SetPropertBagValuesForList(ClientContext clientContext, PropertyValues props, string matterName, Dictionary<string, string> propertyList)
|
||||
{
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(matterName) && null != props && null != propertyList)
|
||||
{
|
||||
List list = clientContext.Web.Lists.GetByTitle(matterName);
|
||||
|
||||
foreach (var item in propertyList)
|
||||
{
|
||||
props[item.Key] = item.Value;
|
||||
list.Update();
|
||||
}
|
||||
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the values of property for specified matter.
|
||||
/// </summary>
|
||||
/// <param name="context">Client context</param>
|
||||
/// <param name="matterName">Name of matter</param>
|
||||
/// <param name="propertyList">List of properties</param>
|
||||
/// <returns>Property list stamped to the matter</returns>
|
||||
public static string GetPropertyValueForList(ClientContext context, string matterName, string propertyList)
|
||||
{
|
||||
string value = string.Empty;
|
||||
if (null != context && !string.IsNullOrWhiteSpace(matterName) && null != propertyList)
|
||||
{
|
||||
ListCollection allLists = context.Web.Lists;
|
||||
context.Load(allLists);
|
||||
context.ExecuteQuery();
|
||||
List list = allLists.Cast<List>().FirstOrDefault(item => item.Title.ToUpperInvariant().Equals(matterName.ToUpperInvariant()));
|
||||
if (null != list)
|
||||
{
|
||||
var props = list.RootFolder.Properties;
|
||||
context.Load(props);
|
||||
context.ExecuteQuery();
|
||||
if (null != props)
|
||||
{
|
||||
if (props.FieldValues.ContainsKey(propertyList))
|
||||
{
|
||||
value = Convert.ToString(props.FieldValues[propertyList], CultureInfo.InvariantCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether user has a particular permission on the list
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="listName">List name</param>
|
||||
/// <param name="permission">Permission to be checked</param>
|
||||
/// <returns>Success flag</returns>
|
||||
public static bool CheckPermissionOnList(ClientContext clientContext, string listName, PermissionKind permission)
|
||||
{
|
||||
bool returnValue = false;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(listName))
|
||||
{
|
||||
ListCollection listCollection = clientContext.Web.Lists;
|
||||
clientContext.Load(listCollection, lists => lists.Include(list => list.Title, list => list.EffectiveBasePermissions).Where(list => list.Title == listName));
|
||||
clientContext.ExecuteQuery();
|
||||
if (0 < listCollection.Count)
|
||||
{
|
||||
returnValue = listCollection[0].EffectiveBasePermissions.Has(permission);
|
||||
}
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,115 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{C1760739-9EB8-4F21-BB8D-14E6EACC7CE1}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Microsoft.Legal.MatterCenter.DataLayer</RootNamespace>
|
||||
<AssemblyName>Microsoft.Legal.MatterCenter.DataLayer</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AssemblyOriginatorKeyFile>DataLayer.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\DocumentFormat.OpenXml.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.WebServices, Version=15.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.Exchange.WebServices.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.SharePoint.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.SharePoint.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.SharePoint.Client.Runtime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.SharePoint.Client.Runtime.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.SharePoint.Client.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.SharePoint.Client.Search.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.SharePoint.Client.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.SharePoint.Client.Taxonomy.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.SharePoint.Client.UserProfiles, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.SharePoint.Client.UserProfiles.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.WindowsAzure.ServiceRuntime, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.WindowsAzure.ServiceRuntime.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.WindowsAzure.Storage, Version=3.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Microsoft.WindowsAzure.Storage.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.ServiceModel.Web" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Constants\Constants.cs" />
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="Lists.cs" />
|
||||
<Compile Include="Page.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="DataLayer.snk" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -1,10 +0,0 @@
|
|||
""
|
||||
{
|
||||
"FILE_VERSION" = "9237"
|
||||
"ENLISTMENT_CHOICE" = "NEVER"
|
||||
"PROJECT_FILE_RELATIVE_PATH" = ""
|
||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
|
||||
}
|
|
@ -1,159 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.DataLayer
|
||||
// Author : v-nikhid
|
||||
// Created : 06-16-2015
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="Page.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file contains methods related to SharePoint page object.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.DataLayer
|
||||
{
|
||||
#region using
|
||||
using Microsoft.SharePoint.Client;
|
||||
using Microsoft.SharePoint.Client.WebParts;
|
||||
using System;
|
||||
using System.IO;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Performs operations related to SharePoint page.
|
||||
/// </summary>
|
||||
public static class Page
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the page
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="pageUrl">Page URL</param>
|
||||
public static void Delete(ClientContext clientContext, string pageUrl)
|
||||
{
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(pageUrl))
|
||||
{
|
||||
Microsoft.SharePoint.Client.File clientFile = clientContext.Web.GetFileByServerRelativeUrl(pageUrl);
|
||||
if (IsFileExists(clientContext, pageUrl))
|
||||
{
|
||||
clientFile.DeleteObject();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks the file at the specified location and return the file existence status.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="pageUrl">File URL</param>
|
||||
/// <returns>Success flag</returns>
|
||||
public static bool IsFileExists(ClientContext clientContext, string pageUrl)
|
||||
{
|
||||
bool success = false;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(pageUrl))
|
||||
{
|
||||
Microsoft.SharePoint.Client.File clientFile = clientContext.Web.GetFileByServerRelativeUrl(pageUrl);
|
||||
clientContext.Load(clientFile, cf => cf.Exists);
|
||||
clientContext.ExecuteQuery();
|
||||
success = clientFile.Exists;
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a web part page of matter in the document library.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="pageName">Web part page name</param>
|
||||
/// <param name="layout">Layout for the page</param>
|
||||
/// <param name="listName">List/library name</param>
|
||||
/// <param name="masterpagelistName">master page list name</param>
|
||||
/// <param name="pageTitle">Page title</param>
|
||||
/// <returns>Web part page id</returns>
|
||||
public static int CreateWebPartPage(ClientContext clientContext, string pageName, string layout, string masterpagelistName, string listName, string pageTitle)
|
||||
{
|
||||
int response = -1;
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(pageName) && !string.IsNullOrWhiteSpace(layout) && !string.IsNullOrWhiteSpace(masterpagelistName) && !string.IsNullOrWhiteSpace(listName))
|
||||
{
|
||||
try
|
||||
{
|
||||
//// Find Default Layout from Master Page Gallery to create Web Part Page
|
||||
|
||||
Web web = clientContext.Web;
|
||||
ListItemCollection collection = Lists.GetData(clientContext, masterpagelistName);
|
||||
clientContext.Load(collection, listItemCollectionProperties => listItemCollectionProperties.Include(listItemProperties => listItemProperties.Id, listItemProperties => listItemProperties.DisplayName));
|
||||
clientContext.ExecuteQuery();
|
||||
ListItem fileName = null;
|
||||
foreach (ListItem findLayout in collection)
|
||||
{
|
||||
if (findLayout.DisplayName.Equals(layout, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
fileName = findLayout;
|
||||
break;
|
||||
}
|
||||
}
|
||||
FileCreationInformation objFileInfo = new FileCreationInformation();
|
||||
objFileInfo.Url = pageName;
|
||||
Microsoft.SharePoint.Client.File fileLayout = fileName.File;
|
||||
clientContext.Load(fileLayout);
|
||||
clientContext.ExecuteQuery();
|
||||
ClientResult<Stream> filedata = fileLayout.OpenBinaryStream();
|
||||
List sitePageLib = web.Lists.GetByTitle(listName);
|
||||
clientContext.Load(sitePageLib);
|
||||
clientContext.ExecuteQuery();
|
||||
StreamReader reader = new StreamReader(filedata.Value);
|
||||
objFileInfo.Content = System.Text.Encoding.ASCII.GetBytes(reader.ReadToEnd());
|
||||
Microsoft.SharePoint.Client.File matterLandingPage = sitePageLib.RootFolder.Files.Add(objFileInfo);
|
||||
ListItem matterLandingPageDetails = matterLandingPage.ListItemAllFields;
|
||||
// Update the title of the page
|
||||
matterLandingPageDetails[Constants.TITLE] = pageTitle;
|
||||
matterLandingPageDetails.Update();
|
||||
clientContext.Load(matterLandingPageDetails, matterLandingPageProperties => matterLandingPageProperties[Constants.TITLE], matterLandingPageProperties => matterLandingPageProperties.Id);
|
||||
clientContext.ExecuteQuery();
|
||||
response = matterLandingPageDetails.Id;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
response = -1;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds all web parts on matter landing page.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="limitedWebPartManager">LimitedWebPartManager object to import web parts</param>
|
||||
/// <param name="webPartDefinition">WebPartDefinition object to add web parts on page</param>
|
||||
/// <param name="webParts">Array of web parts that should be added on Matter Landing Page</param>
|
||||
/// <param name="zones">Array of Zone IDs</param>
|
||||
/// <returns>Success flag</returns>
|
||||
public static bool AddWebPart(ClientContext clientContext, LimitedWebPartManager limitedWebPartManager, WebPartDefinition webPartDefinition, string[] webParts, string[] zones)
|
||||
{
|
||||
bool result = false;
|
||||
if (null != clientContext && null != limitedWebPartManager && null != webParts && null != zones)
|
||||
{
|
||||
int index = 0;
|
||||
try
|
||||
{
|
||||
for (index = 0; index < webParts.Length; index++)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(webParts[index]))
|
||||
{
|
||||
webPartDefinition = limitedWebPartManager.ImportWebPart(webParts[index]);
|
||||
limitedWebPartManager.AddWebPart(webPartDefinition.WebPart, zones[index], Constants.ZONEINDEX);
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.Entity
|
||||
// Author : v-akvira
|
||||
// Created : 04-01-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="Enumerators.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file defines enumerators used under current project.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.Entity
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides set of enumerators available in Matter Center.
|
||||
/// </summary>
|
||||
public static class Enumerators
|
||||
{
|
||||
/// <summary>
|
||||
/// Supports selection of enumerator to refer to local/global resource file.
|
||||
/// </summary>
|
||||
public enum ResourceFileLocation
|
||||
{
|
||||
/// <summary>
|
||||
/// The resource file refers to App_GlobalResource folder.
|
||||
/// </summary>
|
||||
App_GlobalResources,
|
||||
|
||||
/// <summary>
|
||||
/// The resource file refers to App_LocalResource folder.
|
||||
/// </summary>
|
||||
App_LocalResources,
|
||||
|
||||
/// <summary>
|
||||
/// The resource file refers to bin folder.
|
||||
/// </summary>
|
||||
bin
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Matter Landing page section mapping
|
||||
/// </summary>
|
||||
public enum MatterLandingSection
|
||||
{
|
||||
/// <summary>
|
||||
/// Task panel mapping
|
||||
/// </summary>
|
||||
TaskPanel,
|
||||
|
||||
/// <summary>
|
||||
/// Calendar panel mapping
|
||||
/// </summary>
|
||||
CalendarPanel,
|
||||
|
||||
/// <summary>
|
||||
/// Footer panel mapping
|
||||
/// </summary>
|
||||
FooterPanel,
|
||||
|
||||
/// <summary>
|
||||
/// Information panel mapping
|
||||
/// </summary>
|
||||
InformationPanel,
|
||||
|
||||
/// <summary>
|
||||
/// Header panel mapping
|
||||
/// </summary>
|
||||
HeaderPanel,
|
||||
|
||||
/// <summary>
|
||||
/// RSS Title panel mapping
|
||||
/// </summary>
|
||||
RSSTitlePanel,
|
||||
|
||||
/// <summary>
|
||||
/// OneNote panel mapping
|
||||
/// </summary>
|
||||
OneNotePanel
|
||||
}
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
|
@ -1,297 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.Entity
|
||||
// Author : v-swmirj
|
||||
// Created : 06-19-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="LegalBriefcaseObject.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file provides the structure required for briefcase operations. It includes the document ID and URL.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.Entity
|
||||
{
|
||||
#region using
|
||||
using System.Collections.Generic;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for Matter Center briefcase operations. It includes the document ID and URL.
|
||||
/// </summary>
|
||||
public class BriefcaseDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets document ID. Represents the unique document in matter library.
|
||||
/// </summary>
|
||||
/// <value>The document identifier.</value>
|
||||
public string DocumentId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets document URL. Represents the URL of document in matter library.
|
||||
/// </summary>
|
||||
/// <value>The document URL.</value>
|
||||
public string DocumentUrl
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to perform briefcase operations (Update Copy, Matter Check In, and Matter Check Out and Detach) for particular briefcase document.
|
||||
/// </summary>
|
||||
public class SyncDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets List ID of the item.
|
||||
/// </summary>
|
||||
/// <value>The list identifier.</value>
|
||||
public string ListId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets list of item ID. Represents the items selected in briefcase operations.
|
||||
/// </summary>
|
||||
/// <value>The item identifier.</value>
|
||||
public IList<int> ItemId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Integer value specifying the type of operation i.e. Update Copy, Matter Check In, and Matter Check Out and Detach.
|
||||
/// </summary>
|
||||
/// <value>The briefcase operation.</value>
|
||||
public int Operation
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the response/status of each document in legal briefcase operation.
|
||||
/// </summary>
|
||||
public class ResponseDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the status of operation requested. Indicates whether the operation was success/failure.
|
||||
/// </summary>
|
||||
/// <value>The status of operation.</value>
|
||||
public string Status
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of file names returned. Represents the files involved in the operation.
|
||||
/// </summary>
|
||||
/// <value>The file names.</value>
|
||||
public IList<string> FileNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the version details, status flag, and success/error message, relative URL for document after briefcase operation.
|
||||
/// </summary>
|
||||
public class VersionDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="VersionDetails"/> class.
|
||||
/// </summary>
|
||||
public VersionDetails()
|
||||
{
|
||||
this.IsMajorVersion = new List<bool>();
|
||||
this.IsMinorVersion = new List<bool>();
|
||||
this.CurrentMinorVersion = new List<string>();
|
||||
this.CurrentMajorVersion = new List<string>();
|
||||
this.CheckOutStatus = new List<string>();
|
||||
this.RelativeURL = new List<string>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether this <see cref="VersionDetails"/> is having status.
|
||||
/// </summary>
|
||||
/// <value>The status indicating whether the document is checked out by logged-in user or not.</value>
|
||||
public bool Status
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets boolean indicator for major version.
|
||||
/// </summary>
|
||||
/// <value>The major version.</value>
|
||||
public IList<bool> IsMajorVersion
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets boolean indicator for minor version.
|
||||
/// </summary>
|
||||
/// <value>The minor version.</value>
|
||||
public IList<bool> IsMinorVersion
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets minor version of the item.
|
||||
/// </summary>
|
||||
/// <value>The current minor version.</value>
|
||||
public IList<string> CurrentMinorVersion
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets major version of the item.
|
||||
/// </summary>
|
||||
/// <value>The current major version.</value>
|
||||
public IList<string> CurrentMajorVersion
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets check out status for the item.
|
||||
/// </summary>
|
||||
/// <value>The check out status.</value>
|
||||
public IList<string> CheckOutStatus
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets relative URL of the items.
|
||||
/// </summary>
|
||||
/// <value>The relative URL.</value>
|
||||
public IList<string> RelativeURL
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the error message.
|
||||
/// </summary>
|
||||
/// <value>The error message.</value>
|
||||
public string ErrorMessage
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the file names, status, success/error message for briefcase operation.
|
||||
/// </summary>
|
||||
public class CommonResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="CommonResponse"/> class.
|
||||
/// </summary>
|
||||
public CommonResponse()
|
||||
{
|
||||
this.Status = new List<bool>();
|
||||
this.FileNames = new List<string>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the status of the request. Indicates whether the operation was success/failure.
|
||||
/// </summary>
|
||||
/// <value>The status.</value>
|
||||
public IList<bool> Status
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets relative URL of the file. Represents the files involved in the operation.
|
||||
/// </summary>
|
||||
/// <value>The file names.</value>
|
||||
public IList<string> FileNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the error message. Represents the error details in case of operation failure.
|
||||
/// </summary>
|
||||
/// <value>The error message.</value>
|
||||
public string ErrorMessage
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for mail attachment meta-data. It includes full URL of mail and flag to overwrite existing files, if present.
|
||||
/// </summary>
|
||||
|
||||
public class MailAttachmentDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the full URL of mail attachment.
|
||||
/// </summary>
|
||||
/// <value>The full URL.</value>
|
||||
|
||||
public string FullUrl
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets overwrite option for mail attachment.
|
||||
/// </summary>
|
||||
/// <value>The overwrite.</value>
|
||||
|
||||
public int IsOverwrite
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets file position where check out failed
|
||||
/// </summary>
|
||||
public static int CheckoutFailedPosition
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets value based on attachment call for mail attachment.
|
||||
/// </summary>
|
||||
/// <value>The Attachment Flag.</value>
|
||||
public bool IsAttachmentCall
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
|
@ -1,923 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.Entity
|
||||
// Author : v-nikhid
|
||||
// Created : 06-19-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="MatterProvisionObjects.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file defines classes used under current project.</summary>
|
||||
// ***********************************************************************
|
||||
//// Keeping using System over here because of usage of CLSComplaint attribute for namespace
|
||||
using System;
|
||||
[assembly: CLSCompliant(true)]
|
||||
namespace Microsoft.Legal.MatterCenter.Entity
|
||||
{
|
||||
#region using
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Holds the SP app token to authenticate current request.
|
||||
/// </summary>
|
||||
[CLSCompliant(true)]
|
||||
public class RequestObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the SP application token. Represents the token for authenticated user.
|
||||
/// </summary>
|
||||
/// <value>The SP application token.</value>
|
||||
|
||||
public string SPAppToken
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the refresh token. Represents the token used for single sign-on.
|
||||
/// </summary>
|
||||
/// <value>The refresh token.</value>
|
||||
|
||||
public string RefreshToken
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold flag values
|
||||
/// </summary>
|
||||
public class MatterProvisionFlags
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets value for matter landing flag
|
||||
/// </summary>
|
||||
/// <value>Matter landing</value>
|
||||
|
||||
public string MatterLandingFlag
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets boolean value for send email flag
|
||||
/// </summary>
|
||||
/// <value>Send email</value>
|
||||
|
||||
public bool SendEmailFlag
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold client meta-data. It includes client unique ID, client name, and client URL.
|
||||
/// </summary>
|
||||
public class Client
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the client identifier. Represents the unique identifier for client.
|
||||
/// </summary>
|
||||
/// <value>The client identifier.</value>
|
||||
|
||||
public string Id
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the client. Represents the unique name of client.
|
||||
/// </summary>
|
||||
/// <value>The name of the client.</value>
|
||||
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the client URL.
|
||||
/// </summary>
|
||||
/// <value>The client URL.</value>
|
||||
|
||||
public string Url
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold matter meta-data. It includes matter ID, name, description, conflict details, allowed teams, blocked users, permissions, and content type.
|
||||
/// </summary>
|
||||
public class Matter
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the matter identifier. Represents the matter ID under a client.
|
||||
/// </summary>
|
||||
/// <value>The matter identifier.</value>
|
||||
|
||||
public string Id
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the matter. Represents the matter name under a client.
|
||||
/// </summary>
|
||||
/// <value>The name of the matter.</value>
|
||||
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter description. Represents the description of matter library.
|
||||
/// </summary>
|
||||
/// <value>The matter description.</value>
|
||||
|
||||
public string Description
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter conflict meta-data. Represents conflict checked by user, conflict check date, and security of matter from external users.
|
||||
/// </summary>
|
||||
/// <value>The conflict.</value>
|
||||
|
||||
public Conflict Conflict
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the user names. Represents the user names associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The user names.</value>
|
||||
|
||||
public IList<string> UserNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the content types. Represents all the content types associated with the matter library.
|
||||
/// </summary>
|
||||
/// <value>The content types.</value>
|
||||
|
||||
public IList<string> ContentTypes
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the assigned user names. Represents the team members and responsible attorneys associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The assign user names.</value>
|
||||
|
||||
public IList<IList<string>> AssignUserNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the assigned user email addresses. Represents the team members associated with the project.
|
||||
/// </summary>
|
||||
/// <value>The list of assign user email addresses.</value>
|
||||
public IList<IList<string>> AssignUserEmails
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the blocked user names. Represents the users who are blocked from viewing the matter details.
|
||||
/// </summary>
|
||||
/// <value>The block user names.</value>
|
||||
|
||||
public IList<string> BlockUserNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the permissions. Represents the permission levels associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The permissions.</value>
|
||||
|
||||
public IList<string> Permissions
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the roles. Represents the role of users associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The roles.</value>
|
||||
|
||||
public IList<string> Roles
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the folder names. Represents the list of folders that will be created with the matter.
|
||||
/// </summary>
|
||||
/// <value>The folder names.</value>
|
||||
|
||||
public IList<string> FolderNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the default content type.
|
||||
/// </summary>
|
||||
/// <value>The default content type.</value>
|
||||
|
||||
public string DefaultContentType
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Document template count. Represents the document templates count of matter.
|
||||
/// </summary>
|
||||
/// <value>The Document template count.</value>
|
||||
|
||||
public IList<string> DocumentTemplateCount
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// Gets or sets the Matter GUID.
|
||||
///// </summary>
|
||||
///// <value>The Matter GUID.</value>
|
||||
|
||||
public string MatterGuid
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold matter conflict meta-data. It includes user who performed the conflict check, the conflict check date, and security of matter from external users.
|
||||
/// </summary>
|
||||
public class Conflict
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the user who performed the conflict check for matter.
|
||||
/// </summary>
|
||||
/// <value>The conflict check by.</value>
|
||||
|
||||
public string CheckBy
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the conflict check date for matter.
|
||||
/// </summary>
|
||||
/// <value>The conflict check on.</value>
|
||||
|
||||
public string CheckOn
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the conflict identified option (Yes/No) for matter. Represents if the conflict was identified or not.
|
||||
/// </summary>
|
||||
/// <value>The conflict identified.</value>
|
||||
|
||||
public string Identified
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the flag to mark the matter as secure or not.
|
||||
/// </summary>
|
||||
/// <value>The secure matter.</value>
|
||||
|
||||
public string SecureMatter
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold additional matter meta-data. It includes matter practice group, area of law, sub area of law, responsible attorney, team members, and blocked users.
|
||||
/// </summary>
|
||||
public class MatterDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the practice group associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The practice group.</value>
|
||||
|
||||
public string PracticeGroup
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the area of law associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The area of law.</value>
|
||||
|
||||
public string AreaOfLaw
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the sub area of law associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The sub area of law.</value>
|
||||
|
||||
public string SubareaOfLaw
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the responsible attorney associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The responsible attorney.</value>
|
||||
|
||||
public string ResponsibleAttorney
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the responsible attorney email associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The list of responsible attorney email addresses.</value>
|
||||
|
||||
public string ResponsibleAttorneyEmail
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the team members associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The team members.</value>
|
||||
|
||||
public string TeamMembers
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the users who can only view the matter.
|
||||
/// </summary>
|
||||
/// <value>The upload blocked users.</value>
|
||||
|
||||
public IList<string> UploadBlockedUsers
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the role information associated with the matter.
|
||||
/// </summary>
|
||||
/// <value>The team members.</value>
|
||||
|
||||
public string RoleInformation
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold role meta-data. It includes role ID, name, and flag indicating whether role is mandatory or not.
|
||||
/// </summary>
|
||||
public class Role
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the role identifier. Represents the role identifier.
|
||||
/// </summary>
|
||||
/// <value>The role identifier.</value>
|
||||
|
||||
public string Id
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the role. Represents the role name.
|
||||
/// </summary>
|
||||
/// <value>The name of the role.</value>
|
||||
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether this <see cref="Role"/> is mandatory.
|
||||
/// </summary>
|
||||
/// <value><c>true</c> if mandatory; otherwise, <c>false</c>.</value>
|
||||
|
||||
public bool Mandatory
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold user meta-data. It includes user ID, name/alias, logged-in user name, and email.
|
||||
/// </summary>
|
||||
public class Users
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the user name.
|
||||
/// </summary>
|
||||
/// <value>The name of the user.</value>
|
||||
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the logged-in user name.
|
||||
/// </summary>
|
||||
/// <value>The name of the user log on.</value>
|
||||
|
||||
public string LogOnName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the user email.
|
||||
/// </summary>
|
||||
/// <value>The user email.</value>
|
||||
|
||||
public string Email
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the entity type (user or security group).
|
||||
/// </summary>
|
||||
public string EntityType
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Provider name indicating tenant or extranet user
|
||||
/// </summary>
|
||||
public string ProviderName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the entity data returned from people picker web service
|
||||
/// </summary>
|
||||
public EntityData EntityData { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold term store meta-data. It includes term group, term set, and additional custom property.
|
||||
/// </summary>
|
||||
public class TermStoreDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the term group. Represents the name of parent node of term store.
|
||||
/// </summary>
|
||||
/// <value>The term group.</value>
|
||||
|
||||
public string TermGroup
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the term set. Represents the term sets under term group.
|
||||
/// </summary>
|
||||
/// <value>The name of the term set.</value>
|
||||
|
||||
public string TermSetName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the custom property. Represents custom properties associated with each term.
|
||||
/// </summary>
|
||||
/// <value>The name of the custom property.</value>
|
||||
|
||||
public string CustomPropertyName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold user meta-data retrieved from client people picker web service.
|
||||
/// </summary>
|
||||
public class PeoplePickerUser
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the user logon name.
|
||||
/// </summary>
|
||||
public string Key { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the user email.
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the user display name.
|
||||
/// </summary>
|
||||
public string DisplayText { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Provider name indicating tenant or extranet user
|
||||
/// </summary>
|
||||
public string ProviderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the entity type (user or security group).
|
||||
/// </summary>
|
||||
public string EntityType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the entity data returned from people picker web service
|
||||
/// </summary>
|
||||
public EntityData EntityData { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Holds the structure of entity data returned from people picker web service.
|
||||
/// </summary>
|
||||
public class EntityData
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the title of user or security group
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the department of user or security group
|
||||
/// </summary>
|
||||
public string Department { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the email of user or security group
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold matter property bag information (stamped properties).
|
||||
/// </summary>
|
||||
public class MatterStampedDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Indicates if the matter is old or new
|
||||
/// </summary>
|
||||
public string IsNewMatter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold matter meta-data. It includes matter ID, name, description, conflict details, allowed teams, blocked users, permissions, and content type.
|
||||
/// </summary>
|
||||
public Matter MatterObject { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold additional matter meta-data. It includes matter practice group, area of law, sub area of law, responsible attorney, team members, and blocked users.
|
||||
/// </summary>
|
||||
public MatterDetails MatterDetailsObject { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold client meta-data. It includes client unique ID, client name, and client URL.
|
||||
/// </summary>
|
||||
public Client ClientObject { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure needed to revert the matter permission update operation.
|
||||
/// </summary>
|
||||
[CLSCompliant(false)]
|
||||
public class MatterRevertList
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets a matter library instance
|
||||
/// </summary>
|
||||
public string MatterLibrary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a matter OneNote library instance
|
||||
/// </summary>
|
||||
public string MatterOneNoteLibrary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a matter calendar instance
|
||||
/// </summary>
|
||||
public string MatterCalendar { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a matter site pages instance
|
||||
/// </summary>
|
||||
public string MatterSitePages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a matter task instance
|
||||
/// </summary>
|
||||
public string MatterTask { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents configuration for the matter. Holds value for various entities on the Matter Provision page
|
||||
/// </summary>
|
||||
public class MatterConfigurations
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the matter. Represents the name of matter library.
|
||||
/// </summary>
|
||||
/// <value>The default name of the matter.</value>
|
||||
public string DefaultMatterName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the default matter id
|
||||
/// </summary>
|
||||
/// <value>The default matter id</value>
|
||||
public string DefaultMatterId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the default matter type
|
||||
/// </summary>
|
||||
/// <value>The default matter type</value>
|
||||
public string DefaultMatterType
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter types
|
||||
/// </summary>
|
||||
/// <value>The matter types</value>
|
||||
public string MatterTypes
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the users of the matters
|
||||
/// </summary>
|
||||
/// <value>The matter users</value>
|
||||
public string MatterUsers
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the emails for users of the projects
|
||||
/// </summary>
|
||||
/// <value>The list of matter center user emails</value>
|
||||
public string MatterUserEmails
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter roles for the users
|
||||
/// </summary>
|
||||
/// <value>The matter roles for the users</value>
|
||||
public string MatterRoles
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter permissions
|
||||
/// </summary>
|
||||
/// <value>The matter permissions</value>
|
||||
public string MatterPermissions
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the flag for calendar selection on settings page
|
||||
/// </summary>
|
||||
/// <value>Calendar selected flag</value>
|
||||
public bool IsCalendarSelected
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the email option selection flag
|
||||
/// </summary>
|
||||
/// <value>The email option selection flag</value>
|
||||
public bool IsEmailOptionSelected
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the RSS selection flag
|
||||
/// </summary>
|
||||
/// <value>The RSS selection flag</value>
|
||||
public bool IsRSSSelected
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter id.
|
||||
/// </summary>
|
||||
/// <value>The matter id.</value>
|
||||
public bool IsRestrictedAccessSelected
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the conflict check flag
|
||||
/// </summary>
|
||||
/// <value>The conflict check visibility flag</value>
|
||||
public bool IsConflictCheck
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter description mandatory flag
|
||||
/// </summary>
|
||||
/// <value>The matter description mandatory flag</value>
|
||||
public bool IsMatterDescriptionMandatory
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter practice group
|
||||
/// </summary>
|
||||
/// <value>The matter group</value>
|
||||
public string MatterPracticeGroup
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the matter area of law
|
||||
/// </summary>
|
||||
/// <value>The matter area of law</value>
|
||||
public string MatterAreaofLaw
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the content check property
|
||||
/// </summary>
|
||||
/// <value>The content check property</value>
|
||||
public bool IsContentCheck
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the tasks selected property
|
||||
/// </summary>
|
||||
/// <value>The tasks selected property</value>
|
||||
public bool IsTaskSelected
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required to hold additional matter meta-data for default values from term store. It includes term store information for matter, client, practice group, area of law and sub area of law.
|
||||
/// </summary>
|
||||
public class MatterMetadata
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the matter property
|
||||
/// </summary>
|
||||
public Matter Matter
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the client property
|
||||
/// </summary>
|
||||
public Client Client
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the practice group property
|
||||
/// </summary>
|
||||
public PracticeGroupTerm PracticeGroupTerm
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the area of law property
|
||||
/// </summary>
|
||||
public AreaTerm AreaTerm
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Subarea of law property
|
||||
/// </summary>
|
||||
public SubareaTerm SubareaTerm
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,87 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{04B6E5BA-DE44-4E40-9496-EE12F658DE67}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Microsoft.Legal.MatterCenter.Entity</RootNamespace>
|
||||
<AssemblyName>Microsoft.Legal.MatterCenter.Entity</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AssemblyOriginatorKeyFile>MatterCenterEntity.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.SharePoint.Client, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<HintPath>..\External\Microsoft.SharePoint.Client.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.SharePoint.Client.Runtime, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||
<HintPath>..\External\Microsoft.SharePoint.Client.Runtime.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\External\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Enumerators.cs" />
|
||||
<Compile Include="GlobalSuppressions.cs" />
|
||||
<Compile Include="LegalBriefcaseObject.cs" />
|
||||
<Compile Include="MatterProvisionObjects.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SearchObjects.cs" />
|
||||
<Compile Include="TermStoreHelper.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="MatterCenterEntity.snk" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -1,10 +0,0 @@
|
|||
""
|
||||
{
|
||||
"FILE_VERSION" = "9237"
|
||||
"ENLISTMENT_CHOICE" = "NEVER"
|
||||
"PROJECT_FILE_RELATIVE_PATH" = ""
|
||||
"NUMBER_OF_EXCLUDED_FILES" = "0"
|
||||
"ORIGINAL_PROJECT_FILE_PATH" = ""
|
||||
"NUMBER_OF_NESTED_PROJECTS" = "0"
|
||||
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,357 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.Entity
|
||||
// Author : v-rijadh
|
||||
// Created : 06-19-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="TermStoreHelper.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file defines classes used by Term Store object.</summary>
|
||||
// ***********************************************************************
|
||||
|
||||
namespace Microsoft.Legal.MatterCenter.Entity
|
||||
{
|
||||
#region using
|
||||
using System.Collections.Generic;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for client term set. It includes term set name and list of terms under the term set.
|
||||
/// </summary>
|
||||
public class ClientTermSets
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the term name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of client terms present under the clients term set.
|
||||
/// </summary>
|
||||
/// <value>The client terms.</value>
|
||||
public IList<Client> ClientTerms
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for sub area of law term. It includes sub area of law, area of law, folders, folder structure flag, id , wssid and document template.
|
||||
/// </summary>
|
||||
public class SubareaTerm
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the term (sub area of law).
|
||||
/// </summary>
|
||||
/// <value>The name of the term.</value>
|
||||
public string TermName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the parent term (area of law).
|
||||
/// </summary>
|
||||
/// <value>The name of the parent term.</value>
|
||||
public string ParentTermName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the folder names. This is used for creation of folders when a matter is created.
|
||||
/// </summary>
|
||||
/// <value>The folder names.</value>
|
||||
public string FolderNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the is no folder structure present. If flag is not set, it will navigate to parent term to get the folder names.
|
||||
/// </summary>
|
||||
/// <value>The is no folder structure present.</value>
|
||||
public string IsNoFolderStructurePresent
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the document templates. This will be the default content type associated with the document library.
|
||||
/// </summary>
|
||||
/// <value>The document templates.</value>
|
||||
public string DocumentTemplates
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the document template names. It includes all the content types that will be available for a document library.
|
||||
/// </summary>
|
||||
/// <value>The document template names.</value>
|
||||
public string DocumentTemplateNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the id of the term (sub area of law). This is a GUID value (string representation) and is used as the Id property of the Term.
|
||||
/// </summary>
|
||||
/// <value>The id of the term.</value>
|
||||
public string Id
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the WssID of the term (sub area of law). This is an integer value being used as the Id of the Term in the TaxonomyHiddenList.
|
||||
/// </summary>
|
||||
/// <value>The WssID of the term.</value>
|
||||
public int WssId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for area of law term. It includes area of law, practice group, id , wssid and list of sub area of law.
|
||||
/// </summary>
|
||||
public class AreaTerm
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the term (area of law).
|
||||
/// </summary>
|
||||
/// <value>The name of the term.</value>
|
||||
public string TermName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the parent term (practice group).
|
||||
/// </summary>
|
||||
/// <value>The name of the parent term.</value>
|
||||
public string ParentTermName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the folder names. This is used for creation of folders when a matter is created.
|
||||
/// </summary>
|
||||
/// <value>The folder names.</value>
|
||||
public string FolderNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the sub area terms. It includes the list of sub area of law falling under particular area of law.
|
||||
/// </summary>
|
||||
/// <value>The sub area terms.</value>
|
||||
public IList<SubareaTerm> SubareaTerms
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the id of the term (area of law). This is a GUID value (string representation) and is used as the Id property of the Term.
|
||||
/// </summary>
|
||||
/// <value>The id of the term.</value>
|
||||
public string Id
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the WssId of the term (area of law). This is an integer value being used as the Id of the Term in the TaxonomyHiddenList.
|
||||
/// </summary>
|
||||
/// <value>The WssId of the term.</value>
|
||||
public int WssId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for practice group term set. It includes the practice group, client term set, folders, id , wssid, and list of area team under practice group.
|
||||
/// </summary>
|
||||
public class PracticeGroupTerm
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the term (practice group).
|
||||
/// </summary>
|
||||
/// <value>The name of the term.</value>
|
||||
public string TermName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the parent term (client term set).
|
||||
/// </summary>
|
||||
/// <value>The name of the parent term.</value>
|
||||
public string ParentTermName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the folder names. This is used for creation of folders when a matter is created.
|
||||
/// </summary>
|
||||
/// <value>The folder names.</value>
|
||||
public string FolderNames
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets all the area of law under particular practice group.
|
||||
/// </summary>
|
||||
/// <value>The area terms.</value>
|
||||
public IList<AreaTerm> AreaTerms
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the id of the term (practice group). This is a GUID value (string representation) and is used as the Id property of the Term.
|
||||
/// </summary>
|
||||
/// <value>The id of the term.</value>
|
||||
public string Id
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the WssId of the term (practice group). This is an integer value being used as the Id of the Term in the TaxonomyHiddenList.
|
||||
/// </summary>
|
||||
/// <value>The WssId of the term.</value>
|
||||
public int WssId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for generic term sets. It includes the term set name and list of practice group under that term set.
|
||||
/// </summary>
|
||||
public class TermSets
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the term set name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of practice group terms.
|
||||
/// </summary>
|
||||
/// <value>The PG terms.</value>
|
||||
public IList<PracticeGroupTerm> PGTerms
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for generic term groups. It includes the term group name and the list of term sets under the group.
|
||||
/// </summary>
|
||||
public class TermGroups
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the term group name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of term sets under the term group.
|
||||
/// </summary>
|
||||
/// <value>The term sets.</value>
|
||||
public IList<TermSets> TermSets
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for generic term stores. It includes the term store and the list of term group under the term store.
|
||||
/// </summary>
|
||||
public class TermStores
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the term store name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
public string Name
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of term groups under the term store.
|
||||
/// </summary>
|
||||
/// <value>The term groups.</value>
|
||||
public IList<TermGroups> TermGroups
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Provides the structure required for generic collection of term stores.
|
||||
/// </summary>
|
||||
public class TermStoreObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the list of term stores.
|
||||
/// </summary>
|
||||
/// <value>The term stores.</value>
|
||||
public IList<TermStores> TermStores
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"directory": "./lib"
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,105 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Jasmine</title>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
|
||||
<link rel="shortcut icon" type="image/png" href="lib/jasmine-2.4.1/jasmine_favicon.png" />
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
|
||||
<script src="/lib/jasmine-2.4.1/jasmine.js"></script>
|
||||
<link href="/lib/jasmine-2.4.1/jasmine.css" rel="stylesheet" />
|
||||
<script src="/lib/jasmine-2.4.1/jasmine-html.js"></script>
|
||||
<script src="/lib/jasmine-2.4.1/boot.js"></script>
|
||||
<script src="/lib/jasmine-2.4.1/console.js"></script>
|
||||
<script data-require="angular-mocks" data-semver="1.2.1" src="//code.angularjs.org/1.2.1/angular-mocks.js"></script>
|
||||
<script src="/lib/jquery/dist/jquery.js"></script>
|
||||
<script src="/lib/jquery-validation/dist/jquery.validate.js"></script>
|
||||
<script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
|
||||
<script src="/lib/bootstrap/dist/js/bootstrap.js"></script>
|
||||
<script src="/lib/angular-route/angular-route.js"></script>
|
||||
<script data-require="angular-mocks" data-semver="1.2.1" src="//code.angularjs.org/1.2.1/angular-mocks.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular-touch.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.2/angular-animate.js"></script>
|
||||
<script src="/lib/bootstrap/dist/js/bootstrap-tooltip.js"></script>
|
||||
<script src="/lib/bootstrap/dist/js/bootstrap-popover.js"></script>
|
||||
<script src="/lib/angular-resource/angular-resource.js"></script>
|
||||
<script src="/lib/angular-sanitize/angular-sanitize.js"></script>
|
||||
<script src="/lib/adal-angular/dist/adal.min.js"></script>
|
||||
<script src="/lib/adal-angular/dist/adal-angular.min.js"></script>
|
||||
<script src="/lib/angular-ui-grid/ui-grid.min.js"></script>
|
||||
<script src="/lib/angular-bootstrap/ui-bootstrap-tpls.js"></script>
|
||||
<script src="/scripts/site.js" asp-append-version="true"></script>
|
||||
<script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-sanitize.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/app.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="errorBlock" class="hide">
|
||||
|
||||
</div>
|
||||
<div id="errTrinagleBlock" class="hide">
|
||||
|
||||
</div>
|
||||
<div id="errTrinagleBroderBlock" class="hide">
|
||||
|
||||
</div>
|
||||
<div id="errText" class="hide">
|
||||
|
||||
</div>
|
||||
<div id="txtUser1" class="hide">
|
||||
|
||||
</div>
|
||||
<script src="/Object/ObjectCollection.js"></script>
|
||||
<script src="Scripts/uiconfig.js"></script>
|
||||
<script src="Scripts/TestConfig.js"></script>
|
||||
<!--<script src="http://matterwebapp.azurewebsites.net/app/uiconfig.js"></script>-->
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/app.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/config.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/directives/heading.directive.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/directives/common.directive.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/home.controller.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/navigation.controller.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/services/auth.service.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/services/api.service.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/matter/matter.resources.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/matter/matters.controller.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/home.controller.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/dashboard/documentdashboard.resources.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/dashboard/documentdashboard.controller.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/dashboard/matterdashboard.resources.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/dashboard/matterdashboard.controller.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/matter/upload.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/document/documents.controller.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/document/document.resources.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/directives/drag.directive.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/directives/drop.directive.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/home.resources.js"></script>
|
||||
<script src="http://matterwebapp.azurewebsites.net/app/matter/createMatter.controller.js"></script>
|
||||
|
||||
|
||||
<script src="/Scripts/app.js"></script>
|
||||
|
||||
<script src="Specs/CreateMatterController.spec.js"></script>
|
||||
<script src="Specs/CreateMatterControllerservicecall.spec.js"></script>
|
||||
|
||||
<script src="Specs/DocumentController.spec.js"></script>
|
||||
<script src="Specs/DocumentControllerservicecall.spec.js"></script>
|
||||
|
||||
<script src="Specs/DocumentDashboardController.spec.js"></script>
|
||||
<script src="Specs/DocumentDashboardControllerServiceCall.spec.js"></script>
|
||||
|
||||
<script src="Specs/HomeController.spec.js"></script>
|
||||
<script src="Specs/HomeControllerservicecall.spec.js"></script>
|
||||
|
||||
<script src="Specs/MatterController.spec.js"></script>
|
||||
<script src="Specs/MatterControllerservicecall.spec.js"></script>
|
||||
|
||||
<script src="Specs/MatterDashboardController.spec.js"></script>
|
||||
<script src="Specs/MatterDashboardControllerservicecall.spec.js"></script>
|
||||
|
||||
<script src="Specs/NavigationController.spec.js"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,197 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{D6F8976C-1DC3-4106-B11E-5104B91DD9D5}</ProjectGuid>
|
||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Microsoft.Legal.MatterCenter.Jasmine</RootNamespace>
|
||||
<AssemblyName>Microsoft.Legal.MatterCenter.Jasmine</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<UseIISExpress>true</UseIISExpress>
|
||||
<IISExpressSSLPort />
|
||||
<IISExpressAnonymousAuthentication />
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
<UseGlobalApplicationHostFile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="js\angulartics-azure.js" />
|
||||
<Content Include="js\site.js" />
|
||||
<Content Include="js\site.min.js" />
|
||||
<Content Include="Object\ObjectCollection.js" />
|
||||
<Content Include="packages.config" />
|
||||
<Content Include="Scripts\app.js" />
|
||||
<Content Include="Open Notebook.onetoc2" />
|
||||
<Content Include="bower.json" />
|
||||
<Content Include=".bowerrc" />
|
||||
<None Include=".bin\bower.cmd" />
|
||||
<None Include=".bin\git.cmd" />
|
||||
<None Include=".bin\node.cmd" />
|
||||
<Content Include="js\Open Notebook.onetoc2" />
|
||||
<None Include="Web.Debug.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
</None>
|
||||
<None Include="Web.Release.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\app.js">
|
||||
<Link>app\app.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\dashboard\documentdashboard.controller.js">
|
||||
<Link>app\dashboard\documentdashboard.controller.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\dashboard\documentdashboard.resources.js">
|
||||
<Link>app\dashboard\documentdashboard.resources.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\dashboard\matterdashboard.controller.js">
|
||||
<Link>app\dashboard\matterdashboard.controller.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\dashboard\matterdashboard.resources.js">
|
||||
<Link>app\dashboard\matterdashboard.resources.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\directives\common.directive.js">
|
||||
<Link>app\directives\common.directive.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\directives\drag.directive.js">
|
||||
<Link>app\directives\drag.directive.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\directives\drop.directive.js">
|
||||
<Link>app\directives\drop.directive.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\directives\heading.directive.js">
|
||||
<Link>app\directives\heading.directive.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\document\document.resources.js">
|
||||
<Link>app\document\document.resources.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\document\documents.controller.js">
|
||||
<Link>app\document\documents.controller.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\home.controller.js">
|
||||
<Link>app\home.controller.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\home.resources.js">
|
||||
<Link>app\home.resources.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\matter\createMatter.controller.js">
|
||||
<Link>app\matter\createMatter.controller.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\matter\matter.resources.js">
|
||||
<Link>app\matter\matter.resources.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\matter\matters.controller.js">
|
||||
<Link>app\matter\matters.controller.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\matter\Upload.js">
|
||||
<Link>app\matter\Upload.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\navigation.controller.js">
|
||||
<Link>app\navigation.controller.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\services\api.service.js">
|
||||
<Link>app\services\api.service.js</Link>
|
||||
</Content>
|
||||
<Content Include="..\Microsoft.Legal.MatterCenter.Web\wwwroot\app\services\auth.service.js">
|
||||
<Link>app\services\auth.service.js</Link>
|
||||
</Content>
|
||||
<Content Include="JasmineTest.html" />
|
||||
<Content Include="Scripts\site.js" />
|
||||
<Content Include="Scripts\site.min.js" />
|
||||
<Content Include="Scripts\TestConfig.js" />
|
||||
<Content Include="Scripts\uiconfig.js" />
|
||||
<Content Include="Specs\CreateMatterController.spec.js" />
|
||||
<Content Include="Specs\CreateMatterControllerservicecall.spec.js" />
|
||||
<Content Include="Specs\DocumentController.spec.js" />
|
||||
<Content Include="Specs\DocumentControllerservicecall.spec.js" />
|
||||
<Content Include="Specs\DocumentDashboardController.spec.js" />
|
||||
<Content Include="Specs\DocumentDashboardControllerServiceCall.spec.js" />
|
||||
<Content Include="Specs\HomeController.spec.js" />
|
||||
<Content Include="Specs\HomeControllerservicecall.spec.js" />
|
||||
<Content Include="Specs\MatterController.spec.js" />
|
||||
<Content Include="Specs\MatterControllerservicecall.spec.js" />
|
||||
<Content Include="Specs\MatterDashboardController.spec.js" />
|
||||
<Content Include="Specs\MatterDashboardControllerservicecall.spec.js" />
|
||||
<Content Include="Specs\NavigationController.spec.js" />
|
||||
<Content Include="Specs\UploadVerification.js" />
|
||||
<Content Include="Web.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="lib\" />
|
||||
<Folder Include="Properties\PublishProfiles\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Service References\" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>43336</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>http://localhost:43336/</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,396 @@
|
|||
var vm, matterResource, $filter, $window, $watch, $http, $stateParams;
|
||||
var $rootScope = { logEvent: function () { }, setAuthenticatedUserContext: function () { } };
|
||||
var rootScope = {};
|
||||
var $model = {};
|
||||
var $label = { assignedUser: "" };
|
||||
var $item = {
|
||||
email: "",
|
||||
name: "No results found"
|
||||
};
|
||||
var $state = { go: function () { }, current: { "name": "" } };
|
||||
var $interval = { go: function () { } };
|
||||
var $animate = { enabled: function () { } };
|
||||
var $q = { defer: function () { return { resolve: function () { } } } };
|
||||
var $scope = { $watch: function () { }, $apply: function () { }, gridApi: { infiniteScroll: { dataLoaded: function () { } }, selection: { selectAllRows: function () { }, clearSelectedRows: function () { } } } };
|
||||
var $location = {
|
||||
absUrl: function () {
|
||||
var url = "https://mattermaqdevsite.azurewebsites.net&test=1&attempt=2|jasminetest.html";
|
||||
return url;
|
||||
}
|
||||
};
|
||||
|
||||
var adalService = {
|
||||
"userInfo": {
|
||||
"userName": "MAQUser@LCADMS.onmicrosoft.com",
|
||||
"profile": {
|
||||
"given_name": "MAQ",
|
||||
"family_name": "LCADMS",
|
||||
"oid": 786
|
||||
},
|
||||
"isAuthenticated": true
|
||||
},
|
||||
logOut: function () { vm.status = true; }
|
||||
};
|
||||
|
||||
var mockapi = function () {
|
||||
};
|
||||
|
||||
var mocknavigationResource = {
|
||||
'canCreateMatter': '/api/v1/matter/cancreate'
|
||||
};
|
||||
|
||||
var mockMatterDashBoardResource = {
|
||||
'get': '/api/v1/matter/get',
|
||||
'getPinnedMatters': '/api/v1/matter/getpinned',
|
||||
'getMyMatters': '/api/v1/matter/getpinned',
|
||||
'getTaxonomyDetails': '/api/v1/taxonomy/gettaxonomy',
|
||||
'UnpinMatter': '/api/v1/matter/unpin',
|
||||
'PinMatter': '/api/v1/matter/pin',
|
||||
'getFolderHierarchy': '/api/v1/matter/getfolderhierarchy',
|
||||
'getMatterCounts': '/api/v1/matter/getmattercounts',
|
||||
'getDefaultMatterConfigurations': '/api/v1/matter/getconfigurations'
|
||||
};
|
||||
|
||||
var mockMatterResource = {
|
||||
'get': '/api/v1/matter/get',
|
||||
'getPinnedMatters': '/api/v1/matter/getpinned',
|
||||
'UnpinMatters': '/api/v1/matter/unpin',
|
||||
'PinMatters': '/api/v1/matter/pin',
|
||||
'getTaxonomyDetails': '/api/v1/taxonomy/gettaxonomy',
|
||||
'checkMatterExists': '/api/v1/matter/checkmatterexists',
|
||||
'getDefaultMatterConfigurations': '/api/v1/matter/getconfigurations',
|
||||
'getUsers': '/api/v1/user/getusers',
|
||||
'getRoles': '/api/v1/user/getroles',
|
||||
'getPermissionLevels': '/api/v1/user/getpermissionlevels',
|
||||
'checkSecurityGroupExists': '/api/v1/matter/checksecuritygroupexists',
|
||||
'getFolderHierarchy': '/api/v1/matter/getfolderhierarchy',
|
||||
'createMatter': '/api/v1/matter/create',
|
||||
'assignUserPermissions': '/api/v1/matter/assignuserpermissions',
|
||||
'assignContentType': '/api/v1/matter/assigncontenttype',
|
||||
'createLandingPage': '/api/v1/matter/createlandingpage',
|
||||
'updateMatterMetadata': '/api/v1/matter/UpdateMetadata',
|
||||
'getStampedProperties': '/api/v1/matter/getstampedproperties',
|
||||
'uploadEmail': '/api/v1/document/UploadMail',
|
||||
'uploadAttachment': '/api/v1/document/UploadAttachments',
|
||||
'uploadfiles': '/api/v1/document/UploadAttachments',
|
||||
'getHelp': '/api/v1/shared/help'
|
||||
};
|
||||
|
||||
var mockHomeResource = {
|
||||
'getHelp': '/api/v1/shared/help',
|
||||
'getUserProfilePicture': '/api/v1/user/getuserprofilepicture',
|
||||
'canCreateMatter': '/api/v1/matter/cancreate'
|
||||
};
|
||||
|
||||
var data = { "name": "" };
|
||||
|
||||
var mockDocumentDashBoardResource = {
|
||||
'get': '/api/v1/document/getdocuments',
|
||||
'getPinnedDocuments': '/api/v1/document/getpinneddocuments',
|
||||
'getMyDocuments': '/api/v1/document/getdocuments',
|
||||
'getTaxonomyDetails': '/api/v1/taxonomy/gettaxonomy',
|
||||
'unPinDocument': '/api/v1/document/unpindocument',
|
||||
'pinDocument': '/api/v1/document/pindocument',
|
||||
'downloadattachmentsasstream': '/api/v1/email/downloadattachmentsasstream',
|
||||
'downloadAttachments': '/api/v1/email/downloadattachments',
|
||||
'getDocumentCounts': '/api/v1/document/getdocumentcounts'
|
||||
};
|
||||
|
||||
|
||||
var mockDocumentResource = {
|
||||
'get': '/api/v1/document/getdocuments',
|
||||
'getPinnedDocuments': '/api/v1/document/getpinneddocuments',
|
||||
'unPinDocument': '/api/v1/document/unpindocument',
|
||||
'pinDocument': '/api/v1/document/pindocument',
|
||||
'getassets': '/api/v1/document/getassets'
|
||||
};
|
||||
|
||||
|
||||
var mockMatterResourceService = {
|
||||
'get': '/api/v1/matter/get',
|
||||
'getPinnedMatters': '/api/v1/matter/getpinned',
|
||||
'UnpinMatters': '/api/v1/matter/unpin',
|
||||
'PinMatters': '/api/v1/matter/pin',
|
||||
'getTaxonomyDetails': '/api/v1/taxonomy/gettaxonomy',
|
||||
'checkMatterExists': '/api/v1/matter/checkmatterexists',
|
||||
'getDefaultMatterConfigurations': '/api/v1/matter/getconfigurations',
|
||||
'getUsers': '/api/v1/user/getusers',
|
||||
'getRoles': '/api/v1/user/getroles',
|
||||
'getPermissionLevels': '/api/v1/user/getpermissionlevels',
|
||||
'checkSecurityGroupExists': '/api/v1/matter/checksecuritygroupexists',
|
||||
'getFolderHierarchy': '/api/v1/matter/getfolderhierarchy',
|
||||
'createMatter': '/api/v1/matter/create',
|
||||
'assignUserPermissions': '/api/v1/matter/assignuserpermissions',
|
||||
'assignContentType': '/api/v1/matter/assigncontenttype',
|
||||
'createLandingPage': '/api/v1/matter/createlandingpage',
|
||||
'updateMatterMetadata': '/api/v1/matter/UpdateMetadata',
|
||||
'getStampedProperties': '/api/v1/matter/getstampedproperties',
|
||||
'uploadEmail': '/api/v1/document/UploadMail',
|
||||
'uploadAttachment': '/api/v1/document/UploadAttachments',
|
||||
'uploadfiles': '/api/v1/document/UploadAttachments',
|
||||
'getHelp': '/api/v1/shared/help'
|
||||
};
|
||||
|
||||
var selectedPracticeGroup = {
|
||||
"termName": "Advertising, Marketing & Promotions",
|
||||
"parentTermName": "Practice Groups",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"areaTerms": [
|
||||
{
|
||||
"termName": "Advertising, Marketing & Promotions",
|
||||
"parentTermName": "Advertising, Marketing & Promotions",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"subareaTerms": [
|
||||
{
|
||||
"termName": "Advertising, Marketing & Promotions",
|
||||
"parentTermName": "Advertising, Marketing & Promotions",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"isNoFolderStructurePresent": "false",
|
||||
"documentTemplates": "Advertising, Marketing & Promotions",
|
||||
"documentTemplateNames": "Agribusiness;Aircraft;California Public Utilities Commission (CPUC);Class Action Defense",
|
||||
"id": "683ec070-7ed0-4e82-b07c-13a1b4485b7b",
|
||||
"wssId": 0,
|
||||
"subareaTerms": null,
|
||||
"$$hashKey": "object:153"
|
||||
}
|
||||
],
|
||||
"id": "16827aa4-a8b3-4275-920b-184a04bc60ea",
|
||||
"wssId": 0,
|
||||
"$$hashKey": "object:149"
|
||||
}
|
||||
],
|
||||
"id": "a42ab615-0d27-4de2-9f55-144e71219770",
|
||||
"wssId": 0,
|
||||
"$$hashKey": "object:122"
|
||||
}
|
||||
|
||||
var documentTemplateTypeLawTerm = {
|
||||
"areaoflaw": "Family Business",
|
||||
"areaoflawId": "584a173b-7686-427d-aadb-62b13a2fd624",
|
||||
"documentTemplateNames": "Copyright;Copyright Litigation",
|
||||
"documentTemplates": "Family Business",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"foldernamesaol": "Email;Lorem;Ipsum",
|
||||
"foldernamespg": "Email;Lorem;Ipsum",
|
||||
"id": "578cfafb-59eb-4f4c-b219-47886c61e384",
|
||||
"isNoFolderStructurePresent": "false",
|
||||
"parentTermName": "Family Business",
|
||||
"practicegroup": "Business Transactions",
|
||||
"practicegroupId": "b36c5722-b6ee-4253-902b-743d63fa80ce",
|
||||
"primaryMatterType": "true",
|
||||
"subareaTerms": "null",
|
||||
"termName": "Family Business",
|
||||
"wssId": "0"
|
||||
}
|
||||
|
||||
var subareaTerms =
|
||||
[{
|
||||
"termName": "Advertising, Marketing & Promotions",
|
||||
"parentTermName": "Advertising, Marketing & Promotions",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"isNoFolderStructurePresent": "false",
|
||||
"documentTemplates": "Advertising, Marketing & Promotions",
|
||||
"documentTemplateNames": "Agribusiness;Aircraft;California Public Utilities Commission (CPUC);Class Action Defense",
|
||||
"id": "578cfafb-59eb-4f4c-b219-47886c61e384",
|
||||
"primaryMatterType": "true",
|
||||
"wssId": 0,
|
||||
"subareaTerms": null,
|
||||
"$$hashKey": "object:153"
|
||||
}]
|
||||
|
||||
var item = {
|
||||
"email": "MAQUser@LCADMS.onmicrosoft.com",
|
||||
"entityType": "User",
|
||||
"largePictureUrl": null,
|
||||
"logOnName": "i:0#.f|membership|maquser@lcadms.onmicrosoft.com",
|
||||
"name": "MAQ User",
|
||||
}
|
||||
|
||||
var obj = [{
|
||||
"documentName": "SharePoint Online is out of storage space.eml",
|
||||
"documentVersion": "2.0",
|
||||
"documentClient": "SubsiteClient",
|
||||
"documentClientId": "98052",
|
||||
"documentClientUrl": "https://lcadms.sharepoint.com/sites/subsiteclient",
|
||||
"documentMatter": "Default Matter",
|
||||
"documentMatterId": "11111",
|
||||
"documentOwner": "MAQ User",
|
||||
"documentUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a/Ipsum/SharePoint Online is out of storage space.eml",
|
||||
"documentOWAUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a/Ipsum/SharePoint Online is out of storage space.eml",
|
||||
"documentExtension": "eml",
|
||||
"documentCreatedDate": "5/17/2016 12:41:06 PM",
|
||||
"documentModifiedDate": "5/17/2016 12:41:07 PM",
|
||||
"documentCheckoutUser": "",
|
||||
"documentMatterUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a",
|
||||
"documentParentUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a/Ipsum",
|
||||
"documentID": "425427363",
|
||||
"checker": true,
|
||||
"documentIconUrl": "https://lcadms.sharepoint.com/_layouts/15/images/iceml.gif",
|
||||
"pinType": "Pin",
|
||||
"$$hashKey": "object:286",
|
||||
"selected": true
|
||||
},
|
||||
{
|
||||
"documentName": "SharePoint Online is out of storage space.eml",
|
||||
"documentVersion": "2.0",
|
||||
"documentClient": "SubsiteClient",
|
||||
"documentClientId": "98052",
|
||||
"documentClientUrl": "https://lcadms.sharepoint.com/sites/subsiteclient",
|
||||
"documentMatter": "Default Matter",
|
||||
"documentMatterId": "11111",
|
||||
"documentOwner": "MAQ User",
|
||||
"documentUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a/Ipsum/SharePoint Online is out of storage space.eml",
|
||||
"documentOWAUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a/Ipsum/SharePoint Online is out of storage space.eml",
|
||||
"documentExtension": "eml",
|
||||
"documentCreatedDate": "5/17/2016 12:41:06 PM",
|
||||
"documentModifiedDate": "5/17/2016 12:41:07 PM",
|
||||
"documentCheckoutUser": "",
|
||||
"documentMatterUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a",
|
||||
"documentParentUrl": "https://lcadms.sharepoint.com/sites/subsiteclient/6cbca4ab447c87302d3a1f0e3c32985a/Ipsum",
|
||||
"documentID": "425427363",
|
||||
"checker": true,
|
||||
"documentIconUrl": "https://lcadms.sharepoint.com/_layouts/15/images/iceml.gif",
|
||||
"pinType": "Pin",
|
||||
"$$hashKey": "object:286",
|
||||
"selected": true
|
||||
}]
|
||||
|
||||
var clientobj = [{
|
||||
"id": "0016765",
|
||||
"name": "A. Datum Corporation",
|
||||
"url": "https://lcadms.sharepoint.com/sites/ADatumCorporation",
|
||||
"$$hashKey": "object:320",
|
||||
"Selected": true
|
||||
},
|
||||
{
|
||||
"id": "0016761",
|
||||
"name": "AdventureWorks Cycles",
|
||||
"url": "https://lcadms.sharepoint.com/sites/AdventureWorksCycles",
|
||||
"$$hashKey": "object:321",
|
||||
"Selected": false
|
||||
},
|
||||
{
|
||||
"id": "0016762",
|
||||
"name": "Alpine Ski House",
|
||||
"url": "https://lcadms.sharepoint.com/sites/AlpineSkiHouse",
|
||||
"$$hashKey": "object:322",
|
||||
"Selected": false
|
||||
}]
|
||||
|
||||
var event = {
|
||||
preventDefault: function () { this.defaultPrevented = true; },
|
||||
isDefaultPrevented: function () { return this.defaultPrevented === true; },
|
||||
stopImmediatePropagation: function () { this.immediatePropagationStopped = true; },
|
||||
isImmediatePropagationStopped: function () { return this.immediatePropagationStopped === true; },
|
||||
stopPropagation: function () { },
|
||||
currentTarget: { src: "" }
|
||||
}
|
||||
|
||||
var practicegroup = [
|
||||
{
|
||||
"termName": "Advertising, Marketing & Promotions",
|
||||
"parentTermName": "Practice Groups",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"areaTerms": [
|
||||
{
|
||||
"termName": "Advertising, Marketing & Promotions",
|
||||
"parentTermName": "Advertising, Marketing & Promotions",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"subareaTerms": [
|
||||
{
|
||||
"termName": "Advertising, Marketing & Promotions",
|
||||
"parentTermName": "Advertising, Marketing & Promotions",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"isNoFolderStructurePresent": "false",
|
||||
"documentTemplates": "Advertising, Marketing & Promotions",
|
||||
"documentTemplateNames": "Agribusiness;Aircraft;California Public Utilities Commission (CPUC);Class Action Defense",
|
||||
"id": "683ec070-7ed0-4e82-b07c-13a1b4485b7b",
|
||||
"wssId": 0,
|
||||
"subareaTerms": null
|
||||
}
|
||||
],
|
||||
"id": "16827aa4-a8b3-4275-920b-184a04bc60ea",
|
||||
"wssId": 0,
|
||||
"Selected": true
|
||||
}
|
||||
],
|
||||
"id": "a42ab615-0d27-4de2-9f55-144e71219770",
|
||||
"wssId": 0,
|
||||
"$$hashKey": "object:582",
|
||||
"Selected": true
|
||||
},
|
||||
{
|
||||
"termName": "Bankruptcy & Creditors Rights",
|
||||
"parentTermName": "Practice Groups",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"areaTerms": [
|
||||
{
|
||||
"termName": "Bankruptcy",
|
||||
"parentTermName": "Bankruptcy & Creditors Rights",
|
||||
"folderNames": "Email;Lorem;Ipsum",
|
||||
"subareaTerms": [
|
||||
{
|
||||
"termName": "Personal Bankruptcy",
|
||||
"parentTermName": "Bankruptcy",
|
||||
"folderNames": "Email;Bankruptcy",
|
||||
"isNoFolderStructurePresent": "false",
|
||||
"documentTemplates": "Bankruptcy & Creditors Rights",
|
||||
"documentTemplateNames": "California Public Utilities Commission (CPUC);Class Action Defense",
|
||||
"id": "2aa63c68-bcde-411b-bb0f-dc266de78a46",
|
||||
"wssId": 0,
|
||||
"subareaTerms": null
|
||||
}
|
||||
],
|
||||
"id": "b6678495-0a16-424e-a94e-8a73d326e5bb",
|
||||
"wssId": 0,
|
||||
"Selected": false
|
||||
}
|
||||
],
|
||||
"id": "1a185a92-569a-466e-8c94-e2c31083a821",
|
||||
"wssId": 0,
|
||||
"$$hashKey": "object:583",
|
||||
"Selected": false
|
||||
}]
|
||||
|
||||
var gridrows = {
|
||||
"core": {
|
||||
getVisibleRows: function (data) { return 0; }
|
||||
}
|
||||
}
|
||||
|
||||
function getData(objectData, resourceData) {
|
||||
var sURL = oTestConfiguration.sSiteURL + resourceData[objectData.method];
|
||||
var http = new XMLHttpRequest();
|
||||
var sPostdata;
|
||||
|
||||
if (!IsJsonString(objectData.data)) {
|
||||
sPostdata = JSON.stringify(objectData.data);
|
||||
} else {
|
||||
sPostdata = objectData.data;
|
||||
}
|
||||
http.open("POST", sURL, false);
|
||||
var accessToken = "Bearer " + sessionStorage.getItem("adal.idtoken");
|
||||
// Send the proper header information along with the request
|
||||
http.setRequestHeader("Content-type", "application/json");
|
||||
http.setRequestHeader("Accept", "application/json");
|
||||
http.setRequestHeader("Authorization", accessToken);
|
||||
http.send(sPostdata);
|
||||
|
||||
if (http.status === 200) {// That's HTTP for 'ok'
|
||||
if (objectData.success) {
|
||||
objectData.success(JSON.parse(http.responseText));
|
||||
}
|
||||
else {
|
||||
return JSON.parse(http.responseText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function IsJsonString(sValue) {
|
||||
try {
|
||||
JSON.parse(sValue);
|
||||
} catch (exception) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
Двоичные данные
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/Open Notebook.onetoc2
Normal file
Двоичные данные
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/Open Notebook.onetoc2
Normal file
Двоичный файл не отображается.
|
@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
|
|||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Microsoft.Legal.MatterCenter.DataLayer")]
|
||||
[assembly: AssemblyTitle("Microsoft.Legal.MatterCenter.Jasmine")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Microsoft.Legal.MatterCenter.DataLayer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2015")]
|
||||
[assembly: AssemblyCompany("Microsoft Corporation")]
|
||||
[assembly: AssemblyProduct("Microsoft.Legal.MatterCenter.Jasmine")]
|
||||
[assembly: AssemblyCopyright("Copyright © Microsoft Corporation 2016")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
|
@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
|
|||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("d43c4b81-a55e-4597-85e8-1df084923d86")]
|
||||
[assembly: Guid("d6f8976c-1dc3-4106-b11e-5104b91dd9d5")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
|
@ -29,8 +29,7 @@ using System.Runtime.InteropServices;
|
|||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,65 @@
|
|||
var oTestConfiguration = {
|
||||
sSiteURL: "http://matterwebapp.azurewebsites.net",
|
||||
sValidMatterName: "Test Matter 112233",
|
||||
sValidMatterClientURL: "https://lcadms.sharepoint.com/sites/microsoft",
|
||||
sInvalidMatterName: "Microsoft Test",
|
||||
sInvalidMatterURL: "https://lcadms.sharepoint.com/sites/microsoft",
|
||||
sSourceIconURL: "https://lcadms.sharepoint.com/_layouts/15/images/icsourceicon.gif",
|
||||
sEmailSubject: "CELA Project Center Feedback and Support request",
|
||||
sLearnMoreLink: "http://www.microsoft.com/mattercenter",
|
||||
sOverwriteConfigFileName: "testEmail.eml",
|
||||
sSelectedClient: "A. Datum Corporation",
|
||||
sSelectedPracticeGroup: "Advertising, Marketing & Promotions",
|
||||
sSelectedAreaOfLaw: "Advertising, Marketing & Promotions",
|
||||
sActiveSubAreaOfLawTerm: "Advertising, Marketing & Promotions",
|
||||
sFolderNames: "Email;Lorem;Ipsum",
|
||||
nGUIDLength: 32,
|
||||
sLocationURL: "https://matterwebapp.azurewebsites.net&test=1&attempt=2|jasminetest.html",
|
||||
nDocumentCheckCount: 2,
|
||||
oClientObj: { id: 16761, name: "Microsoft", url: "https://lcadms.sharepoint.com/sites/microsoft" },
|
||||
oDocumentObject: {
|
||||
documentCheckoutUser: "MAQ User",
|
||||
documentClient: "Awesome Computers",
|
||||
documentClientId: "0016763",
|
||||
documentClientUrl: "https://lcadms.sharepoint.com/sites/awesomecomputers",
|
||||
documentCreatedDate: "2/11/2016 10:55:43 AM",
|
||||
documentExtension: "docx",
|
||||
documentIconUrl: "https://lcadms.sharepoint.com/_layouts/15/images/icdocx.gif",
|
||||
documentID: "17592407627949",
|
||||
documentMatter: "Test GitHub build",
|
||||
documentMatterId: "TGB001",
|
||||
documentMatterUrl: "https://lcadms.sharepoint.com/sites/AwesomeComputers/727f57900ca2b473b99b25f9e36506d0/Forms",
|
||||
documentModifiedDate: "2/8/2016 1:06:00 PM",
|
||||
documentName: "Test Document.docx",
|
||||
documentOWAUrl: "https://lcadms.sharepoint.com/sites/AwesomeComputers/_layouts/15/WopiFrame.aspx?sourcedoc={ADF55595-76D7-4131-8FE9-807989BA166D}&file=Test%20Document.docx&action=default&DefaultItemOpen=1",
|
||||
documentOwner: "MAQ User",
|
||||
documentParentUrl: "https://lcadms.sharepoint.com/sites/AwesomeComputers/727f57900ca2b473b99b25f9e36506d0/Forms/AllItems.aspx",
|
||||
documentUrl: "https://lcadms.sharepoint.com/sites/AwesomeComputers/_layouts/15/WopiFrame.aspx?sourcedoc={ADF55595-76D7-4131-8FE9-807989BA166D}&file=Test%20Document.docx&action=default&DefaultItemOpen=1",
|
||||
documentVersion: "2.0",
|
||||
pinType: "Pin"
|
||||
},
|
||||
oMatterObject: {
|
||||
matterName: "Default Matter",
|
||||
matterDescription: "Test Matter",
|
||||
matterCreatedDate: "19/08/2016",
|
||||
matterUrl: "https://lcadms.sharepoint.com/sites/subsiteclient/SitePages/6cbca4ab447c87302d3a1f0e3c32985a.aspx",
|
||||
matterPracticeGroup: "Business Transactions",
|
||||
matterAreaOfLaw: "Family Business",
|
||||
matterSubAreaOfLaw: "Family Business",
|
||||
matterClientUrl: "https://lcadms.sharepoint.com/sites/subsiteclient",
|
||||
matterClient: "Microsoft",
|
||||
matterClientId: "578cfafb-59eb-4f4c-b219-47886c61e384",
|
||||
hideUpload: true,
|
||||
matterID: "1516561262162",
|
||||
matterResponsibleAttorney: "CELA",
|
||||
matterModifiedDate: "19/08/2016",
|
||||
matterGuid: "578cfafb-59eb-4f4c-b219-47886c61e384",
|
||||
pinType: 'unpin'
|
||||
}
|
||||
};
|
||||
|
||||
var oEnvironmentConfiguration = {
|
||||
tenantID: "9a689192-bfc9-4d08-94b9-64b31bc60540",
|
||||
clientID: "61394aba-09ba-4e25-ae32-e10805c6841b",
|
||||
instanceURL: "https://login.microsoftonline.com/"
|
||||
};
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
(function () {
|
||||
|
||||
// Enter Global Config Values & Instantiate ADAL AuthenticationContext
|
||||
window.config = {
|
||||
instance: 'https://login.microsoftonline.com/',
|
||||
tenant: 'msmatter.onmicrosoft.com', //Enter tenant Name e.g. microsoft.onmicrosoft.com
|
||||
clientId: 'b94f07df-c825-431f-b9c5-b9499e8e9ac1', //Enter your app Client ID created in Azure Portal
|
||||
postLogoutRedirectUri: window.location.origin,
|
||||
//cacheLocation: 'localStorage', // enable this for IE, as sessionStorage does not work for localhost.
|
||||
};
|
||||
|
||||
var authContext = new AuthenticationContext(config);
|
||||
|
||||
// Get UI jQuery Objects
|
||||
//var $panel = $(".panel-body");
|
||||
var $userDisplay = $(".app-user");
|
||||
var $signInButton = $(".app-login");
|
||||
var $signOutButton = $(".app-logout");
|
||||
var $errorMessage = $(".app-error");
|
||||
var $apiBtn = $("#btnAPI");
|
||||
|
||||
// Check For & Handle Redirect From AAD After Login
|
||||
var isCallback = authContext.isCallback(window.location.hash);
|
||||
authContext.handleWindowCallback();
|
||||
$errorMessage.html(authContext.getLoginError());
|
||||
|
||||
if (isCallback && !authContext.getLoginError()) {
|
||||
window.location = authContext._getItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST);
|
||||
}
|
||||
|
||||
// Check Login Status, Update UI
|
||||
var user = authContext.getCachedUser();
|
||||
if (user) {
|
||||
$userDisplay.html(user.userName);
|
||||
$userDisplay.show();
|
||||
$signInButton.hide();
|
||||
$signOutButton.show();
|
||||
} else {
|
||||
$userDisplay.empty();
|
||||
$userDisplay.hide();
|
||||
$signInButton.show();
|
||||
$signOutButton.hide();
|
||||
}
|
||||
|
||||
// Register NavBar Click Handlers
|
||||
$signOutButton.click(function () {
|
||||
authContext.logOut();
|
||||
});
|
||||
$(document).ready(function () {
|
||||
if (null == sessionStorage.getItem('adal.idtoken') || "" === sessionStorage.getItem('adal.idtoken')) {
|
||||
authContext.login();
|
||||
}
|
||||
});
|
||||
}());
|
|
@ -0,0 +1 @@
|
|||
// Write your Javascript code.
|
0
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/Scripts/site.min.js
поставляемый
Normal file
0
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/Scripts/site.min.js
поставляемый
Normal file
|
@ -0,0 +1,275 @@
|
|||
var uiconfigs =
|
||||
{
|
||||
"Navigation": {
|
||||
"MenuItem1LinkTitle": "Home",
|
||||
"MenuItem1LinkTitle": "Search matters",
|
||||
"MenuItem1LinkTitle": "Search documents",
|
||||
"NameTitle": "Matter",
|
||||
"HeaderBarLink1Title": "Learn more about matter center",
|
||||
"HeaderBarLink2Title": "Remove this section",
|
||||
"MenuImageOpenTitle": "Open App Switcher",
|
||||
"MenuImageCloseTitle": "Close App Switcher",
|
||||
"HeaderBarLink1Text": "LearnMore",
|
||||
"HomeMenuText": "Home",
|
||||
"Image1Title": "Search matters",
|
||||
"Image2Title": "Search documents",
|
||||
"HelpRequesURL": "https://lcadms.sharepoint.com/sites/catalog",
|
||||
"FooterLabel": "Questions? Contact",
|
||||
"MenuImageCaption": "menu",
|
||||
"MenuImageTitle": "Matter center menu",
|
||||
"MenuItem1LinkText": "Home",
|
||||
"MenuItem2LinkText": "Matters",
|
||||
"MenuItem3LinkText": "Documents",
|
||||
"LogoImageTitle": "Matter center home",
|
||||
"ContextualHelpImageTitle": "Matter center help",
|
||||
"ContextualHelpLabel1": "Get to know this view",
|
||||
"ContextualHelpLink1Text": "Home in Outlook and Word",
|
||||
"ContextualHelpLink1URL": "https://microsoft.sharepoint.com/teams/celapcconfig/Shared%20Documents/CELA%20Project%20Center%20End%20User%20Guide_24.pdf#Home_in_Outlook_and_Word ",
|
||||
"ContextualHelpLabel2": "How do I get Project Center on my device?",
|
||||
"ContextualHelpLink2URL": "https://microsoft.sharepoint.com/teams/celapcconfig/Shared%20Documents/CELA%20Project%20Center%20End%20User%20Guide_24.pdf#Enabling_Project_Center",
|
||||
"ContextualHelpFooterLink1Label": "Matter Center Aisling Support",
|
||||
"MatterCenterSupportLink": "mailto:support@supportsite.com",
|
||||
"ContextualHelpFooterLink1Title": "Write an email to support",
|
||||
"ContextualHelpHeader": "Matter Center For Outlook",
|
||||
"ContextualHelpFooterLabel": "Questions? Contact ",
|
||||
"HeaderBarLabel": "Welcome to Matter Center! Upload, share, and save your documents here.",
|
||||
"Image1Caption": "Matters",
|
||||
"Image2Caption": "Documents",
|
||||
"HeaderBarLink1URL": "http://www.microsoft.com/mattercenter",
|
||||
"HeaderBarLink2Text": "dismiss",
|
||||
"Image3Caption": "Upload attachments",
|
||||
"Image4Caption": "Create a new matter",
|
||||
"Image5Caption": "Go to Matter Center Home",
|
||||
"FooterLink1Title": "Matter Center Support",
|
||||
"FooterLink1Text": "Matter Center Support",
|
||||
"FooterLink1URL": "mailto:lcaweb2@microsoft.com?subject=CELA Project Center Feedback and Support request",
|
||||
"Image3Title": "Upload documents to a matter",
|
||||
"Image4Title": "Create a new matter site",
|
||||
"Image5Title": "Go to the web home page"
|
||||
},
|
||||
"MatterDashboard": {
|
||||
"GridColumn1Header": "test1",
|
||||
"GridColumn2Header": "test2",
|
||||
"GridColumn3Header": "test3",
|
||||
"GridColumn4Header": "test4",
|
||||
"GridColumn5Header": "test5",
|
||||
"AdvSearchLabel1InternalFuncParamText": "client",
|
||||
"AdvSearchLabel2InternalFuncParamText": "pg",
|
||||
"AdvSearchLabel3InternalFuncParamText": "aol"
|
||||
},
|
||||
"CreateMatter": {
|
||||
"Tab1HeaderTitle": "Step 1: Select a client and provide basic information for your new matter.",
|
||||
"Tab2HeaderTitle": "Step 2: Confirm that a conflict check was conducted and specify who should be conflicted from or given access to this matter.",
|
||||
"Tab3HeaderTitle": "Step 3: When you've entered all relevant information for your new matter, create the matter and notify your team.",
|
||||
"ButtonNextText": "Next",
|
||||
"ButtonPreviousText": "Previous",
|
||||
"ButtonCreateText": "Create",
|
||||
"Tab2NoSearchResultText": "No Results Found",
|
||||
"Tab1Type1Header1Label1": "Select a Practice Group",
|
||||
"Tab1Type1Footer1Label1": "Please select primary matter type before you save.",
|
||||
"Tab1SiteColumn1Caption": "Area of Law",
|
||||
"Tab1SiteColumn2Caption": "Sub Area of Law (select matter type)",
|
||||
"Tab1SiteColumn3Caption": "Matter Type",
|
||||
"Tab1Type1Label1": "select primary matter type",
|
||||
"Tab1ButtonAddTitle": "Add",
|
||||
"Tab1ButtonRemoveTitle": "Remove",
|
||||
"MenuImageTitle": "Matter Center menu",
|
||||
"MenuImageCaption": "menu",
|
||||
"Tab1ButtonCloseTitle": "Close",
|
||||
"Tab1ButtonSelectType": "Select Type",
|
||||
"Tab1ImageLoadingAltText": "Loading...",
|
||||
"MenuItem1LinkTitle": "Home",
|
||||
"MenuItem2LinkTitle": "Search matters",
|
||||
"MenuItem3LinkTitle": "Search documents",
|
||||
"MenuItem1LinkText": "Home",
|
||||
"MenuItem2LinkText": "Matters",
|
||||
"MenuItem3LinkText": "Documents",
|
||||
"ButtonSaveText": "Save",
|
||||
"MenuImageOpenTitle": "Open App Switcher",
|
||||
"MenuImageCloseTitle": "Close App Switcher",
|
||||
"ButtonDeleteText": "Delete",
|
||||
"Tab1LeftButtonAltText": "Left",
|
||||
"Tab1RighttButtonAltText": "Right",
|
||||
"Tab3SectionText": "You have entered all of the necessary information to create this matter. After you click Create and Notify, the matter will be created and all team members will receive an email containing a link to this matter's location. ",
|
||||
"Tab1Dropdown1Label": "Client Name",
|
||||
"Tab1Header": "Open Matter",
|
||||
"Tab2Header": "Assign Permission",
|
||||
"Tab3Header": "Create and Notify",
|
||||
"Tab2Checkbox1Lebal": "Conflict check conducted (must be complete prior to provisioning matter)",
|
||||
"Tab2Textbox1Label": "Who conducted the conflict check?",
|
||||
"Tab2DateLabel": "Date Conducted",
|
||||
"Tab2RadioButton1Label": "Conflict Identified?",
|
||||
"Tab2RadioButton1Option1": "Yes",
|
||||
"Tab2RadioButton1Option2": "No",
|
||||
"Tab2Textbox2Label": "Conflicted Users",
|
||||
"Tab1Textbox1Label": "Client ID",
|
||||
"Tab2Textbox2PlaceHolder": "Enter and select names",
|
||||
"Tab2RadioButton2Label": "Would you like this matter to be secured only to the assigned team?",
|
||||
"Tab2RadioButton2Option1": "Yes",
|
||||
"Tab2RadioButton2Option2": "No",
|
||||
"Tab2TeamHeader": "Assign Team",
|
||||
"Tab2Textbox3Label": "Name",
|
||||
"Tab2Textbox3PlaceHolder": "Enter and select names",
|
||||
"Tab2Deopdown1Label": "Role",
|
||||
"Tab2Deopdown2Label": "Permission Level",
|
||||
"Tab2AddMoreHeaderLabel": "Add More Names",
|
||||
"Tab1Textbox2Label": "Matter Name",
|
||||
"Tab3CheckBox1Text": "Include calendar",
|
||||
"Tab3CheckBox2Text": "Include RSS Feeds",
|
||||
"Tab3CheckBox3Text": "Include email notification",
|
||||
"Tab3CheckBox4Text": "Include Tasks",
|
||||
"Tab3ButtonText": "Create and Notify",
|
||||
"Tab1Textbox2PlaceholderText": "Enter a name for this matter",
|
||||
"Tab1Textbox3Label": "Matter ID",
|
||||
"Tab1Textbox3PlaceholderText": "Enter a matter ID",
|
||||
"Tab1Textbox4Label": "Matter Description",
|
||||
"Tab1Textbox4PlaceholderText": "Enter a brief description of the matter",
|
||||
"Tab1Textbox5Label": "Matter Type (click Select to define the practice group and area of law)"
|
||||
},
|
||||
"Header": {
|
||||
"MenuImage1Title": "Matter center menu",
|
||||
"MenuImage1Caption": "menu",
|
||||
"MenuImage1OpenTitle": "Open App Switcher",
|
||||
"MenuImage1CloseTitle": "Close App Switcher",
|
||||
"Menu1Option1Title": "Home",
|
||||
"Menu1Option2Title": "Search matters",
|
||||
"Menu1Option3Title": "Search documents",
|
||||
"Menu1Option1Text": "Home",
|
||||
"Menu1Option2Text": "Matters",
|
||||
"Menu1Option3Text": "Documents",
|
||||
"ContextualHelpImageTitle": "Matter center help",
|
||||
"ContextualHelpHeader": "Matter Center For Outlook",
|
||||
"ContextualHelpNoLinkText": "There are no help links available.",
|
||||
"ContextualHelpFooterLink1Label": "Matter Center Aisling Support",
|
||||
"LogoImageTitle": "Matter center home",
|
||||
"ContextualHelpLabel1": "Get to know this view",
|
||||
"ContextualHelpLabel2": "How do I get Project Center on my device?",
|
||||
"MatterCenterSupportLink": "mailto:support@supportsite.com",
|
||||
"ContextualHelpFooterLink1Title": "Write an email to support",
|
||||
"ContextualHelpFooterLabel": "Questions? Contact ",
|
||||
"ContextualHelpAltText": "Contextual Help",
|
||||
"ContextualHelpFlyoutAltText": "Close flyout",
|
||||
"CloseTitle": "Close"
|
||||
},
|
||||
"Documents": {
|
||||
"EllipsisLink4Text": "Unpin this Document",
|
||||
"StartDatePlaceHolder": "Start mm/dd/yyyy",
|
||||
"EndDatePlaceHolder": "End mm/dd/yyyy",
|
||||
"ImageWarningTitle": "Warning",
|
||||
"ImageWarningAltText": "Warning icon",
|
||||
"AttachmentSuccessfullyMsgText": "Documents successfully attached.",
|
||||
"AttachmentProgressingText": "Attaching",
|
||||
"AttachmentProgressingWarningText": "Do not close Matter Center until all documents are attached.",
|
||||
"AttachmentLoadingText": "Loading...",
|
||||
"ButtonOkText": "Ok",
|
||||
"ImageClearTitle": "Clear",
|
||||
"LabelCloseText": "Close",
|
||||
"ClearFilterFromLabelText": "Clear filters from ",
|
||||
"NoFilterMatchMsgTitle": "There are no items that match this filter",
|
||||
"NoFilterMatchMsgText": "There are no items that match this filter",
|
||||
"LabelDocumentText": "documents...",
|
||||
"LabelOfText": "of",
|
||||
"ImageClearAltText": "Clear filters",
|
||||
"FilterSearchPlaceholderText": "Search",
|
||||
"EllipsisDocTypeIconAltText": "Document type icon",
|
||||
"GridColumn8Header": "Created Date",
|
||||
"Dropdown1Item1": "All Documents",
|
||||
"Dropdown1Item2": "My Documents",
|
||||
"Dropdown1Item3": "Pinned Documents",
|
||||
"SearchPlaceholderText": "Search by ID, or document or client name",
|
||||
"NoDataSearchText": "Nothing matches your search term or the filter you selected. Please try again.<br>If you applied a filter, remove it to get back to your list.<br>Search suggestions:<br><ul><li>Make sure all words are spelled correctly</li><li>Try different keywords</li><li>Try searching by the matter name or client name</li><li>Try more general search terms</li></ul>",
|
||||
"GridColumn1Header": "Document",
|
||||
"GridColumn2Header": "Client",
|
||||
"GridColumn3Header": "Client.MatterID",
|
||||
"GridColumn4Header": "Modified Date",
|
||||
"GridColumn5Header": "Author",
|
||||
"GridColumn6Header": "Document Version",
|
||||
"GridColumn7Header": "Checked out to",
|
||||
"HeaderText": "All Documents",
|
||||
"EllipsisLink1Text": "Open this Document",
|
||||
"EllipsisLink2Text": "View Matter Details",
|
||||
"EllipsisLink3Text": "Pin this Document",
|
||||
"FlyoutButton1Text": "Open document",
|
||||
"FlyoutButton2Text": "View document details"
|
||||
},
|
||||
"Matters": {
|
||||
"EllipsisLink5Text": "Unpin this matter",
|
||||
"AttachmentEditImageTitle": "Edit attachment name",
|
||||
"AttachmentEditImageAltText": "Edit",
|
||||
"AttachmentSaveImageTitle": "Save attachment name",
|
||||
"AttachmentSaveImageText": "Save",
|
||||
"AttachmentUploadSuccessfullyImageAltText": "Uploaded successfully",
|
||||
"AttachmentIconImageAltText": "attachment icon",
|
||||
"AttachmentTestTitle": "Test attachments",
|
||||
"AttachmentEmptyText": "No files uploaded",
|
||||
"AttachmentBreadcrumAltText": "Root",
|
||||
"AttachmentFolderAltText": "Documents",
|
||||
"FilterSearchPlaceholderText": "Search",
|
||||
"ClearFilterText": "Clear filters from ",
|
||||
"NoFilterMatchMsgTitle": "There are no items that match this filter",
|
||||
"NoFilterMatchMsgText": "There are no items that match this filter",
|
||||
"ImageCloseText": "Close",
|
||||
"ImageClearTitle": "Clear",
|
||||
"ImageClearAltText": "Clear filters",
|
||||
"ClearFilterFromLabelText": "Clear filters from ",
|
||||
"ImageWarningAltText": "Warning Message",
|
||||
"Button1DuplicateContentTitle": "Matter Center will compare all content and data associated with the two documents. Navigating away from this screen will cancel the content check.",
|
||||
"Button1DuplicateContentText": "Perform content check",
|
||||
"Button2SaveLatestVersionTitle": "The file will be saved as the latest version of the existing document that has same title. Matter Center will retain all prior versions of the document.",
|
||||
"Button2SaveLatestVersionText": "Save as latest version",
|
||||
"Button3AppendDateTitle": "The file will be saved as new, separate document with the current date and time added to the end of the file name.",
|
||||
"Button3AppendDateText": "Append date to file name and save",
|
||||
"Button4CancelUploadTitle": "This document will not be uploaded and you will return to the previous screen.",
|
||||
"Button4CancelUploadText": "Cancel upload",
|
||||
"Button5OkTitle": "This document will not be uploaded and you will return to the previous screen.",
|
||||
"Button5OkText": "Ok",
|
||||
"Image1ContentCheckText": "Checking content ",
|
||||
"Button6CancelText": "Cancel",
|
||||
"UploadCompleteLabel1Text": "Upload complete.",
|
||||
"CloseIconText": "x",
|
||||
"StartDatePlaceHolder": "Start mm/dd/yyyy",
|
||||
"EndDatePlaceHolder": "End mm/dd/yyyy",
|
||||
"GridColumn8Header": "Area of Law",
|
||||
"AttachmentLoadingText": "Loading...",
|
||||
"GridColumn5Header": "Responsible Attorney",
|
||||
"GridColumn6Header": "Sub Area of Law",
|
||||
"GridColumn7Header": "Open Date",
|
||||
"Dropdown1Item1": "All Matters",
|
||||
"Dropdown1Item2": "My Matters",
|
||||
"Dropdown1Item3": "Pinned Matters",
|
||||
"SearchPlaceholderText": "Search by ID, or matter or client name",
|
||||
"NoDataSearchText": "Nothing matches your search term or the filter you selected. Please try again.<br>If you applied a filter, remove it to get back to your list.<br>Search suggestions:<br><ul><li>Make sure all words are spelled correctly</li><li>Try different keywords</li><li>Try searching by the matter name or client name</li><li>Try more general search terms</li></ul>",
|
||||
"GridColumn1Header": "Matter",
|
||||
"GridColumn2Header": "Client",
|
||||
"GridColumn3Header": "Client.MatterID",
|
||||
"GridColumn4Header": "Modified Date",
|
||||
"HeaderText": "All Matters",
|
||||
"EllipsisLink1Text": "Upload to this Matter",
|
||||
"EllipsisLink2Text": "View Matter Details",
|
||||
"EllipsisLink3Text": "Go to Matter OneNote",
|
||||
"EllipsisLink4Text": "Pin this matter",
|
||||
"FlyoutButton1Text": "View matter details",
|
||||
"FlyoutButton2Text": "Upload to a matter",
|
||||
"AttachmentPopupHeaderText": "Drag and drop items to folders on the right",
|
||||
"AttachmentPopupFooterImageCapetion": "You can also drag and drop files from your desktop.",
|
||||
"AttachmentPopupHeaderItem1Text": "Items",
|
||||
"AttachmentPopupHeaderItem2Text": "Folders",
|
||||
"AttachmentPopupHeaderText": "Upload to a matter"
|
||||
},
|
||||
"MatterUsers": {
|
||||
"StampedPropertiesURL": "https://lcadms.sharepoint.com/sites/microsoft",
|
||||
"SearchUsersURL": "https://lcadms.sharepoint.com/sites/client"
|
||||
},
|
||||
"DocumentDashboard": {
|
||||
"GridColumn1Header": "test1",
|
||||
"GridColumn2Header": "test2",
|
||||
"GridColumn3Header": "test3",
|
||||
"GridColumn4Header": "test4",
|
||||
"GridColumn5Header": "test5",
|
||||
"GridColumn6Header": "test6",
|
||||
"AdvSearchLabel1InternalFuncParamText": "client",
|
||||
"AdvSearchLabel2InternalFuncParamText": "pg",
|
||||
"AdvSearchLabel3InternalFuncParamText": "aol"
|
||||
}
|
||||
|
||||
};
|
|
@ -0,0 +1,336 @@
|
|||
/// <disable>JS2074, JS3058</disable>
|
||||
// Test suite
|
||||
describe("CreateMatter Controller test suite", function () {
|
||||
"use strict";
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("matterResource", ["$resource", "auth", mockMatterResourceService]);
|
||||
}));
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $injector, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("createMatterController as vm", { $scope: $scope, $rootScope: rootScope, $state: $state, $stateParams: $stateParams, matterResource: mockMatterResourceService, api: mockapi });
|
||||
}));
|
||||
|
||||
describe("Verification of clearpopup function", function () {
|
||||
it("It should set an errorPopUpBlock to false", function () {
|
||||
vm.clearPopUp();
|
||||
expect(vm.errorPopUpBlock).toBe(false);
|
||||
});
|
||||
|
||||
it("It should not define errorPopUpBlock", function () {
|
||||
expect(vm.errorPopUpBlock).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of getMatterGUID function", function () {
|
||||
it("It should return the GUID for matter with length of 32 alphanumeric characters", function () {
|
||||
expect(vm.matterGUID.length).toBe(oTestConfiguration.nGUIDLength);
|
||||
});
|
||||
|
||||
it("It should not return null value", function () {
|
||||
expect(vm.matterGUID).not.toBe(null);
|
||||
});
|
||||
|
||||
it("It should return the GUID for matter with defined value", function () {
|
||||
expect(vm.matterGUID).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of selectMatterTypePopUpClose function", function () {
|
||||
it("It should hide popupContainerBackground and popupContainer", function () {
|
||||
vm.popupContainer = "Show";
|
||||
vm.selectMatterTypePopUpClose();
|
||||
expect(vm.popupContainerBackground).toBe("hide");
|
||||
expect(vm.popupContainer).toBe("hide");
|
||||
});
|
||||
|
||||
it("It should show popupContainerBackground and should hide popupContainer", function () {
|
||||
vm.popupContainer = "hide";
|
||||
vm.selectMatterTypePopUpClose();
|
||||
expect(vm.popupContainerBackground).toBe("Show");
|
||||
expect(vm.popupContainer).toBe("hide");
|
||||
});
|
||||
});
|
||||
|
||||
//describe("Verification of getSelectedPracticeGroupValue function", function () {
|
||||
// it("It should return the selected PracticeGroup Value for all AOL and SAOL terms)", function () {
|
||||
// vm.selectedPracticeGroup = selectedPracticeGroup;
|
||||
// vm.getSelectedPracticeGroupValue();
|
||||
// expect(vm.areaOfLawTerms).not.toBe(null);
|
||||
// expect(vm.subAreaOfLawTerms).not.toBe(null);
|
||||
// expect(vm.activeSubAOLTerm.termName).toBe(oTestConfiguration.sActiveSubAreaOfLawTerm);
|
||||
// expect(vm.activeAOLTerm.folderNames).toBe(oTestConfiguration.sFolderNames);
|
||||
// expect(vm.errorPopUp).toBe(false);
|
||||
// });
|
||||
|
||||
// it("It should return the null value for selected PracticeGroup for AOL and SAOL terms", function () {
|
||||
// vm.selectedPracticeGroup = null;
|
||||
// vm.getSelectedPracticeGroupValue();
|
||||
// expect(vm.areaOfLawTerms).toBe(null);
|
||||
// expect(vm.subAreaOfLawTerms).toBe(null);
|
||||
// });
|
||||
//});
|
||||
|
||||
//describe("Verification of selectAreaOfLawTerm function", function () {
|
||||
// it("It should return the sub area of law term on selection of area of law term", function () {
|
||||
// vm.selectAreaOfLawTerm(selectedPracticeGroup.areaTerms[0]);
|
||||
// expect(vm.subAreaOfLawTerms).not.toBe(null);
|
||||
// expect(vm.activeSubAOLTerm.termName).toBe(oTestConfiguration.sActiveSubAreaOfLawTerm);
|
||||
// expect(vm.errorPopUp).toBe(false);
|
||||
// expect(vm.activeAOLTerm).toBe(selectedPracticeGroup.areaTerms[0]);
|
||||
// });
|
||||
|
||||
// it("It should defined sub area of law term on selection of area of law term", function () {
|
||||
// vm.selectAreaOfLawTerm(selectedPracticeGroup.areaTerms[0]);
|
||||
// expect(vm.subAreaOfLawTerms).not.toBeUndefined();
|
||||
// expect(vm.activeSubAOLTerm).not.toBeUndefined();
|
||||
// expect(vm.errorPopUp).not.toBeUndefined();
|
||||
// expect(vm.activeAOLTerm).not.toBeUndefined();
|
||||
// });
|
||||
//});
|
||||
|
||||
//describe("Verification of selectSubAreaOfLawTerm function", function () {
|
||||
// it("It should return the sub area of law items", function () {
|
||||
// vm.selectSubAreaOfLawTerm(selectedPracticeGroup.areaTerms[0].subareaTerms[0]);
|
||||
// expect(vm.activeSubAOLTerm).toBe(selectedPracticeGroup.areaTerms[0].subareaTerms[0]);
|
||||
// expect(vm.errorPopUp).toBe(false);
|
||||
// });
|
||||
|
||||
// it("It should not return undefined value for sub area of law items", function () {
|
||||
// vm.selectSubAreaOfLawTerm(selectedPracticeGroup.areaTerms[0].subareaTerms[0]);
|
||||
// expect(vm.activeSubAOLTerm).not.toBeUndefined();
|
||||
// expect(vm.errorPopUp).not.toBeUndefined();
|
||||
// });
|
||||
//});
|
||||
|
||||
describe("Verification of selectDocumentTemplateTypeLawTerm function", function () {
|
||||
it("It should not return null value for the document template type term", function () {
|
||||
vm.selectDocumentTemplateTypeLawTerm(documentTemplateTypeLawTerm);
|
||||
expect(vm.removeDTItem).toBe(true);
|
||||
expect(vm.errorPopUp).toBe(false);
|
||||
expect(vm.activeDocumentTypeLawTerm).toBe(documentTemplateTypeLawTerm);
|
||||
expect(vm.primaryMatterType).toBe(true);
|
||||
});
|
||||
|
||||
it("It should return correct value for document template type term", function () {
|
||||
vm.selectDocumentTemplateTypeLawTerm(documentTemplateTypeLawTerm);
|
||||
expect(vm.removeDTItem).not.toBe(false);
|
||||
expect(vm.errorPopUp).not.toBe(true);
|
||||
expect(vm.activeDocumentTypeLawTerm).not.toBe(null);
|
||||
expect(vm.primaryMatterType).not.toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of addToDocumentTemplate function", function () {
|
||||
it("It should return the document template type law terms", function () {
|
||||
vm.activeSubAOLTerm = documentTemplateTypeLawTerm;
|
||||
vm.documentTypeLawTerms = subareaTerms;
|
||||
vm.addToDocumentTemplate();
|
||||
expect(vm.documentTypeLawTerms).not.toBeUndefined();
|
||||
});
|
||||
|
||||
it("It should not return null value for activeDocumentTypeLawTerm", function () {
|
||||
vm.activeSubAOLTerm = documentTemplateTypeLawTerm;
|
||||
vm.documentTypeLawTerms = subareaTerms;
|
||||
vm.addToDocumentTemplate();
|
||||
expect(vm.activeDocumentTypeLawTerm).not.toBe("null");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of removeFromDocumentTemplate function", function () {
|
||||
it("It should not return document template type law terms while removing", function () {
|
||||
vm.removeDTItem = false;
|
||||
vm.removeFromDocumentTemplate();
|
||||
expect(vm.removeDTItem).not.toBe(true);
|
||||
expect(vm.primaryMatterType).not.toBe(true);
|
||||
});
|
||||
|
||||
it("It should return the document template type law terms while removing", function () {
|
||||
vm.removeDTItem = true;
|
||||
vm.removeFromDocumentTemplate();
|
||||
expect(vm.removeDTItem).toBe(false);
|
||||
expect(vm.primaryMatterType).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of onSelect function", function () {
|
||||
|
||||
it("It should return the conflicted user", function () {
|
||||
vm.onSelect(item, $model, $label, "conflictcheckuser", "on-blurr", event, item.name);
|
||||
expect(vm.oSiteUsers).toBeDefined();
|
||||
expect(vm.selectedConflictCheckUser).toBe("MAQ User(MAQUser@LCADMS.onmicrosoft.com)");
|
||||
});
|
||||
|
||||
it("It should return the blocked user", function () {
|
||||
vm.onSelect(item, $model, $label, "blockuser", "on-blurr", event, item.name);
|
||||
expect(vm.oSiteUsers).toBeDefined();
|
||||
expect(vm.blockedUserName).toBe("MAQ User(MAQUser@LCADMS.onmicrosoft.com)");
|
||||
});
|
||||
|
||||
it("It should return the team member", function () {
|
||||
vm.onSelect(item, $model, $label, "team", "on-blurr", event, item.name);
|
||||
expect(vm.oSiteUsers).toBeDefined();
|
||||
expect(vm.typehead).toBe(false);
|
||||
expect(vm.notificationPopUpBlock).toBe(false);
|
||||
expect($label.assignedUser).toBe("MAQ User(MAQUser@LCADMS.onmicrosoft.com)");
|
||||
});
|
||||
|
||||
it("It should return the assigned user", function () {
|
||||
vm.onSelect($item, $model, $label, "team", "on-blurr", event, item.name);
|
||||
expect(vm.user).toBe("MAQ User");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of saveDocumentTemplates function", function () {
|
||||
it("It should return the saved document Templates", function () {
|
||||
vm.primaryMatterType = true;
|
||||
vm.activeDocumentTypeLawTerm = documentTemplateTypeLawTerm;
|
||||
vm.documentTypeLawTerms = subareaTerms;
|
||||
vm.saveDocumentTemplates();
|
||||
expect(vm.selectedDocumentTypeLawTerms).toBe(vm.documentTypeLawTerms);
|
||||
expect(vm.popupContainerBackground).toBe("hide");
|
||||
expect(vm.popupContainer).toBe("hide");
|
||||
});
|
||||
|
||||
it("It should not return saved document Templates and should prompt error popup", function () {
|
||||
vm.primaryMatterType = false;
|
||||
vm.saveDocumentTemplates();
|
||||
expect(vm.errorPopUp).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of open1 function", function () {
|
||||
it("It should open the date picker", function () {
|
||||
vm.open1();
|
||||
expect(vm.opened).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of conflictRadioChange function", function () {
|
||||
it("It should enable the secureMatterRadioEnabled option", function () {
|
||||
vm.conflictRadioChange(true);
|
||||
expect(vm.secureMatterRadioEnabled).toBe(true);
|
||||
expect(vm.secureMatterCheck).toBe(true);
|
||||
});
|
||||
|
||||
it("It should disable the secureMatterRadioEnabled option", function () {
|
||||
vm.conflictRadioChange(false);
|
||||
expect(vm.secureMatterRadioEnabled).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of addNewAssignPermissions function", function () {
|
||||
it("It should return the data for assignPermissionTeams", function () {
|
||||
vm.addNewAssignPermissions();
|
||||
expect(vm.assignPermissionTeams).not.toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of removeAssignPermissionsRow function", function () {
|
||||
it("It should return the remaining users", function () {
|
||||
vm.assignPermissionTeams.length = Math.floor(Math.random() * 5) + 2;
|
||||
var rows = vm.assignPermissionTeams.length;
|
||||
vm.removeAssignPermissionsRow(0);
|
||||
expect(rows).toBe(vm.assignPermissionTeams.length + 1);
|
||||
});
|
||||
|
||||
it("It should not return any data", function () {
|
||||
vm.assignPermissionTeams.length = 0;
|
||||
vm.removeAssignPermissionsRow(0);
|
||||
expect(vm.assignPermissionTeams.length).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of createAndNotify function", function () {
|
||||
it("It should display the Create and Notify button", function () {
|
||||
vm.createAndNotify(true);
|
||||
expect(vm.createButton).toBe("Create and Notify");
|
||||
});
|
||||
|
||||
it("It should display the Create button", function () {
|
||||
vm.createAndNotify(false);
|
||||
expect(vm.createButton).toBe("Create");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of CheckPopUp function", function () {
|
||||
it("It should display the Check PopUp", function () {
|
||||
vm.CheckPopUp(true);
|
||||
expect(vm.errorPopUpBlock).toBe(false);
|
||||
expect(vm.errorBorder).toBe("");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of closesuccessbanner function", function () {
|
||||
it("It should close the successbanner", function () {
|
||||
vm.closesuccessbanner();
|
||||
expect(vm.successMsg).toBe("");
|
||||
expect(vm.successBanner).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of createMatterButton function', function () {
|
||||
it('Successfully create matter button', function () {
|
||||
vm.validateCurrentPage = function (id) { return true; };
|
||||
var validateCurrentPage = function (id) { return true; };
|
||||
vm.chkConfilctCheck = true;
|
||||
vm.conflictDate = "8/1/2016";
|
||||
vm.createMatterButton(event);
|
||||
expect(vm.sectionName).toBe("snConflictCheck");
|
||||
expect(vm.iCurrentPage).toBe(2);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of navigateToSecondSection function', function () {
|
||||
it('it should navigateToSecondSection', function () {
|
||||
vm.iCurrentPage = 5;
|
||||
vm.navigateToSecondSection("snOpenMatter");
|
||||
expect(vm.sectionName).toBe("snOpenMatter");
|
||||
expect(vm.iCurrentPage).toBe(1);
|
||||
expect(localStorage.getItem('iLivePage')).toBe("1");
|
||||
expect(vm.prevButtonDisabled).toBe(true);
|
||||
expect(vm.nextButtonDisabled).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//describe('Verification of NextClick function', function () {
|
||||
// it('it should NextClick', function () {
|
||||
// vm.iCurrentPage = 1;
|
||||
// vm.NextClick(event)
|
||||
// expect(vm.NextClick(event)).not.toThrow(Error);
|
||||
// });
|
||||
// it('it should perform NextClick', function () {
|
||||
// vm.iCurrentPage = 2;
|
||||
// vm.NextClick(event)
|
||||
// expect(vm.NextClick(event)).not.toThrow(Error);
|
||||
// });
|
||||
//});
|
||||
|
||||
describe('Verification of PreviousClick function', function () {
|
||||
it('it should PreviousClick', function () {
|
||||
vm.iCurrentPage = 2;
|
||||
vm.PreviousClick(event)
|
||||
expect(vm.iCurrentPage).toBe(1);
|
||||
expect(localStorage.getItem('iLivePage')).toBe("1");
|
||||
expect(vm.prevButtonDisabled).toBe(true);
|
||||
expect(vm.nextButtonDisabled).toBe(false);
|
||||
});
|
||||
//it('it should perform PreviousClick', function () {
|
||||
// vm.iCurrentPage = 3;
|
||||
// vm.PreviousClick(event)
|
||||
// expect(vm.NextClick(event)).not.toThrow(Error);
|
||||
//});
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1,83 @@
|
|||
/// <disable>JS2074, JS3058</disable>
|
||||
// Test suite
|
||||
describe("CreateMatter Controller test suite", function () {
|
||||
"use strict";
|
||||
|
||||
var mockapi = function (matterResource, callback) {
|
||||
getData(matterResource, mockMatterResourceService);
|
||||
};
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("matterResource", ["$resource", "auth", mockMatterResourceService]);
|
||||
}));
|
||||
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $injector, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("createMatterController as vm", { $scope: $scope, $rootScope: rootScope, $state: $state, $stateParams: $stateParams, matterResource: mockMatterResourceService, api: mockapi });
|
||||
}));
|
||||
|
||||
describe("Verification of Check valid matter function", function () {
|
||||
it("Should return true for new matter", function () {
|
||||
vm.matterName = oTestConfiguration.sValidMatterName;
|
||||
vm.clientUrl = oTestConfiguration.sValidMatterClientURL;
|
||||
vm.checkValidMatterName();
|
||||
expect(vm.checkValidMatterName).toBe(true);
|
||||
});
|
||||
|
||||
it("It should return false for new matter", function () {
|
||||
vm.matterName = oTestConfiguration.sInvalidMatterName;
|
||||
vm.clientUrl = oTestConfiguration.sInvalidMatterURL;
|
||||
vm.checkValidMatterName();
|
||||
expect(vm.checkValidMatterName).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of selectMatterType function", function () {
|
||||
it("Successfully get Practice Group, Area of law and SubArea of law", function () {
|
||||
vm.selectMatterType();
|
||||
//expect(vm.selectedPracticeGroup).toBe(vm.pracitceGroupList[0]);
|
||||
//expect(vm.areaOfLawTerms).toBe(vm.pracitceGroupList[0].areaTerms);
|
||||
//expect(vm.subAreaOfLawTerms).toBe(vm.pracitceGroupList[0].areaTerms[0].subareaTerms);
|
||||
//expect(vm.activeAOLTerm).toBe(vm.pracitceGroupList[0].areaTerms[0]);
|
||||
//expect(vm.activeSubAOLTerm).toBe(vm.pracitceGroupList[0].areaTerms[0].subareaTerms[0]);
|
||||
expect(vm.popupContainerBackground).toBe("Show");
|
||||
expect(vm.popupContainer).toBe("Show");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of getSelectedClientValue function", function () {
|
||||
it("Successfully get data from matter configuration list", function () {
|
||||
vm.getSelectedClientValue(oTestConfiguration.oClientObj);
|
||||
expect(vm.secureMatterCheck).toBe(true);
|
||||
expect(vm.includeCalendar).toBe(true);
|
||||
expect(vm.includeEmail).toBe(true);
|
||||
expect(vm.includeRssFeeds).toBe(true);
|
||||
expect(vm.defaultConfilctCheck).toBe(true);
|
||||
expect(vm.isMatterDescriptionMandatory).toBe(true);
|
||||
expect(vm.includeTasks).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
////describe("Verification of createMatterButton function", function () {
|
||||
//// it("Successfully create matter button", function () {
|
||||
//// vm.chkConfilctCheck = true;
|
||||
//// vm.conflictDate = "8/1/2016";
|
||||
//// vm.createMatterButton(event);
|
||||
//// expect(localStorage.getItem("IsRestrictedAccessSelected")).toBe("true");
|
||||
//// expect(localStorage.getItem("IsCalendarSelected")).toBe("true");
|
||||
//// expect(localStorage.getItem("IsRSSSelected")).toBe("true");
|
||||
//// expect(localStorage.getItem("IsEmailOptionSelected")).toBe("true");
|
||||
//// expect(localStorage.getItem("IsConflictCheck")).toBe("true");
|
||||
//// expect(localStorage.getItem("IsMatterDescriptionMandatory")).toBe("false");
|
||||
//// expect(localStorage.getItem("IsTaskSelected")).toBe("true");
|
||||
//// });
|
||||
////});
|
||||
});
|
|
@ -0,0 +1,128 @@
|
|||
/// <disable>JS2074, JS3058</disable>
|
||||
// Test suite
|
||||
describe("documents Controller test suite", function () {
|
||||
"use strict";
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("documentResource", ["$resource", "auth", mockDocumentResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("documentsController as vm", { $scope: $scope, $state: $state, $stateParams: $stateParams, documentResource: mockDocumentResource, api: mockapi, $rootScope: rootScope, $http: $http, $location: $location, $q: $q, $animate: $animate });
|
||||
}));
|
||||
|
||||
describe("Verification of showdocdrop function", function () {
|
||||
it("It should display document drop inner menu", function () {
|
||||
vm.docdropinner = true;
|
||||
vm.showdocdrop(event);
|
||||
expect(vm.documentsdrop).toBe(true);
|
||||
expect(vm.docdropinner).toBe(false);
|
||||
});
|
||||
it("It should hide document drop inner menu", function () {
|
||||
vm.docdropinner = false;
|
||||
vm.showdocdrop(event);
|
||||
expect(vm.documentsdrop).toBe(false);
|
||||
expect(vm.docdropinner).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of closealldrops function", function () {
|
||||
it("It should close all dropdown menu", function () {
|
||||
vm.closealldrops();
|
||||
expect(vm.documentsdrop).toBe(false);
|
||||
expect(vm.docdropinner).toBe(true);
|
||||
expect(vm.documentheader).toBe(true);
|
||||
expect(vm.documentdateheader).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of getTableHeight function", function () {
|
||||
it("It should set dynamic height of the grid", function () {
|
||||
vm.isOutlook = true;
|
||||
var oTableHeight = vm.getTableHeight();
|
||||
expect(oTableHeight).toBeDefined();
|
||||
expect(oTableHeight).not.toBe(null);
|
||||
});
|
||||
it("It should not set dynamic height of the grid", function () {
|
||||
vm.isOutlook = false;
|
||||
var oTableHeight = vm.getTableHeight();
|
||||
expect(oTableHeight).toBeDefined();
|
||||
expect(oTableHeight).not.toBe(null);
|
||||
});
|
||||
});
|
||||
describe("Verification of isOutlookAsAttachment function", function () {
|
||||
it("It should show outlook as an attachment", function () {
|
||||
vm.isOutlookAsAttachment(true);
|
||||
expect(vm.showAttachment).not.toBe(true);
|
||||
expect(vm.showAttachment).toBeDefined();
|
||||
expect(vm.enableAttachment).toBe(false);
|
||||
});
|
||||
});
|
||||
describe("Verification of closeNotification function", function () {
|
||||
it("It should close all the notifications", function () {
|
||||
vm.closeNotification();
|
||||
expect(vm.showPopUpHolder).toBe(false);
|
||||
expect(vm.showSuccessAttachments).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of search function", function () {
|
||||
it("It should perform the text search in all documents", function () {
|
||||
vm.selected = "";
|
||||
vm.search();
|
||||
expect(vm.pagenumber).toBe(1);
|
||||
expect(vm.documentname).toBe("All Documents");
|
||||
expect(vm.documentid).toBe(1);
|
||||
expect(vm.lazyloader).toBe(false);
|
||||
expect(vm.responseNull).toBe(false);
|
||||
expect(vm.divuigrid).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of disabled function", function () {
|
||||
it("It should set the status", function () {
|
||||
var oDate = new Date();
|
||||
var bStatus = vm.disabled(oDate, "day");
|
||||
expect(bStatus).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showSortExp function", function () {
|
||||
it("It should sort the data in ascending order", function () {
|
||||
vm.sortexp = "test";
|
||||
vm.sortby = "asc";
|
||||
vm.showSortExp();
|
||||
expect(angular.element()).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
// Test suite to execute test cases.
|
||||
describe("Verification of toggleCheckerAll function", function () {
|
||||
// Test case to validate function.
|
||||
it("It should check all the checkboxes inside grid", function () {
|
||||
vm.gridOptions.data = obj;
|
||||
vm.toggleCheckerAll(true);
|
||||
expect(vm.gridOptions.data[0].checker).toBe(true);
|
||||
expect(vm.documentsCheckedCount).toBe(oTestConfiguration.nDocumentCheckCount);
|
||||
expect(vm.selectedRows).toBe(obj);
|
||||
});
|
||||
it("It should uncheck all the checkboxes inside grid", function () {
|
||||
vm.gridOptions.data = obj;
|
||||
vm.toggleCheckerAll(false);
|
||||
expect(vm.gridOptions.data[0].checker).toBe(false);
|
||||
expect(vm.documentsCheckedCount).toBe(0);
|
||||
expect(vm.selectedRows).not.toBe(null);
|
||||
expect(vm.showErrorAttachmentInfo).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,156 @@
|
|||
// Test suite
|
||||
describe('documents Controller service call test suite', function () {
|
||||
|
||||
var documentapi = function (documentDashBoardResource) {
|
||||
getData(documentDashBoardResource, mockDocumentResource);
|
||||
};
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("documentResource", ['$resource', 'auth', mockDocumentResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("api", ['matterResource', 'documentResource', 'documentDashBoardResource', 'matterDashBoardResource', 'homeResource', documentapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module('ui.router'));
|
||||
beforeEach(module('ui.bootstrap'));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller('documentsController as vm', { $scope: $scope, $state: $state, $stateParams: $stateParams, documentResource: mockDocumentResource, api: documentapi, $rootScope: rootScope, $http: $http, $location: $location, $q: $q, $animate: $animate });
|
||||
}));
|
||||
|
||||
describe('Verification of watchFunc function', function () {
|
||||
it('It should get all grid data', function () {
|
||||
$scope.gridApi = { infiniteScroll: { dataLoaded: function () { } } };
|
||||
// $scope.gridApi.infiniteScroll.dataLoaded();
|
||||
var promise = vm.watchFunc();
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Verification of documentsearch function', function () {
|
||||
it('It should search related document', function () {
|
||||
var term = "FileName:Test*(* OR FileName:* OR dlcDocIdOWSText:* OR MCDocumentClientName:*)";
|
||||
var property = "FileName";
|
||||
vm.documentsearch(term, property, false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
expect(vm.filternodata).toBe(false);
|
||||
expect(vm.details.length).toBeGreaterThan(0);
|
||||
expect(vm.details).not.toBe(null);
|
||||
//vm.documentsearch(term, property, true);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Verification of FilterModifiedDate function', function () {
|
||||
it('Data should be filtered based on modified date', function () {
|
||||
vm.modstartdate = new Date("08/01/2016");
|
||||
vm.modenddate = new Date("08/10/2016");
|
||||
vm.FilterModifiedDate("Modified Date");
|
||||
expect(vm.moddatefilter).toBe(true);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Verification of SetDocuments function', function () {
|
||||
it('document name should be added in dropdown', function () {
|
||||
$scope.gridApi = { infiniteScroll: { dataLoaded: function () { } } };
|
||||
vm.SetDocuments(1, "All Documents");
|
||||
expect(true).toBe(true);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.responseNull).toBe(false);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of GetDocuments function', function () {
|
||||
it('document name should be added in dropdown', function () {
|
||||
$scope.gridApi = { infiniteScroll: { dataLoaded: function () { } } };
|
||||
vm.GetDocuments(3);
|
||||
expect(true).toBe(true);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of PinMatter function', function () {
|
||||
it('It should be added in pinned list', function () {
|
||||
var pinObject = {
|
||||
entity: oTestConfiguration.oDocumentObject
|
||||
};
|
||||
vm.PinMatter(pinObject);
|
||||
vm.documentid = 1;
|
||||
vm.documentname = "All Documents";
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.responseNull).toBe(false);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of UnpinDocument function', function () {
|
||||
it('It should be removed from pinned list', function () {
|
||||
var pinObject = {
|
||||
entity: oTestConfiguration.oDocumentObject
|
||||
};
|
||||
vm.UnpinDocument(pinObject);
|
||||
vm.documentid = 1;
|
||||
vm.documentname = "All Documents";
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.responseNull).toBe(false);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of FilterByType function', function () {
|
||||
it('document count should be greater than 0', function () {
|
||||
vm.FilterByType();
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of sortChangedDocument function', function () {
|
||||
it('documents should be sort based on document name', function () {
|
||||
$scope.gridApi = { infiniteScroll: { dataLoaded: function () { }, resetScroll: function () { } } };
|
||||
var sortColumns = [{ "field": "documentName", "name": "documentName", "sort": "asc" }];
|
||||
vm.gridOptions.columnDefs[1] = { "field": "documentName", "displayName": "Document", "width": "278", "enableHiding": false, "cellTemplate": "../app/document/DocumentTemplates/DocumentCellTemplate.html", "headerCellTemplate": "../app/document/DocumentTemplates/DocumentHeaderTemplate.html", "name": "documentName", "type": "string" };
|
||||
$scope.sortChangedDocument(null, sortColumns);
|
||||
expect(vm.FileNameSort).toBe("desc");
|
||||
expect(vm.sortby).toBe("asc");
|
||||
expect(vm.sortexp).toBe("documentName");
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of typeheadselect function', function () {
|
||||
it('selected document result should be displayed', function () {
|
||||
$scope.gridApi = { infiniteScroll: { dataLoaded: function () { }, resetScroll: function () { } } };
|
||||
var selected = "All Attachments - image test.eml (280620050)";
|
||||
vm.typeheadselect(null, selected);
|
||||
expect(selected).toContain(vm.gridOptions.data[0].documentName);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1,153 @@
|
|||
/// <disable>JS2074, JS3058</disable>
|
||||
// Test suite
|
||||
describe("DocumentDashboard Controller test suite", function () {
|
||||
"use strict";
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("documentDashBoardResource", ["$resource", "auth", mockDocumentDashBoardResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $injector, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("DocumentDashBoardController as vm", { $scope: $scope, $state: $state, $stateParams: $stateParams, documentDashBoardResource: mockDocumentDashBoardResource, api: mockapi, $rootScope: rootScope, $http: $http, $location: $location });
|
||||
}));
|
||||
|
||||
//describe("Verification of closealldrops function", function () {
|
||||
// it("It should close all dropdowns on click of page", function () {
|
||||
// vm.x = 5;
|
||||
// vm.y = 2;
|
||||
// vm.sum();
|
||||
// expect(vm.z).toBe(7);
|
||||
|
||||
// });
|
||||
//});
|
||||
|
||||
describe("Verification of closealldrops function", function () {
|
||||
it("It should close all dropdowns on click of page", function () {
|
||||
vm.closealldrops(event);
|
||||
expect(vm.searchdrop).toBe(false);
|
||||
expect(vm.downwarddrop).toBe(true);
|
||||
expect(vm.upwarddrop).toBe(false);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.sortbydrop).toBe(false);
|
||||
expect(vm.sortbydropvisible).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of hideinnerdashboarddrop function", function () {
|
||||
it("It should close and hide inner dropdowns of search box", function () {
|
||||
vm.hideinnerdashboarddrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of toggleChecker function", function () {
|
||||
it("It should enable toggle to check all documents", function () {
|
||||
vm.documentsCheckedCount = 2;
|
||||
vm.toggleChecker(true, obj);
|
||||
expect(vm.documentsCheckedCount).toBe(3);
|
||||
expect(vm.cartelements).toBeDefined();
|
||||
});
|
||||
it("It should disable toggle to check all documents", function () {
|
||||
vm.documentsCheckedCount = 2;
|
||||
vm.gridApi = {};
|
||||
vm.gridApi.grid = 1;
|
||||
vm.gridApi = gridrows;
|
||||
vm.toggleChecker(false, obj);
|
||||
expect(vm.documentsCheckedCount).toBe(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of removeAttachment function", function () {
|
||||
it("It should add an elements to the cart", function () {
|
||||
vm.cartelements = obj;
|
||||
vm.documentsCheckedCount = 3;
|
||||
vm.removeAttachment(obj[0]);
|
||||
expect(vm.cartelements.length).toBe(1);
|
||||
expect(vm.documentsCheckedCount).toBe(2);
|
||||
});
|
||||
it("It should remove all the elements from the cart", function () {
|
||||
vm.cartelements = {};
|
||||
vm.cartelements.length = 0;
|
||||
vm.removeAttachment(obj[0]);
|
||||
expect(vm.cartelements.length).toBe(0);
|
||||
expect(vm.documentsCheckedCount).not.toBeLessThan(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of toggleCheckerAll function", function () {
|
||||
it("It should select all the document inside grid simultaneously", function () {
|
||||
vm.documentGridOptions.data = obj;
|
||||
vm.documentsCheckedCount = 3;
|
||||
vm.toggleCheckerAll(true);
|
||||
expect(vm.cartelements.length).toBeDefined();
|
||||
expect(vm.documentsCheckedCount).toBe(1);
|
||||
});
|
||||
it("It should deselect the documents inside grid ", function () {
|
||||
vm.documentGridOptions.data = obj;
|
||||
vm.documentsCheckedCount = 3;
|
||||
vm.toggleCheckerAll(false);
|
||||
expect(vm.cartelements.length).toBe(0);
|
||||
expect(vm.documentsCheckedCount).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showupward function", function () {
|
||||
it("It should display upward dropdown box", function () {
|
||||
vm.showupward(event);
|
||||
expect(vm.searchdrop).toBe(true);
|
||||
expect(vm.downwarddrop).toBe(false);
|
||||
expect(vm.upwarddrop).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showdownward function", function () {
|
||||
it("It should display downward dropdown box", function () {
|
||||
vm.showdownward(event);
|
||||
expect(vm.searchdrop).toBe(false);
|
||||
expect(vm.upwarddrop).toBe(false);
|
||||
expect(vm.downwarddrop).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showsortby function", function () {
|
||||
it("It should show sortby dropdown box", function () {
|
||||
vm.sortbydropvisible = false;
|
||||
vm.showsortby(event);
|
||||
expect(vm.sortbydrop).toBe(true);
|
||||
expect(vm.sortbydropvisible).toBe(true);
|
||||
});
|
||||
it("It should hide show sortby dropdown box", function () {
|
||||
vm.sortbydropvisible = true;
|
||||
vm.showsortby(event);
|
||||
expect(vm.sortbydrop).toBe(false);
|
||||
expect(vm.sortbydropvisible).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of pagination function", function () {
|
||||
it("It should disable pagination on the page", function () {
|
||||
vm.totalrecords = 0;
|
||||
vm.pagination();
|
||||
expect(vm.fromtopage).toBe("1 - 0");
|
||||
expect(vm.displaypagination).toBe(false);
|
||||
});
|
||||
it("It should display pagination on the page", function () {
|
||||
vm.totalrecords = 16;
|
||||
vm.pagination();
|
||||
expect(vm.fromtopage).toBe("1 - 16");
|
||||
expect(vm.displaypagination).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,179 @@
|
|||
|
||||
/// <disable> JS2074,JS3058,JS2085,JS3056,JS3116,JS3054,JS2064,JS2043,JS2073,JS2038 </disable>
|
||||
// Test suite
|
||||
|
||||
describe('DocumentDashboard Controller service call test suite', function () {
|
||||
var mockDocumentapi = function (documentDashBoardResource) {
|
||||
getData(documentDashBoardResource, mockDocumentDashBoardResource);
|
||||
};
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("documentDashBoardResource", ["$resource", "auth", mockDocumentDashBoardResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockDocumentapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $injector, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("DocumentDashBoardController as vm", { $scope: $scope, $state: $state, $stateParams: $stateParams, documentDashBoardResource: mockDocumentDashBoardResource, api: mockDocumentapi, $rootScope: rootScope, $http: $http, $location: $location });
|
||||
}));
|
||||
|
||||
describe("Verification of getDocumentCounts function", function () {
|
||||
it("Documents count should be greater than or equal to 0", function () {
|
||||
vm.getDocumentCounts();
|
||||
expect(vm.allDocumentCount).not.toBeLessThan(0);
|
||||
expect(vm.myDocumentCount).not.toBeLessThan(0);
|
||||
expect(vm.pinDocumentCount).not.toBeLessThan(0);
|
||||
expect(vm.totalrecords).not.toBeLessThan(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of getPinnedDocuments function", function () {
|
||||
it("It should return the all pinned documents", function () {
|
||||
vm.getPinnedDocuments();
|
||||
expect(vm.documentGridOptions.data).not.toBe(null);
|
||||
expect(vm.documentGridOptions.data.length).toBeGreaterThan(1);
|
||||
expect(vm.totalrecords).toBe(0);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of getMyDocuments function", function () {
|
||||
it("It should return the My documents", function () {
|
||||
vm.getMyDocuments();
|
||||
expect(vm.lazyloaderdashboard).toBe(false);
|
||||
expect(vm.displaypagination).toBe(false);
|
||||
expect(vm.divuigrid).toBe(false);
|
||||
expect(vm.nodata).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of getDocuments function", function () {
|
||||
it("It should get the Documents", function () {
|
||||
vm.getDocuments();
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
expect(vm.displaypagination).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.pinDocumentCount).toBeGreaterThan(0);
|
||||
expect(vm.documentGridOptions.data.length).toBeGreaterThan(1);
|
||||
expect(vm.totalrecords).toBe(0);
|
||||
expect(vm.pinDocumentCount).toBeGreaterThan(0);
|
||||
expect(vm.nodata).toBe(false);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showclientdrop function", function () {
|
||||
it("It should show clientdrop", function () {
|
||||
vm.clientdropvisible = false;
|
||||
vm.clients = undefined;
|
||||
vm.showclientdrop(event);
|
||||
expect(vm.clients).toBeDefined();
|
||||
expect(vm.clientdrop).toBe(true);
|
||||
expect(vm.clientdropvisible).toBe(true);
|
||||
expect(vm.lazyloaderdocumentclient).toBe(true);
|
||||
|
||||
});
|
||||
|
||||
it("It should not show clientdrop", function () {
|
||||
vm.clientdropvisible = true;
|
||||
vm.showclientdrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.lazyloaderdocumentclient).toBe(true);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe("Verification of FilterByType function", function () {
|
||||
it("It should show FilterByType", function () {
|
||||
vm.FilterByType();
|
||||
expect(vm.totalrecords).toBeGreaterThan(0);
|
||||
expect(vm.documentGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of sortyby function", function () {
|
||||
it("It should show sortyby", function () {
|
||||
var sortexp = "AlphabeticalUp";
|
||||
vm.sortyby(sortexp, "Searchkeyword");
|
||||
expect(vm.totalrecords).toBeGreaterThan(0);
|
||||
expect(vm.documentGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of next function", function () {
|
||||
it("It should show next", function () {
|
||||
vm.last = 5;
|
||||
vm.totalrecords = 30;
|
||||
vm.next();
|
||||
expect(vm.first).toBeGreaterThan(0);
|
||||
expect(vm.last).toBeGreaterThan(0);
|
||||
expect(vm.total).toBeGreaterThan(0);
|
||||
expect(vm.pagenumber).toBeGreaterThan(0);
|
||||
expect(vm.fromtopage).toBe(vm.first + " - " + vm.totalrecords);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
expect(vm.documentGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of prev function", function () {
|
||||
it("It should show prev", function () {
|
||||
vm.last = 50;
|
||||
vm.first = 50;
|
||||
vm.prev();
|
||||
expect(vm.first).toBeGreaterThan(0);
|
||||
expect(vm.last).toBeGreaterThan(0);
|
||||
expect(vm.pagenumber).toBe(0);
|
||||
expect(vm.documentGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.fromtopage).toBe(vm.first + " - " + vm.last);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
//// describe('Verification of downloadEmailAsAttachment function', function () {
|
||||
//// it('It should download email with attachment', function () {
|
||||
//// vm.cartelements = [{ documentClientUrl: "https://lcadms.sharepoint.com/sites/skype", selected: true, documentName: "Skype Litigation.txt", documentUrl: "https://lcadms.sharepoint.com/sites/skype/9694be04f87b22e8d238d69df9e29ff2/Skype Litigation.txt" }];
|
||||
//// vm.downloadEmailAsAttachment(true);
|
||||
//// });
|
||||
//// });
|
||||
|
||||
describe('Verification of pinorunpin function', function () {
|
||||
it('It should be added in pinned list and removed from pinned list', function () {
|
||||
var iCount = vm.pinDocumentCount;
|
||||
event.currentTarget.src = "../images/pin-666.png";
|
||||
vm.pinorunpin(event, oTestConfiguration.oDocumentObject);
|
||||
iCount = iCount + 1;
|
||||
expect(iCount).toBe(vm.pinDocumentCount);
|
||||
event.currentTarget.src = "../images/unpin-666.png";
|
||||
iCount = iCount - 1;
|
||||
vm.documentGridOptions.data = [];
|
||||
vm.documentGridOptions.data[0] = oTestConfiguration.oDocumentObject;
|
||||
vm.pinorunpin(event, oTestConfiguration.oDocumentObject);
|
||||
expect(iCount).toBe(vm.pinDocumentCount);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,25 @@
|
|||
//Test suite
|
||||
describe('Home Controller test suite', function () {
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("homeResource", ['$resource', 'auth', mockhomeResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("api", ['matterResource', 'documentResource', 'documentDashBoardResource', 'matterDashBoardResource', 'homeResource', mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module('ui.router'));
|
||||
beforeEach(module('ui.bootstrap'));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
dm = $controller('homeController as dm', { $scope: $scope, $state: $state, $stateParams: $stateParams, homeResource: mockhomeResource, api: mockapi, $rootScope: rootScope, $location: $location, adalAuthenticationService: adalService });
|
||||
}));
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
//Test suite
|
||||
describe('Home Controller service call test suite', function () {
|
||||
|
||||
var mockapi = function (homeResource) {
|
||||
getData(homeResource, mockHomeResource);
|
||||
|
||||
};
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("homeResource", ['$resource', 'auth', mockHomeResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("api", ['matterResource', 'documentResource', 'documentDashBoardResource', 'matterDashBoardResource', 'homeResource', mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module('ui.router'));
|
||||
beforeEach(module('ui.bootstrap'));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller('homeController as vm', { $scope: $scope, $state: $state, $stateParams: $stateParams, homeResource: mockHomeResource, api: mockapi, $rootScope: rootScope, $location: $location, adalAuthenticationService: adalService });
|
||||
}));
|
||||
|
||||
describe('Verification of getUserProfilePicture function', function () {
|
||||
it('It should get User ProfilePicture', function () {
|
||||
vm.getUserProfilePicture();
|
||||
expect(vm.smallPictureUrl).toBe("https://lcadms-my.sharepoint.com:443/User%20Photos/Profile%20Pictures/maquser_lcadms_onmicrosoft_com_SThumb.jpg");
|
||||
expect(vm.largePictureUrl).toBe("https://lcadms-my.sharepoint.com:443/User%20Photos/Profile%20Pictures/maquser_lcadms_onmicrosoft_com_MThumb.jpg");
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of help function', function () {
|
||||
it('It should set help', function () {
|
||||
vm.help();
|
||||
expect(vm.helpData.length).toBeGreaterThan(0);
|
||||
expect(vm.helpData).toBeDefined();
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('Verification of signOut function', function () {
|
||||
it('It should signOut', function () {
|
||||
vm.signOut();
|
||||
expect(vm.status).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
/// <disable>JS2074, JS3058</disable>
|
||||
// Test suite
|
||||
describe("Matters Controller test suite", function () {
|
||||
"use strict";
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("matterResource", ["$resource", "auth", mockMatterResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("mattersController as vm", { $scope: $scope, $state: $state, $stateParams: $stateParams, matterResource: mockMatterResource, api: mockapi, $rootScope: rootScope, $http: $http, $location: $location, $q: $q, $animate: $animate });
|
||||
}));
|
||||
|
||||
|
||||
describe("Verification of closeNotificationDialog function", function () {
|
||||
it("It should close the notification dialog box", function () {
|
||||
vm.closeNotificationDialog();
|
||||
expect(vm.IsDupliacteDocument).toBe(false);
|
||||
expect(vm.IsNonIdenticalContent).toBe(false);
|
||||
expect(vm.showLoading).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of attachmentTokenCallbackEmailClient function", function () {
|
||||
it("It should attach the token along with EmailClient-Need to call createMailPopup", function () {
|
||||
var asyncResult = { status: "succeeded", value: "testtoken" };
|
||||
vm.createMailPopup = function () { return 1; };
|
||||
vm.attachmentTokenCallbackEmailClient(asyncResult, obj);
|
||||
expect(vm.attachmentToken).toBe("testtoken");
|
||||
expect(vm.mailUpLoadSuccess).toBe(false);
|
||||
expect(vm.mailUploadedFolder).toBe(null);
|
||||
expect(vm.loadingAttachments).toBe(false);
|
||||
expect(vm.mailUploadedFile).toBe(null);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of getIconSource function", function () {
|
||||
it("It should return the source of icon", function () {
|
||||
var source = vm.getIconSource("sourceicon");
|
||||
expect(source).toBe(oTestConfiguration.sSourceIconURL);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of closealldrops function", function () {
|
||||
it("It should close all the dropdowns", function () {
|
||||
vm.closealldrops();
|
||||
expect(vm.mattersdrop).toBe(false);
|
||||
expect(vm.mattersdropinner).toBe(true);
|
||||
expect(vm.matterheader).toBe(true);
|
||||
expect(vm.matterdateheader).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of checkEmptyorWhitespace function", function () {
|
||||
it("It should check empty or whitespace in the input", function () {
|
||||
var data = vm.checkEmptyorWhitespace("test");
|
||||
expect(data).toBe("test");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of hideBreadCrumb function", function () {
|
||||
it("It should hide the bread crumb", function () {
|
||||
vm.hideBreadCrumb();
|
||||
expect(rootScope.breadcrumb).toBe(true);
|
||||
expect(rootScope.foldercontent).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of disabled function", function () {
|
||||
it("It should set the status based on current date.", function () {
|
||||
var oDate = new Date();
|
||||
var status = vm.disabled(oDate, "day");
|
||||
expect(status).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showSortExp function", function () {
|
||||
it("It should sort the elements in ascending order", function () {
|
||||
vm.sortexp = "test";
|
||||
vm.sortby = "asc";
|
||||
$scope.$apply = function () { };
|
||||
vm.showSortExp();
|
||||
expect(angular.element()).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showmatterdrop function", function () {
|
||||
it("It should show matter dropdown if matter is pinned", function () {
|
||||
vm.mattersdropinner = true;
|
||||
vm.showmatterdrop(event);
|
||||
expect(vm.mattersdrop).toBe(true);
|
||||
expect(vm.mattersdropinner).toBe(false);
|
||||
});
|
||||
|
||||
it("It should hide matter dropdown if matter is not pinned", function () {
|
||||
vm.mattersdropinner = false;
|
||||
vm.showmatterdrop(event);
|
||||
expect(vm.mattersdrop).toBe(false);
|
||||
expect(vm.mattersdropinner).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of overwriteConfiguration function", function () {
|
||||
it("It should return overwrite configuration for the file", function () {
|
||||
var bAppendEnabled = vm.overwriteConfiguration(oTestConfiguration.sOverwriteConfigFileName);
|
||||
expect(bAppendEnabled).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of contentCheckNotification function", function () {
|
||||
it("It should set upload file configurations to perform content check", function () {
|
||||
var file = { contentCheck: "", saveLatestVersion: "", cancel: "", append: true };
|
||||
vm.contentCheckNotification(file, true);
|
||||
expect(file.contentCheck).toBe("contentCheck");
|
||||
expect(file.saveLatestVersion).toBe("False");
|
||||
expect(file.cancel).toBe("False");
|
||||
expect(file.append).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of abortContentCheck function", function () {
|
||||
it("It should set upload file configuration to abort content check", function () {
|
||||
vm.file = {};
|
||||
vm.file.value = "This";
|
||||
vm.abortContentCheck(vm.file, false);
|
||||
expect(vm.file.contentCheck).toBe(null);
|
||||
expect(vm.file.saveLatestVersion).toBe("True");
|
||||
expect(vm.file.value).toBe("This<br/><div>Content check has been aborted.</div>");
|
||||
expect(vm.file.cancel).toBe("True");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of closeSuccessBanner function", function () {
|
||||
it("It should close the success banner", function () {
|
||||
vm.closeSuccessBanner();
|
||||
expect(vm.oUploadGlobal.successBanner).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
//Test suite
|
||||
describe('MattersController Controller test suite', function () {
|
||||
|
||||
var mockapi = function (matterResource) {
|
||||
getData(matterResource, mockMatterResource);
|
||||
|
||||
};
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("matterResource", ['$resource', 'auth', mockMatterResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("api", ['matterResource', 'documentResource', 'documentDashBoardResource', 'matterDashBoardResource', 'homeResource', mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module('ui.router'));
|
||||
beforeEach(module('ui.bootstrap'));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller('mattersController as vm', { $scope: $scope, $state: $state, $stateParams: $stateParams, matterResource: mockMatterResource, api: mockapi, $rootScope: rootScope, $http: $http, $location: $location, $q: $q, $animate: $animate });
|
||||
}));
|
||||
|
||||
//describe('Verification of SetMatters function', function () {
|
||||
// it('matter name should be added in dropdown', function () {
|
||||
// vm.SetMatters(1, "All Matters");
|
||||
// expect(vm.divuigrid).toBe(false);
|
||||
// expect(vm.responseNull).toBe(false);
|
||||
// expect(vm.nodata).toBe(false);
|
||||
// expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
// expect(vm.gridOptions.data).not.toBe(null);
|
||||
// });
|
||||
//});
|
||||
|
||||
//describe('Verification of GetMatters function', function () {
|
||||
// it('matter name should be added in dropdown', function () {
|
||||
// vm.GetMatters(3);
|
||||
// expect(vm.divuigrid).toBe(true);
|
||||
// expect(vm.nodata).toBe(false);
|
||||
// expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
// expect(vm.gridOptions.data).not.toBe(null);
|
||||
// });
|
||||
//});
|
||||
|
||||
//describe('Verification of mattersearch function', function () {
|
||||
// it('It should search related matter', function () {
|
||||
// var term = "MCMatterName:Test*(MCMatterName:* OR MCMatterID:* OR MCClientName:*)";
|
||||
// var property = "MCMatterName";
|
||||
// vm.mattersearch(term, property, false);
|
||||
// expect(vm.divuigrid).toBe(true);
|
||||
// expect(vm.nodata).toBe(false);
|
||||
// expect(vm.lazyloader).toBe(true);
|
||||
// expect(vm.filternodata).toBe(false);
|
||||
// expect(vm.details.length).toBeGreaterThan(0);
|
||||
// expect(vm.details).not.toBe(null);
|
||||
|
||||
// });
|
||||
|
||||
//});
|
||||
|
||||
//describe('Verification of FilterModifiedDate function', function () {
|
||||
// it('Data should be filtered based on modified date', function () {
|
||||
// vm.modstartdate = new Date("08/01/2016");
|
||||
// vm.modenddate = new Date("08/10/2016");
|
||||
// vm.FilterModifiedDate("Modified Date");
|
||||
// expect(vm.moddatefilter).toBe(true);
|
||||
// });
|
||||
|
||||
//});
|
||||
|
||||
describe('Verification of PinMatter function', function () {
|
||||
it('It should be added in pinned list', function () {
|
||||
var currentRowData = {
|
||||
entity: oTestConfiguration.oMatterObject
|
||||
};
|
||||
vm.PinMatter(currentRowData);
|
||||
expect(vm.divuigrid).toBe(false);
|
||||
expect(vm.responseNull).toBe(false);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).not.toBeLessThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of UnpinMatter function', function () {
|
||||
it('It should be removed from pinned list', function () {
|
||||
var pinObject = {
|
||||
entity: oTestConfiguration.oMatterObject
|
||||
};
|
||||
vm.UnpinMatter(pinObject);;
|
||||
expect(vm.divuigrid).toBe(false);
|
||||
expect(vm.responseNull).toBe(false);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).not.toBeLessThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of sortChanged function', function () {
|
||||
it('documents should be sort based on matter name', function () {
|
||||
var sortColumns = [{ "field": "matterName", "name": "matterName", "sort": "asc" }];
|
||||
vm.gridOptions.columnDefs[0] = { "field": "matterName", "displayName": "Matter", "enableHiding": false, "width": "275", "cellTemplate": "../app/matter/MatterTemplates/MatterCellTemplate.html", "headerCellTemplate": "../app/matter/MatterTemplates/MatterHeaderTemplate.html", "name": "matterName", "type": "string" };
|
||||
$scope.sortChanged(null, sortColumns);
|
||||
expect(vm.MatterNameSort).toBe("desc");
|
||||
expect(vm.sortby).toBe("asc");
|
||||
expect(vm.sortexp).toBe("matterName");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('Verification of typeheadselect function', function () {
|
||||
it('selected document result should be displayed', function () {
|
||||
var selected = "Default Matter (11111)";
|
||||
vm.typeheadselect(null, selected);
|
||||
expect(selected).toContain(vm.gridOptions.data[0].matterName);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('Verification of watchFunc function', function () {
|
||||
it('It should watchFunc', function () {
|
||||
vm.responseNull = false;
|
||||
vm.watchFunc();
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
expect(vm.pagenumber).toBeGreaterThan(0);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of getFolderHierarchy function', function () {
|
||||
it('It should show getFolderHierarchy', function () {
|
||||
vm.getFolderHierarchy("Default Matter", "https://lcadms.sharepoint.com/sites/subsiteclient", "6cbca4ab447c87302d3a1f0e3c32985a");
|
||||
expect(vm.oUploadGlobal.bAllowContentCheck).toBe(true);
|
||||
expect(vm.foldersList.length).toBeGreaterThan(0);
|
||||
expect(vm.showSelectedFolderTree).not.toBe(null);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of search function', function () {
|
||||
it('It should search related matter', function () {
|
||||
vm.selected = "Test Matter";
|
||||
vm.search();
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.gridOptions.data).not.toBe(null);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of FilterByType function', function () {
|
||||
it('It should show FilterByType', function () {
|
||||
vm.FilterByType();
|
||||
expect(vm.gridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of Openuploadmodal function', function () {
|
||||
it('It should show Openuploadmodal', function () {
|
||||
vm.Openuploadmodal("Default Matter", "https://lcadms.sharepoint.com/sites/subsiteclient", "6cbca4ab447c87302d3a1f0e3c32985a");
|
||||
expect(vm.oUploadGlobal.successBanner).toBe(false);
|
||||
expect(vm.isLoadingFromDesktopStarted).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of localOverWriteDocument function', function () {
|
||||
it('It should show localOverWriteDocument', function () {
|
||||
vm.ducplicateSourceFile = {
|
||||
pop: function ()
|
||||
{ return true; },
|
||||
filter: function () {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
vm.oUploadGlobal = {
|
||||
"arrFiles": {
|
||||
pop: function ()
|
||||
{ return obj; }
|
||||
}
|
||||
};
|
||||
vm.ducplicateSourceFile.length = 1;
|
||||
var duplicateFile = { "cancel": null, "fileType": "remotefile" };
|
||||
vm.localOverWriteDocument(duplicateFile, "ignore");
|
||||
expect(vm.files).toBeDefined();
|
||||
});
|
||||
|
||||
it('It should show localOverWriteDocument', function () {
|
||||
vm.ducplicateSourceFile = {
|
||||
pop: function ()
|
||||
{ return true; },
|
||||
filter: function () {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
var duplicateFile = { "cancel": null, "fileType": "" };
|
||||
vm.localOverWriteDocument(duplicateFile, "overwrite");
|
||||
expect(vm.ducplicateSourceFile).toBe(true);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
describe('Verification of showSelectedFolderTree function', function () {
|
||||
it('It should show showSelectedFolderTree', function () {
|
||||
var folder = {
|
||||
"parentURL": "https://lcadms.sharepoint.com/sites/subsiteclient",
|
||||
"active": true,
|
||||
"children": { "child": { "active": true } }
|
||||
};
|
||||
vm.showSelectedFolderTree(folder);
|
||||
expect(vm.showSelectedFolderTree).not.toThrow(Error);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of getContentCheckConfigurations function', function () {
|
||||
it('It should show getContentCheckConfigurations', function () {
|
||||
|
||||
vm.getContentCheckConfigurations("https://lcadms.sharepoint.com/sites/subsiteclient");
|
||||
expect(vm.oUploadGlobal.bAllowContentCheck).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,183 @@
|
|||
/// <disable>JS2074, JS3058</disable>
|
||||
// Test suite
|
||||
describe("MatterDashBoard Controller test suite", function () {
|
||||
"use strict";
|
||||
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("matterDashBoardResource", ["$resource", "auth", mockMatterDashBoardResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("MatterDashBoardController as vm", { $scope: $scope, $state: $state, $stateParams: $stateParams, matterDashBoardResource: mockMatterDashBoardResource, api: mockapi, $rootScope: rootScope, $http: $http, $location: $location, $q: $q });
|
||||
}));
|
||||
|
||||
describe("Verification of closealldrops function", function () {
|
||||
it("It should close all dropdowns on click of the page", function () {
|
||||
vm.closealldrops();
|
||||
expect(vm.searchdrop).toBe(false);
|
||||
expect(vm.downwarddrop).toBe(true);
|
||||
expect(vm.upwarddrop).toBe(false);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
expect(vm.sortbydrop).toBe(false);
|
||||
expect(vm.sortbydropvisible).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of hideinnerdrop function", function () {
|
||||
it("It should hide all inner dropdownns", function () {
|
||||
vm.hideinnerdrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of filterSearchOK function", function () {
|
||||
it("It should return selected client", function () {
|
||||
vm.selectedClients = "";
|
||||
vm.clients = clientobj;
|
||||
vm.filterSearchOK("client");
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.selectedClientsForCancel).toBe(oTestConfiguration.sSelectedClient);
|
||||
expect(vm.selectedClients).toBe(oTestConfiguration.sSelectedClient);
|
||||
});
|
||||
|
||||
it("It should return selected practice group", function () {
|
||||
vm.selectedPGs = "";
|
||||
vm.practiceGroups = practicegroup;
|
||||
vm.filterSearchOK("pg");
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.selectedPGsForCancel).toBe(oTestConfiguration.sSelectedPracticeGroup);
|
||||
expect(vm.selectedPGs).toBe(oTestConfiguration.sSelectedPracticeGroup);
|
||||
|
||||
});
|
||||
it("It should return selected AOL", function () {
|
||||
vm.selectedAOLs = "";
|
||||
vm.aolTerms = practicegroup;
|
||||
vm.filterSearchOK("aol");
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.selectedAOLsForCancel).toBe(oTestConfiguration.sSelectedAreaOfLaw);
|
||||
expect(vm.selectedAOLs).toBe(oTestConfiguration.sSelectedAreaOfLaw);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of filterSearchCancel function", function () {
|
||||
it("It should trigger when the user clicks on 'Cancel' button in the filter panel", function () {
|
||||
vm.filterSearchCancel("client");
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe("Verification of showupward function", function () {
|
||||
it("It should show upward dropdown box", function () {
|
||||
vm.showupward(event);
|
||||
expect(vm.searchdrop).toBe(true);
|
||||
expect(vm.downwarddrop).toBe(false);
|
||||
expect(vm.upwarddrop).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showdownward function", function () {
|
||||
it("It should show downward dropdown box", function () {
|
||||
vm.showdownward(event);
|
||||
expect(vm.searchdrop).toBe(false);
|
||||
expect(vm.upwarddrop).toBe(false);
|
||||
expect(vm.downwarddrop).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of showsortby function", function () {
|
||||
it("It should show sortby box", function () {
|
||||
vm.sortbydropvisible = false;
|
||||
vm.showsortby(event);
|
||||
expect(vm.sortbydrop).toBe(true);
|
||||
expect(vm.sortbydropvisible).toBe(true);
|
||||
});
|
||||
it("It should hide sortby box", function () {
|
||||
vm.sortbydropvisible = true;
|
||||
vm.showsortby(event);
|
||||
expect(vm.sortbydrop).toBe(false);
|
||||
expect(vm.sortbydropvisible).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of pagination function", function () {
|
||||
it("It should disable pagination on the page", function () {
|
||||
vm.totalrecords = 0;
|
||||
vm.pagination();
|
||||
expect(vm.fromtopage).toBe("1 - 0");
|
||||
expect(vm.displaypagination).toBe(false);
|
||||
});
|
||||
it("It should enable pagination on the page", function () {
|
||||
vm.totalrecords = 16;
|
||||
vm.pagination();
|
||||
expect(vm.fromtopage).toBe("1 - 16");
|
||||
expect(vm.displaypagination).toBe(true);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of overwriteConfiguration function", function () {
|
||||
it("It should return overwrite configuration for the file", function () {
|
||||
var bAppendEnabled = vm.overwriteConfiguration("TestEmail.msg");
|
||||
expect(bAppendEnabled).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of contentCheckNotification function", function () {
|
||||
it("It should set upload file configurations to perform content check", function () {
|
||||
vm.file = {};
|
||||
vm.contentCheckNotification(vm.file, true);
|
||||
expect(vm.file.contentCheck).toBe("contentCheck");
|
||||
expect(vm.file.saveLatestVersion).toBe("False");
|
||||
expect(vm.file.cancel).toBe("False");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of abortContentCheck function", function () {
|
||||
it("It should set upload file configuration to abort content check", function () {
|
||||
vm.file = {};
|
||||
vm.file.value = "This";
|
||||
vm.abortContentCheck(vm.file, false);
|
||||
expect(vm.file.contentCheck).toBe(null);
|
||||
expect(vm.file.saveLatestVersion).toBe("True");
|
||||
expect(vm.file.value).toBe("This<br/><div>Content check has been aborted.</div>");
|
||||
expect(vm.file.cancel).toBe("True");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verification of closeSuccessBanner function", function () {
|
||||
it("It should close success banner", function () {
|
||||
vm.closeSuccessBanner();
|
||||
expect(vm.oUploadGlobal.successBanner).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,352 @@
|
|||
//Test suite
|
||||
describe('MatterDashBoard Controller test suite', function () {
|
||||
|
||||
var mockapi = function (matterDashBoardResource) {
|
||||
getData(matterDashBoardResource, mockMatterDashBoardResource);
|
||||
};
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("matterDashBoardResource", ['$resource', 'auth', mockMatterDashBoardResource]);
|
||||
}));
|
||||
|
||||
beforeEach(module('matterMain'));
|
||||
beforeEach(module('matterMain', function ($provide) {
|
||||
$provide.factory("api", ['matterResource', 'documentResource', 'documentDashBoardResource', 'matterDashBoardResource', 'homeResource', mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module('ui.router'));
|
||||
beforeEach(module('ui.bootstrap'));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller('MatterDashBoardController as vm', { $scope: $scope, $state: $state, $stateParams: $stateParams, matterDashBoardResource: mockMatterDashBoardResource, api: mockapi, $rootScope: rootScope, $http: $http, $location: $location, $q: $q });
|
||||
}));
|
||||
|
||||
|
||||
describe('Verification of getMatterCounts function', function () {
|
||||
it('It should show MatterCounts', function () {
|
||||
vm.getMatterCounts();
|
||||
expect(vm.allMatterCount).toBeGreaterThan(0);
|
||||
expect(vm.myMatterCount).toBeGreaterThan(0);
|
||||
expect(vm.pinMatterCount).toBeGreaterThan(0);
|
||||
expect(vm.totalrecords).toBeGreaterThan(0);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of getMatterPinned function', function () {
|
||||
it('It should get MatterPinned', function () {
|
||||
vm.getMatterPinned();
|
||||
expect(vm.pinnedResponse).not.toBe(null);
|
||||
expect(vm.Pinnedobj.length).toBeDefined();
|
||||
expect(vm.matterGridOptions.data).toBeDefined();
|
||||
expect(vm.pinMatterCount).toBeDefined();
|
||||
expect(vm.totalrecords).toBeDefined();
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
expect(vm.displaypagination).toBe(true);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
//describe('Verification of searchMatters function', function () {
|
||||
// it('It should get searchMatters', function () {
|
||||
// vm.searchMatters("test");
|
||||
// expect(vm.pagenumber).toBe(1);
|
||||
|
||||
// });
|
||||
|
||||
//});
|
||||
|
||||
|
||||
describe('Verification of myMatters function', function () {
|
||||
it('It should get myMatters', function () {
|
||||
vm.searchText = "test";
|
||||
vm.myMatterCount = 5;
|
||||
vm.myMatters();
|
||||
expect(vm.matterGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.totalrecords).toBeGreaterThan(1);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
describe('Verification of showClientDrop function', function () {
|
||||
it('It should show clientdrop', function () {
|
||||
vm.clientdropvisible = false;
|
||||
vm.clients = undefined;
|
||||
vm.showClientDrop(event);
|
||||
expect(vm.clients).toBeDefined();
|
||||
expect(vm.clientdrop).toBe(true);
|
||||
expect(vm.clientdropvisible).toBe(true);
|
||||
expect(vm.lazyloaderclient).toBe(true);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
|
||||
});
|
||||
|
||||
it('It should not show clientdrop', function () {
|
||||
vm.clientdropvisible = true;
|
||||
vm.showClientDrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.lazyloaderclient).toBe(true);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
describe('Verification of myMatters function', function () {
|
||||
it('It should get myMatters', function () {
|
||||
vm.searchText = "test";
|
||||
vm.myMatterCount = 5;
|
||||
vm.myMatters();
|
||||
expect(vm.matterGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.totalrecords).toBeGreaterThan(1);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
describe('Verification of FilterByType function', function () {
|
||||
it('It should show FilterByType', function () {
|
||||
vm.FilterByType();
|
||||
expect(vm.totalrecords).toBeGreaterThan(0);
|
||||
expect(vm.matterGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of sortyby function', function () {
|
||||
it('It should show sortyby', function () {
|
||||
var sortexp = "AlphabeticalUp";
|
||||
vm.sortyby(sortexp, "Searchkeyword");
|
||||
expect(vm.nodata).toBe(true);
|
||||
expect(vm.divuigrid).toBe(false);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of next function', function () {
|
||||
it('It should show next', function () {
|
||||
vm.last = 5;
|
||||
vm.totalrecords = 30;
|
||||
|
||||
vm.next();
|
||||
expect(vm.first).toBeGreaterThan(0);
|
||||
expect(vm.last).toBeGreaterThan(0);
|
||||
expect(vm.total).toBeGreaterThan(0);
|
||||
expect(vm.pagenumber).toBeGreaterThan(0);
|
||||
expect(vm.fromtopage).toBe(vm.first + " - " + vm.totalrecords);
|
||||
expect(vm.displaypagination).toBe(true);
|
||||
expect(vm.matterGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of prev function', function () {
|
||||
it('It should show prev', function () {
|
||||
vm.last = 50;
|
||||
vm.first = 50;
|
||||
vm.prev();
|
||||
expect(vm.first).toBeGreaterThan(0);
|
||||
expect(vm.last).toBeGreaterThan(0);
|
||||
expect(vm.pagenumber).toBe(0);
|
||||
expect(vm.matterGridOptions.data.length).toBeGreaterThan(0);
|
||||
expect(vm.fromtopage).toBe(vm.first + " - " + vm.last);
|
||||
expect(vm.nodata).toBe(false);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('verification of showPracticegroupDrop function', function () {
|
||||
it('It should show PracticegroupDrop', function () {
|
||||
vm.pgdropvisible = false;
|
||||
vm.practiceGroups = undefined;
|
||||
vm.aolTerms = undefined;
|
||||
|
||||
vm.showPracticegroupDrop(event);
|
||||
expect(vm.lazyloaderpg).toBe(true);
|
||||
expect(vm.pgdrop).toBe(true);
|
||||
expect(vm.pgdropvisible).toBe(true);
|
||||
|
||||
});
|
||||
|
||||
it('It should not show PracticegroupDrop', function () {
|
||||
vm.pgdropvisible = false;
|
||||
vm.practiceGroups = "data";
|
||||
vm.aolTerms = "test";
|
||||
|
||||
vm.showPracticegroupDrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.pgdrop).toBe(true);
|
||||
expect(vm.pgdropvisible).toBe(true);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
|
||||
});
|
||||
|
||||
it('It should not showPracticegroupDrop', function () {
|
||||
vm.clientdropvisible = true;
|
||||
vm.showClientDrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.lazyloaderpg).toBe(true);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
describe('Verification of getFolderHierarchy function', function () {
|
||||
it('It should show getFolderHierarchy', function () {
|
||||
|
||||
vm.getFolderHierarchy("Default Matter", "https://lcadms.sharepoint.com/sites/subsiteclient", "6cbca4ab447c87302d3a1f0e3c32985a");
|
||||
expect(vm.oUploadGlobal.bAllowContentCheck).toBe(true);
|
||||
expect(vm.foldersList.length).toBeGreaterThan(0);
|
||||
expect(vm.showSelectedFolderTree).not.toBe(null);
|
||||
expect(vm.lazyloader).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of Openuploadmodal function', function () {
|
||||
it('It should show Openuploadmodal', function () {
|
||||
|
||||
vm.Openuploadmodal("Default Matter", "https://lcadms.sharepoint.com/sites/subsiteclient", "6cbca4ab447c87302d3a1f0e3c32985a");
|
||||
expect(vm.oUploadGlobal.successBanner).toBe(false);
|
||||
expect(vm.isLoadingFromDesktopStarted).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of showclients function', function () {
|
||||
it('It should show showclients', function () {
|
||||
vm.client = undefined;
|
||||
vm.showclients(event);
|
||||
expect(vm.clients).toBeDefined();
|
||||
expect(vm.clientdrop).toBe(true);
|
||||
expect(vm.clientdropvisible).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of getContentCheckConfigurations function', function () {
|
||||
it('It should show getContentCheckConfigurations', function () {
|
||||
|
||||
vm.getContentCheckConfigurations("https://lcadms.sharepoint.com/sites/subsiteclient");
|
||||
expect(vm.oUploadGlobal.bAllowContentCheck).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of showSelectedFolderTree function', function () {
|
||||
it('It should show showSelectedFolderTree', function () {
|
||||
var folder = {
|
||||
"parentURL": "https://lcadms.sharepoint.com/sites/subsiteclient",
|
||||
"active": true,
|
||||
"children": { "active": true }
|
||||
};
|
||||
vm.showSelectedFolderTree(folder);
|
||||
expect(vm.showSelectedFolderTree).not.toThrow(Error);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of localOverWriteDocument function', function () {
|
||||
it('It should show localOverWriteDocument', function () {
|
||||
vm.ducplicateSourceFile = {
|
||||
pop: function ()
|
||||
{ return true; }
|
||||
}
|
||||
vm.oUploadGlobal = {
|
||||
"arrFiles": {
|
||||
pop: function ()
|
||||
{ return obj; }
|
||||
}
|
||||
};
|
||||
vm.ducplicateSourceFile.length = 1;
|
||||
var duplicateFile = { "cancel": null };
|
||||
vm.localOverWriteDocument(duplicateFile, "ignore");
|
||||
expect(vm.files).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of search function', function () {
|
||||
it('It should show search', function () {
|
||||
vm.search("Test");
|
||||
expect(vm.Pinnedobj).toBeDefined();
|
||||
expect(vm.pinMatterCount).toBeGreaterThan(0);
|
||||
expect(vm.matterGridOptions.data).toBeDefined();
|
||||
expect(vm.totalrecords).toBe(0);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
expect(vm.divuigrid).toBe(true);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of showAreaofLawDrop function', function () {
|
||||
it('It should show showAreaofLawDrop', function () {
|
||||
vm.aoldropvisible = false;
|
||||
vm.practiceGroups = undefined;
|
||||
vm.aolTerms = undefined;
|
||||
vm.showAreaofLawDrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.lazyloaderaol).toBe(true);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
});
|
||||
|
||||
it('It should not show showAreaofLawDrop', function () {
|
||||
vm.clientdropvisible = true;
|
||||
vm.showClientDrop(event);
|
||||
expect(vm.clientdrop).toBe(false);
|
||||
expect(vm.clientdropvisible).toBe(false);
|
||||
expect(vm.lazyloaderaol).toBe(true);
|
||||
expect(vm.pgdrop).toBe(false);
|
||||
expect(vm.pgdropvisible).toBe(false);
|
||||
expect(vm.aoldrop).toBe(false);
|
||||
expect(vm.aoldropvisible).toBe(false);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
describe('Verification of pinorunpin function', function () {
|
||||
it('It should be added in pinned list and removed from pinned list', function () {
|
||||
|
||||
var count = vm.pinMatterCount;
|
||||
count = count + 1;
|
||||
event.currentTarget.src = "../images/pin-666.png";
|
||||
vm.pinorunpin(event, oTestConfiguration.oMatterObject);
|
||||
expect(count).toBeGreaterThan(0);
|
||||
expect(vm.lazyloaderdashboard).toBe(true);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
});
|
|
@ -0,0 +1,30 @@
|
|||
/// <disable>JS2074, JS3058</disable>
|
||||
// Test suite
|
||||
describe("Navigation Controller test suite", function () {
|
||||
|
||||
var mockapi = function (navigationResource, callback) {
|
||||
getData(navigationResource, mocknavigationResource);
|
||||
};
|
||||
|
||||
beforeEach(module("matterMain"));
|
||||
beforeEach(module("matterMain", function ($provide) {
|
||||
$provide.factory("api", ["matterResource", "documentResource", "documentDashBoardResource", "matterDashBoardResource", "homeResource", mockapi]);
|
||||
}));
|
||||
|
||||
beforeEach(module("ui.router"));
|
||||
beforeEach(module("ui.bootstrap"));
|
||||
|
||||
beforeEach(inject(function ($controller, $rootScope) {
|
||||
rootScope = $rootScope.$new();
|
||||
vm = $controller("navigationController as vm", { $scope: $scope, $state: $state, $stateParams: $stateParams, api: mockapi, $rootScope: rootScope });
|
||||
}));
|
||||
|
||||
describe("Verification of canCreateMatter function", function () {
|
||||
it("It should display the navigation content", function () {
|
||||
vm.canCreateMatter();
|
||||
expect(vm.canLoginUserCreateMatter).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
// Test suite
|
||||
describe("Upload Controller test suite", function () {
|
||||
"use strict";
|
||||
var upload = matter.upload.uploadManager;
|
||||
|
||||
describe("Verification of closeNotificationDialog function", function () {
|
||||
it("Should close notification dialog box", function () {
|
||||
////cm.closeNotificationDialog();
|
||||
////expect(cm.IsDupliacteDocument).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||
|
||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||
<!--
|
||||
In the example below, the "SetAttributes" transform will change the value of
|
||||
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||
finds an attribute "name" that has a value of "MyDB".
|
||||
|
||||
<connectionStrings>
|
||||
<add name="MyDB"
|
||||
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||
</connectionStrings>
|
||||
-->
|
||||
<system.web>
|
||||
<!--
|
||||
In the example below, the "Replace" transform will replace the entire
|
||||
<customErrors> section of your web.config file.
|
||||
Note that because there is only one customErrors section under the
|
||||
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||
|
||||
<customErrors defaultRedirect="GenericError.htm"
|
||||
mode="RemoteOnly" xdt:Transform="Replace">
|
||||
<error statusCode="500" redirect="InternalError.htm"/>
|
||||
</customErrors>
|
||||
-->
|
||||
</system.web>
|
||||
</configuration>
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||
|
||||
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||
<!--
|
||||
In the example below, the "SetAttributes" transform will change the value of
|
||||
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||
finds an attribute "name" that has a value of "MyDB".
|
||||
|
||||
<connectionStrings>
|
||||
<add name="MyDB"
|
||||
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||
</connectionStrings>
|
||||
-->
|
||||
<system.web>
|
||||
<compilation xdt:Transform="RemoveAttributes(debug)" />
|
||||
<!--
|
||||
In the example below, the "Replace" transform will replace the entire
|
||||
<customErrors> section of your web.config file.
|
||||
Note that because there is only one customErrors section under the
|
||||
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||
|
||||
<customErrors defaultRedirect="GenericError.htm"
|
||||
mode="RemoteOnly" xdt:Transform="Replace">
|
||||
<error statusCode="500" redirect="InternalError.htm"/>
|
||||
</customErrors>
|
||||
-->
|
||||
</system.web>
|
||||
</configuration>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
For more information on how to configure your ASP.NET application, please visit
|
||||
http://go.microsoft.com/fwlink/?LinkId=169433
|
||||
-->
|
||||
<configuration>
|
||||
<system.web>
|
||||
<compilation debug="true" targetFramework="4.5.2"/>
|
||||
<httpRuntime targetFramework="4.5.2"/>
|
||||
</system.web>
|
||||
<system.codedom>
|
||||
<compilers>
|
||||
<compiler language="c#;cs;csharp" extension=".cs"
|
||||
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
|
||||
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
|
||||
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
|
||||
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
|
||||
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
|
||||
</compilers>
|
||||
</system.codedom>
|
||||
</configuration>
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "asp.net",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"jasmine": "2.4.1",
|
||||
"bootstrap": "3.3.5",
|
||||
"jquery": "2.1.4",
|
||||
"jquery-validation": "1.14.0",
|
||||
"jquery-validation-unobtrusive": "3.2.4",
|
||||
"angularjs": "1.5.2",
|
||||
"angular-route": "1.5.2",
|
||||
"angular-resource": "1.5.2",
|
||||
"angular-sanitize": "1.5.2",
|
||||
"adal-angular": "1.0.11",
|
||||
"angular-ui-grid": "3.1.1",
|
||||
"angular-bootstrap": "1.3.2",
|
||||
"jasmine-core": "2.4.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"angular": "1.5.2"
|
||||
}
|
||||
}
|
Двоичные данные
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/js/Open Notebook.onetoc2
Normal file
Двоичные данные
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/js/Open Notebook.onetoc2
Normal file
Двоичный файл не отображается.
47
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/js/angulartics-azure.js
поставляемый
Normal file
47
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/js/angulartics-azure.js
поставляемый
Normal file
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* @license Angulartics v0.17.2
|
||||
* (c) 2013 Luis Farzati http://luisfarzati.github.io/angulartics
|
||||
* Microsoft Azure Application Insights plugin contributed by https://github.com/anthonychu
|
||||
* License: MIT
|
||||
*/
|
||||
(function (angular) {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @ngdoc overview
|
||||
* @name angulartics.azure
|
||||
* Enables analytics support for Microsoft Azure Application Insights (http://azure.microsoft.com/en-us/services/application-insights/)
|
||||
*/
|
||||
angular.module('angulartics.azure', ['angulartics'])
|
||||
.config(['$analyticsProvider', function ($analyticsProvider, $locationProvider) {
|
||||
|
||||
$analyticsProvider.registerPageTrack(function (path, $location) {
|
||||
appInsights.trackPageView(path, $location.absUrl(), { "App Type" : configs.appInsights.appType});
|
||||
});
|
||||
|
||||
/**
|
||||
* Numeric properties are sent as metric (measurement) properties.
|
||||
* Everything else is sent as normal properties.
|
||||
*/
|
||||
$analyticsProvider.registerEventTrack(function (eventName, eventProperties) {
|
||||
var properties = {};
|
||||
var measurements = {};
|
||||
|
||||
angular.forEach(eventProperties, function (value, key) {
|
||||
if (isNumeric(value)) {
|
||||
measurements[key] = parseFloat(value);
|
||||
} else {
|
||||
properties[key] = value;
|
||||
}
|
||||
});
|
||||
|
||||
appInsights.trackEvent(eventName, properties, measurements);
|
||||
|
||||
});
|
||||
|
||||
}]);
|
||||
|
||||
function isNumeric(n) {
|
||||
return !isNaN(parseFloat(n)) && isFinite(n);
|
||||
}
|
||||
})(angular);
|
|
@ -0,0 +1 @@
|
|||
// Write your Javascript code.
|
1
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/js/site.min.js
поставляемый
Normal file
1
tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Jasmine/js/site.min.js
поставляемый
Normal file
|
@ -0,0 +1 @@
|
|||
!function(a){"use strict";function n(a){return!isNaN(parseFloat(a))&&isFinite(a)}a.module("angulartics.azure",["angulartics"]).config(["$analyticsProvider",function(t,i){t.registerPageTrack(function(a,n){appInsights.trackPageView(a,n.absUrl(),{"App Type":configs.appInsights.appType})}),t.registerEventTrack(function(t,i){var r={},e={};a.forEach(i,function(a,t){n(a)?e[t]=parseFloat(a):r[t]=a}),appInsights.trackEvent(t,r,e)})}])}(angular);
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Bower" version="1.3.11" targetFramework="net452" />
|
||||
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" />
|
||||
<package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net452" developmentDependency="true" />
|
||||
<package id="Node.js" version="0.10.28" targetFramework="net452" />
|
||||
<package id="NoGit" version="0.0.8" targetFramework="net452" />
|
||||
</packages>
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,217 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-rijadh
|
||||
// Created : 11-28-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="SearchConstants.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file contains search constants for managed search properties.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Legal.MatterCenter.Entity;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
#endregion
|
||||
|
||||
internal static class SearchConstants
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// The managed property responsible attorney
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyResponsibleAttorney = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Responsible_Attorney", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property team members
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyTeamMembers = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Team_Members", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property site name
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertySiteName = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Site_Name", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property custom title
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyCustomTitle = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Custom_Title", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property is matter
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyIsMatter = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Is_Matter", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property title
|
||||
/// </summary>
|
||||
internal static string ManagedPropertyTitle = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Title", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property name
|
||||
/// </summary>
|
||||
internal static string ManagedPropertyName = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Name", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property description
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDescription = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Description", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property last modified time
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyLastModifiedTime = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Last_Modified_Time", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property last modified time for documents
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentLastModifiedTime = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_Last_Modified_Time", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property practice group
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyPracticeGroup = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Practice_Group", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property area of law
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyAreaOfLaw = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Area_Of_Law", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property sub area of law
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertySubAreaOfLaw = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Sub_Area_Of_Law", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property matter identifier
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyMatterId = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Matter_Id", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property path
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyPath = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Path", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property matter name
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyMatterName = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Matter_Name", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property open date
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyOpenDate = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Open_Date", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property client name
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyClientName = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Client_Name", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property author
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyAuthor = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Author", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property author
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyFileName = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_File_Name", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property is document
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyIsDocument = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Is_Document", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property server relative URL
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyServerRelativeUrl = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Server_Relative_Url", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property file extension
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyFileExtension = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_File_Extension", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property created
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyCreated = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Created", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property UI version string OWSTEXT
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyUIVersionStringOWSTEXT = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_UI_Version_String_OWSTEXT", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property site title
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertySiteTitle = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Site_Title", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property document client identifier
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentClientId = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_Client_Id", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property document client name
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentClientName = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_Client_Name", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property document matter identifier
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentMatterId = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_Matter_Id", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property document matter name
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentMatterName = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_Matter_Name", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property document identifier
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentId = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_Id", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property checked out by user
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyCheckOutByUser = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_CheckOut_By_User", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The managed property blocked upload users
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyBlockedUploadUsers = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Blocked_Upload_Users", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The manage property Client ID
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyClientID = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Client_Id", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Represents the SPWebUrl managed property associated with the document
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertySPWebUrl = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_SPWeb_Url", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Holds the managed property for retrieving version of the document
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentVersion = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_Version", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Holds the managed property for retrieving checked out user of the document
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyDocumentCheckOutUser = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Managed_Property_Document_CheckOutUser", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Holds the managed property for retrieving GUID of matter
|
||||
/// </summary>
|
||||
internal static readonly string ManagedPropertyMatterGuid = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_GUID", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Holds the search result source ID
|
||||
/// </summary>
|
||||
internal static readonly string SearchResultSourceID = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Search_Result_Source_ID", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
}
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,400 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-akdigh
|
||||
// Created : 11-28-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="TextConstants.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file contains messages displayed to user.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Legal.MatterCenter.Entity;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Provides Text constants used in Matter Center.
|
||||
/// </summary>
|
||||
internal static class TextConstants
|
||||
{
|
||||
/// <summary>
|
||||
/// The message no inputs
|
||||
/// </summary>
|
||||
internal static readonly string MessageNoInputs = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Message_No_Inputs", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The share list column mail list
|
||||
/// </summary>
|
||||
internal static readonly string ShareListColumnMailBody = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Share_List_Column_Mail_Body", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The share list column mail list
|
||||
/// </summary>
|
||||
internal static readonly string ShareListColumnMailSubject = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Share_List_Column_Mail_Subject", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// HTML chunk of the Default content type for Matter creation mail
|
||||
/// </summary>
|
||||
internal static readonly string MatterMailDefaultContentTypeHtmlChunk = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_Mail_Default_Content_Type_Html_Chunk", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Subject of the matter creation mail
|
||||
/// </summary>
|
||||
internal static readonly string MatterMailSubject = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_Mail_Subject", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Request Object message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputRequestObjectMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Request_Object_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Request Object code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputRequestObjectCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Request_Object_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Client URL message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputClientUrlMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Client_Url_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Client URL code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputClientUrlCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Client_Url_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Client Id message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputClientIdMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Client_Id_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Client Id code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputClientIdCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Client_Id_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Client name message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputClientNameMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Client_Name_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// REGEX pattern for email validation
|
||||
/// </summary>
|
||||
internal static readonly string EmailValidationRegex = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Email_Validation_Regex", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Client name code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputClientNameCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Client_Name_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Practice Group message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputPracticeGroupMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Practice_Group_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Practice Group code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputPracticeGroupCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Practice_Group_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Area Of Law message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputAreaOfLawMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Area_Of_Law_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Area Of Law code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputAreaOfLawCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Area_Of_Law_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Sub Area Of Law message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputSubareaOfLawMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Subarea_Of_Law_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Sub Area Of Law code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputSubareaOfLawCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Subarea_Of_Law_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Responsible Attorney message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputResponsibleAttorneyMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Responsible_Attorney_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Responsible Attorney code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputResponsibleAttorneyCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Responsible_Attorney_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Matter name message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputMatterNameMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Matter_Name_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Matter name code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputMatterNameCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Matter_Name_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Matter Id message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputMatterIdMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Matter_Id_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Matter Id code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputMatterIdCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Matter_Id_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect user name message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputUserNamesMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_User_Names_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect user name code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputUserNamesCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_User_Names_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect user permission message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputUserPermissionsMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_User_Permissions_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect user permission code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputUserPermissionsCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_User_Permissions_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Content Type message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputContentTypeMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Content_Type_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Content Type code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputContentTypeCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Content_Type_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Matter description message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputMatterDescriptionMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Matter_Description_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect Matter description code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputMatterDescriptionCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Matter_Description_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect conflict date message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputConflictDateMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Conflict_Date_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect conflict date code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputConflictDateCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Conflict_Date_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect conflict identified message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputConflictIdentifiedMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Conflict_Identified_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect conflict identified code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputConflictIdentifiedCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Conflict_Identified_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect user roles message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputUserRolesMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_User_Roles_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect user roles code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputUserRolesCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_User_Roles_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect conflict check by message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputConflictCheckByMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Conflict_Check_By_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect conflict check by code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputConflictCheckByCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Conflict_Check_By_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect block users message
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputBlockUserNamesMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Block_User_Names_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Incorrect block users code
|
||||
/// </summary>
|
||||
internal static readonly string IncorrectInputBlockUserNamesCode = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Incorrect_Input_Block_User_Names_Code", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The Is Read Only User key name, used to determine if user is read-only user for particular matter
|
||||
/// </summary>
|
||||
internal static readonly string IsReadOnlyUser = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Is_Read_Only_User", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The no mail subject
|
||||
/// </summary>
|
||||
internal static readonly string NoMailSubject = ConstantStrings.GetConfigurationFromResourceFile("Constants", "No_Mail_Subject", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The missing parameters message
|
||||
/// </summary>
|
||||
internal static readonly string MissingParametersMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Parameter_Missing_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The invalid parameters message
|
||||
/// </summary>
|
||||
internal static readonly string InvalidParametersMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Parameter_Invalid_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The mail cart mail subject
|
||||
/// </summary>
|
||||
internal static readonly string MailCartMailSubject = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Mail_Cart_Mail_Subject", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// The mail cart mail body
|
||||
/// </summary>
|
||||
internal static readonly string MailCartMailBody = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Mail_Cart_Mail_Body", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Link to templates document library on content type hub
|
||||
/// </summary>
|
||||
internal static readonly string FileNotAvailableMessage = ConstantStrings.GetConfigurationFromResourceFile("Constants", "File_Not_Available_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Success message on deletion of matter
|
||||
/// </summary>
|
||||
internal static readonly string MatterDeletedSuccessfully = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_Deletion_Message", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Holds the message for no data returned from people picker control based on the search term.
|
||||
/// </summary>
|
||||
internal static readonly string PeoplePickerNoResults = ConstantStrings.GetConfigurationFromResourceFile("Constants", "People_Picker_No_Results_Found", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code for issue when Content Types selected by the users are not present in the Content Type hub or site collection where the matter library is created
|
||||
/// </summary>
|
||||
/// <value>Error code when for issue when Content Types selected by the users are not present in the Content Type hub or site collection where the matter library is created</value>
|
||||
internal static readonly string ErrorCodeContentTypes = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeContentType", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code for issue when creation of site column while sending document to OneDrive
|
||||
/// </summary>
|
||||
/// <value>Error code for issue when creation of site column while sending document to OneDrive</value>
|
||||
internal static readonly string ErrorCodeCreateSiteColumn = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeCreateSiteColumn", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code for issue when creation of site content type while sending document to OneDrive
|
||||
/// </summary>
|
||||
/// <value>Error code for issue when creation of site content type while sending document to OneDrive</value>
|
||||
internal static readonly string ErrorCodeCreateSiteContentType = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeCreateSiteContentType", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code for issue when assigning default site content type while sending document to OneDrive
|
||||
/// </summary>
|
||||
/// <value>Error code for issue when assigning default site content type while sending document to OneDrive</value>
|
||||
internal static readonly string ErrorCodeAssignDefaultContentType = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeAssignDefaultContentType", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code for issue when OneDrive is not configured for user
|
||||
/// </summary>
|
||||
/// <value>Error code for issue when OneDrive is not configured for user</value>
|
||||
internal static readonly string ErrorCodeOneDriveNotConfigured = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeOneDriveNotConfigured", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error message for issue when creation of site column while sending document to OneDrive
|
||||
/// </summary>
|
||||
/// <value>Error message for issue when creation of site column while sending document to OneDrive</value>
|
||||
internal static readonly string ErrorMessageCreateSiteColumn = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageCreateSiteColumn", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error message for issue when creation of site content type while sending document to OneDrive
|
||||
/// </summary>
|
||||
/// <value>Error message for issue when creation of site content type while sending document to OneDrive</value>
|
||||
internal static readonly string ErrorMessageCreateSiteContentType = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageCreateSiteContentType", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error message for issue when assigning default site content type while sending document to OneDrive
|
||||
/// </summary>
|
||||
/// <value>Error message for issue when assigning default site content type while sending document to OneDrive</value>
|
||||
internal static readonly string ErrorMessageAssignDefaultContentType = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageAssignDefaultContentType", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error message for issue when Content Types selected by the users are not present in the Content Type hub or site collection where the matter library is created
|
||||
/// </summary>
|
||||
/// <value>Error message when for issue when Content Types selected by the users are not present in the Content Type hub or site collection where the matter library is created</value>
|
||||
internal static readonly string ErrorMessageContentTypes = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageContentType", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code when there is an issue while assigning permissions to calendar list
|
||||
/// </summary>
|
||||
/// <value>Error code when there is an issue while assigning permissions to calendar list</value>
|
||||
internal static readonly string ErrorCodeCalendarCreation = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeCalendarCreation", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code when there is an issue while assigning permissions to calendar list
|
||||
/// </summary>
|
||||
/// <value>Error code when there is an issue while assigning permissions to calendar list</value>
|
||||
internal static readonly string ErrorMessageTaskCreation = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageTaskCreation", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error message when there is an issue while assigning permissions to calendar list
|
||||
/// </summary>
|
||||
/// <value>Error message when there is an issue while assigning permissions to calendar list</value>
|
||||
internal static readonly string ErrorMessageCalendarCreation = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageCalendarCreation", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code when there is an issue while creating calendar list
|
||||
/// </summary>
|
||||
/// <value>Error code when there is an issue while creating calendar list</value>
|
||||
internal static readonly string ErrorCodeAddCalendarList = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeAddCalendarList", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error code when there is an issue while creating task list
|
||||
/// </summary>
|
||||
/// <value>Error code when there is an issue while creating task list</value>
|
||||
internal static readonly string ErrorCodeAddTaskList = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorCodeAddTaskList", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error message when there is an issue while creating calendar list
|
||||
/// </summary>
|
||||
/// <value>Error message when there is an issue while creating calendar list</value>
|
||||
internal static readonly string ErrorMessageAddCalendarList = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageAddCalendarList", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the error message when there is an issue while creating task list
|
||||
/// </summary>
|
||||
/// <value>Error message when there is an issue while creating task list</value>
|
||||
internal static readonly string ErrorMessageAddTaskList = ConstantStrings.GetConfigurationFromResourceFile("Constants", "ErrorMessageAddTaskList", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the body of the matter mail for conflict check
|
||||
/// </summary>
|
||||
internal static readonly string MatterMailBodyConflictCheck = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_Mail_Body_Conflict_Check", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the body of the matter mail for Team Members
|
||||
/// </summary>
|
||||
internal static readonly string MatterMailBodyTeamMembers = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_Mail_Body_Team_Members", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the body of the matter mail for Matter Information
|
||||
/// </summary>
|
||||
internal static readonly string MatterMailBodyMatterInformation = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_Mail_Body_Matter_Information", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
}
|
||||
}
|
|
@ -1,262 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-shpate
|
||||
// Created : 11-28-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="WebpartConstants.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file contains constants required for creating web part in SharePoint.</summary>
|
||||
// ***********************************************************************
|
||||
|
||||
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Legal.MatterCenter.Entity;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
#endregion
|
||||
|
||||
internal static class WebpartConstants
|
||||
{
|
||||
/// <summary>
|
||||
/// XML definition of the left web part
|
||||
/// </summary>
|
||||
internal const string ContentEditorWebPart = @"<?xml version=""1.0"" encoding=""utf-8""?>
|
||||
<WebPart xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.microsoft.com/WebPart/v2"">
|
||||
<Title>Content Editor</Title>
|
||||
<FrameType>None</FrameType>
|
||||
<Description>Allows authors to enter rich text content.</Description>
|
||||
<IsIncluded>true</IsIncluded>
|
||||
<ZoneID>MiddleLeftZone</ZoneID>
|
||||
<PartOrder>0</PartOrder>
|
||||
<FrameState>Normal</FrameState>
|
||||
<Height />
|
||||
<Width />
|
||||
<AllowRemove>true</AllowRemove>
|
||||
<AllowZoneChange>true</AllowZoneChange>
|
||||
<AllowMinimize>true</AllowMinimize>
|
||||
<AllowConnect>true</AllowConnect>
|
||||
<AllowEdit>true</AllowEdit>
|
||||
<AllowHide>true</AllowHide>
|
||||
<IsVisible>true</IsVisible>
|
||||
<DetailLink />
|
||||
<HelpLink />
|
||||
<HelpMode>Modeless</HelpMode>
|
||||
<Dir>Default</Dir>
|
||||
<PartImageSmall />
|
||||
<MissingAssembly>Cannot import this Web Part.</MissingAssembly>
|
||||
<PartImageLarge>/_layouts/15/images/mscontl.gif</PartImageLarge>
|
||||
<IsIncludedFilter />
|
||||
<Assembly>Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
|
||||
<TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
|
||||
<ContentLink xmlns=""http://schemas.microsoft.com/WebPart/v2/ContentEditor"" />
|
||||
<Content xmlns=""http://schemas.microsoft.com/WebPart/v2/ContentEditor"">
|
||||
<![CDATA[
|
||||
{0}
|
||||
]]>
|
||||
</Content>
|
||||
<PartStorage xmlns=""http://schemas.microsoft.com/WebPart/v2/ContentEditor"" />
|
||||
</WebPart>";
|
||||
|
||||
/// <summary>
|
||||
/// XML definition of the RSS feed web part
|
||||
/// </summary>
|
||||
internal const string RssFeedWebpart = @"<webParts>
|
||||
<webPart xmlns=""http://schemas.microsoft.com/WebPart/v3"">
|
||||
<metaData>
|
||||
<type name=""Microsoft.SharePoint.Portal.WebControls.RSSAggregatorWebPart, Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"" />
|
||||
<importErrorMessage>Cannot import this web part.</importErrorMessage>
|
||||
</metaData>
|
||||
<data>
|
||||
<properties>
|
||||
<property name=""InitialAsyncDataFetch"" type=""bool"">False</property>
|
||||
<property name=""ChromeType"" type=""chrometype"">None</property>
|
||||
<property name=""ListName"" type=""string"" null=""true"" />
|
||||
<property name=""Height"" type=""string"" />
|
||||
<property name=""CacheXslStorage"" type=""bool"">True</property>
|
||||
<property name=""Default"" type=""string"" />
|
||||
<property name=""ParameterBindings"" type=""string""><ParameterBinding Name=""RequestUrl"" Location=""WPProperty[FeedUrl]""/></property>
|
||||
<property name=""AllowZoneChange"" type=""bool"">True</property>
|
||||
<property name=""AutoRefresh"" type=""bool"">False</property>
|
||||
<property name=""XmlDefinitionLink"" type=""string"" />
|
||||
<property name=""DataFields"" type=""string"" />
|
||||
<property name=""FeedLimit"" type=""int"">5</property>
|
||||
<property name=""Hidden"" type=""bool"">False</property>
|
||||
<property name=""NoDefaultStyle"" type=""string"" />
|
||||
<property name=""XslLink"" type=""string"" null=""true"" />
|
||||
<property name=""ViewFlag"" type=""string"">0</property>
|
||||
<property name=""CatalogIconImageUrl"" type=""string"" />
|
||||
<property name=""CacheXslTimeOut"" type=""int"">600</property>
|
||||
<property name=""AutoRefreshInterval"" type=""int"">60</property>
|
||||
<property name=""AllowConnect"" type=""bool"">True</property>
|
||||
<property name=""FeedUrl"" type=""string"">http://www.bing.com/search?q={0}&format=rss</property>
|
||||
<property name=""AllowClose"" type=""bool"">True</property>
|
||||
<property name=""ShowWithSampleData"" type=""bool"">False</property>
|
||||
<property name=""EnableOriginalValue"" type=""bool"">False</property>
|
||||
<property name=""ExpandFeed"" type=""bool"">False</property>
|
||||
<property name=""ListUrl"" type=""string"" null=""true"" />
|
||||
<property name=""DataSourceID"" type=""string"" />
|
||||
<property name=""FireInitialRow"" type=""bool"">True</property>
|
||||
<property name=""ManualRefresh"" type=""bool"">False</property>
|
||||
<property name=""ViewFlags"" type=""Microsoft.SharePoint.SPViewFlags, Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"">None</property>
|
||||
<property name=""ChromeState"" type=""chromestate"">Normal</property>
|
||||
<property name=""AllowHide"" type=""bool"">True</property>
|
||||
<property name=""ListDisplayName"" type=""string"" null=""true"" />
|
||||
<property name=""SampleData"" type=""string"" null=""true"" />
|
||||
<property name=""AsyncRefresh"" type=""bool"">False</property>
|
||||
<property name=""Direction"" type=""direction"">NotSet</property>
|
||||
<property name=""Title"" type=""string"">RSS Viewer</property>
|
||||
<property name=""ListId"" type=""System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"">00000000-0000-0000-0000-000000000000</property>
|
||||
<property name=""Description"" type=""string"">Displays an RSS feed.</property>
|
||||
<property name=""AllowMinimize"" type=""bool"">True</property>
|
||||
<property name=""TitleUrl"" type=""string"" />
|
||||
<property name=""DataSourcesString"" type=""string"">
|
||||
<%@ Register TagPrefix=""WebControls"" Namespace=""Microsoft.SharePoint.WebControls"" Assembly=""Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"" %>
|
||||
<%@ Register TagPrefix=""WebPartPages"" Namespace=""Microsoft.SharePoint.WebPartPages"" Assembly=""Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"" %>
|
||||
<WebControls:XmlUrlDataSource runat=""server"" AuthType=""None"" HttpMethod=""GET"">
|
||||
<DataFileParameters>
|
||||
<WebPartPages:DataFormParameter Name=""RequestUrl"" ParameterKey=""RequestUrl"" PropertyName=""ParameterValues""/>
|
||||
</DataFileParameters>
|
||||
</WebControls:XmlUrlDataSource></property>
|
||||
<property name=""DisplayName"" type=""string"" />
|
||||
<property name=""PageType"" type=""Microsoft.SharePoint.PAGETYPE, Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"">PAGE_NORMALVIEW</property>
|
||||
<property name=""Width"" type=""string"" />
|
||||
<property name=""AllowEdit"" type=""bool"">True</property>
|
||||
<property name=""ExportMode"" type=""exportmode"">All</property>
|
||||
<property name=""CacheRefreshTimeInMins"" type=""int"">120</property>
|
||||
<property name=""PageSize"" type=""int"">-1</property>
|
||||
<property name=""ViewContentTypeId"" type=""string"" />
|
||||
<property name=""HelpUrl"" type=""string"" />
|
||||
<property name=""XmlDefinition"" type=""string"" />
|
||||
<property name=""UseSQLDataSourcePaging"" type=""bool"">True</property>
|
||||
<property name=""TitleIconImageUrl"" type=""string"" />
|
||||
<property name=""MissingAssembly"" type=""string"">Cannot import this web part.</property>
|
||||
<property name=""HelpMode"" type=""helpmode"">Modeless</property>
|
||||
</properties>
|
||||
</data>
|
||||
</webPart>
|
||||
</webParts>";
|
||||
/// <summary>
|
||||
/// XML definition of the list view web part
|
||||
/// </summary>
|
||||
internal const string ListviewWebpart = @"
|
||||
<webParts>
|
||||
<webPart xmlns=""http://schemas.microsoft.com/WebPart/v3"">
|
||||
<metaData>
|
||||
<type name=""Microsoft.SharePoint.WebPartPages.XsltListViewWebPart, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"" />
|
||||
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
|
||||
</metaData>
|
||||
<data>
|
||||
<properties>
|
||||
<property name=""ShowWithSampleData"" type=""bool"">False</property>
|
||||
<property name=""Default"" type=""string"" />
|
||||
<property name=""NoDefaultStyle"" type=""string"" null=""true"" />
|
||||
<property name=""CacheXslStorage"" type=""bool"">True</property>
|
||||
<property name=""ViewContentTypeId"" type=""string"" />
|
||||
<property name=""XmlDefinitionLink"" type=""string"" />
|
||||
<property name=""ManualRefresh"" type=""bool"">False</property>
|
||||
<property name=""ListUrl"" type=""string"" />
|
||||
<property name=""ListId"" type=""System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"">{0}</property>
|
||||
<property name=""TitleUrl"" type=""string"">{1}</property>
|
||||
<property name=""EnableOriginalValue"" type=""bool"">False</property>
|
||||
<property name=""Direction"" type=""direction"">NotSet</property>
|
||||
<property name=""ServerRender"" type=""bool"">False</property>
|
||||
<property name=""ViewFlags"" type=""Microsoft.SharePoint.SPViewFlags, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"">Html, TabularView, Hidden, Mobile</property>
|
||||
<property name=""AllowConnect"" type=""bool"">True</property>
|
||||
<property name=""ListName"" type=""string"">{2}</property>
|
||||
<property name=""ListDisplayName"" type=""string"" />
|
||||
<property name=""AllowZoneChange"" type=""bool"">True</property>
|
||||
<property name=""ChromeState"" type=""chromestate"">Normal</property>
|
||||
<property name=""DisableSaveAsNewViewButton"" type=""bool"">False</property>
|
||||
<property name=""ViewFlag"" type=""string"" />
|
||||
<property name=""DataSourceID"" type=""string"" />
|
||||
<property name=""ExportMode"" type=""exportmode"">All</property>
|
||||
<property name=""AutoRefresh"" type=""bool"">False</property>
|
||||
<property name=""FireInitialRow"" type=""bool"">True</property>
|
||||
<property name=""AllowEdit"" type=""bool"">True</property>
|
||||
<property name=""Description"" type=""string"" />
|
||||
<property name=""HelpMode"" type=""helpmode"">Modeless</property>
|
||||
<property name=""BaseXsltHashKey"" type=""string"" null=""true"" />
|
||||
<property name=""AllowMinimize"" type=""bool"">True</property>
|
||||
<property name=""CacheXslTimeOut"" type=""int"">86400</property>
|
||||
<property name=""ChromeType"" type=""chrometype"">None</property>
|
||||
<property name=""Xsl"" type=""string"" null=""true"" />
|
||||
<property name=""JSLink"" type=""string"" null=""true"" />
|
||||
<property name=""CatalogIconImageUrl"" type=""string"">/_layouts/15/images/itdl.png?rev=33</property>
|
||||
<property name=""SampleData"" type=""string"" null=""true"" />
|
||||
<property name=""UseSQLDataSourcePaging"" type=""bool"">True</property>
|
||||
<property name=""TitleIconImageUrl"" type=""string"" />
|
||||
<property name=""PageSize"" type=""int"">-1</property>
|
||||
<property name=""ShowTimelineIfAvailable"" type=""bool"">True</property>
|
||||
<property name=""Width"" type=""string"" >750px</property>
|
||||
<property name=""DataFields"" type=""string"" />
|
||||
<property name=""Hidden"" type=""bool"">False</property>
|
||||
<property name=""Title"" type=""string"" />
|
||||
<property name=""PageType"" type=""Microsoft.SharePoint.PAGETYPE, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"">PAGE_NORMALVIEW</property>
|
||||
<property name=""DataSourcesString"" type=""string"" />
|
||||
<property name=""AllowClose"" type=""bool"">True</property>
|
||||
<property name=""InplaceSearchEnabled"" type=""bool"">True</property>
|
||||
<property name=""WebId"" type=""System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"">00000000-0000-0000-0000-000000000000</property>
|
||||
<property name=""Height"" type=""string"" />
|
||||
<property name=""GhostedXslLink"" type=""string"">main.xsl</property>
|
||||
<property name=""DisableViewSelectorMenu"" type=""bool"">False</property>
|
||||
<property name=""DisplayName"" type=""string"" />
|
||||
<property name=""IsClientRender"" type=""bool"">False</property>
|
||||
<property name=""XmlDefinition"" type=""string""><View Name=""{3}"" MobileView=""TRUE"" Type=""HTML"" Hidden=""TRUE"" DisplayName="" "" Url=""{4}"" Level=""1"" BaseViewID=""1"" ContentTypeID=""0x"" ImageUrl=""/_layouts/15/images/dlicon.png?rev=37"" ><Query><OrderBy><FieldRef Name=""FileLeafRef""/></OrderBy></Query><ViewFields><FieldRef Name=""DocIcon""/><FieldRef Name=""LinkFilename""/><FieldRef Name=""Modified""/><FieldRef Name=""Editor""/></ViewFields><RowLimit Paged=""TRUE"">30</RowLimit><JSLink>clienttemplates.js</JSLink><XslLink Default=""TRUE"">main.xsl</XslLink><Toolbar Type=""Standard""/></View></property>
|
||||
<property name=""InitialAsyncDataFetch"" type=""bool"">False</property>
|
||||
<property name=""AllowHide"" type=""bool"">True</property>
|
||||
<property name=""ParameterBindings"" type=""string"">
|
||||
<ParameterBinding Name=""dvt_sortdir"" Location=""Postback;Connection""/>
|
||||
<ParameterBinding Name=""dvt_sortfield"" Location=""Postback;Connection""/>
|
||||
<ParameterBinding Name=""dvt_startposition"" Location=""Postback"" DefaultValue="" ""/>
|
||||
<ParameterBinding Name=""dvt_firstrow"" Location=""Postback;Connection""/>
|
||||
<ParameterBinding Name=""OpenMenuKeyAccessible"" Location=""Resource(wss,OpenMenuKeyAccessible)"" />
|
||||
<ParameterBinding Name=""open_menu"" Location=""Resource(wss,open_menu)"" />
|
||||
<ParameterBinding Name=""select_deselect_all"" Location=""Resource(wss,select_deselect_all)"" />
|
||||
<ParameterBinding Name=""idPresEnabled"" Location=""Resource(wss,idPresEnabled)"" /><ParameterBinding Name=""NoAnnouncements"" Location=""Resource(wss,noitemsinview_doclibrary)"" /><ParameterBinding Name=""NoAnnouncementsHowTo"" Location=""Resource(wss,noitemsinview_doclibrary_howto2)"" /></property>
|
||||
<property name=""DataSourceMode"" type=""Microsoft.SharePoint.WebControls.SPDataSourceMode, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"">List</property>
|
||||
<property name=""AutoRefreshInterval"" type=""int"">60</property>
|
||||
<property name=""AsyncRefresh"" type=""bool"">False</property>
|
||||
<property name=""HelpUrl"" type=""string"" />
|
||||
<property name=""MissingAssembly"" type=""string"">Cannot import this Web Part.</property>
|
||||
<property name=""XslLink"" type=""string"" null=""true"" />
|
||||
<property name=""SelectParameters"" type=""string"" />
|
||||
<property name=""HasClientDataSource"" type=""bool"">False</property>
|
||||
</properties>
|
||||
</data>
|
||||
</webPart>
|
||||
</webParts>";
|
||||
|
||||
/// <summary>
|
||||
/// Matter Landing page sections
|
||||
/// </summary>
|
||||
internal static string MatterLandingPageSections = ConstantStrings.GetConfigurationFromResourceFile("Constants", "Matter_Landing_Page_Sections", Enumerators.ResourceFileLocation.App_GlobalResources);
|
||||
|
||||
/// <summary>
|
||||
/// Section to be appended on the page
|
||||
/// </summary>
|
||||
internal const string MatterLandingSectionContent = "<div id=\"{0}\"></div>";
|
||||
|
||||
/// <summary>
|
||||
/// Style tag
|
||||
/// </summary>
|
||||
internal const string StyleTag = "<link href=\"{0}\" type=\"text/css\" rel=\"stylesheet\" />";
|
||||
|
||||
/// <summary>
|
||||
/// Script tag
|
||||
/// </summary>
|
||||
internal const string ScriptTag = "<script src=\"{0}\" type=\"text/javascript\"></script>";
|
||||
|
||||
/// <summary>
|
||||
/// Script tag with contents
|
||||
/// </summary>
|
||||
internal const string ScriptTagWithContents = "<script type=\"text/javascript\">{0}</script>";
|
||||
|
||||
/// <summary>
|
||||
/// Matter landing stamp properties
|
||||
/// </summary>
|
||||
internal const string matterLandingStampProperties = "var documentLibraryName = \"{0}\", isNewMatterLandingPage = true, documentLibraryGUID=\"{1}\";";
|
||||
}
|
||||
}
|
Двоичный файл не отображается.
|
@ -1,444 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-diajme
|
||||
// Created : 04-06-2015
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="BriefcaseContentTypeHelperFunctions.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file provides methods involved in briefcase operations related to content type.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService.CommonHelper
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Legal.MatterCenter.DataLayer;
|
||||
using Microsoft.Legal.MatterCenter.Entity;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
using Microsoft.SharePoint.Client;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Provide methods involved in briefcase operations related to content type.
|
||||
/// </summary>
|
||||
internal static class BriefcaseContentTypeHelperFunctions
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns content type associated with the list.
|
||||
/// </summary>
|
||||
/// <param name="list">List object</param>
|
||||
/// <param name="clientContext">Client Context object</param>
|
||||
/// <returns>Content type object</returns>
|
||||
internal static ContentType GetContentType(List list, ClientContext clientContext)
|
||||
{
|
||||
ContentType targetDocumentSetContentType = null;
|
||||
ContentTypeCollection listContentTypes = null;
|
||||
try
|
||||
{
|
||||
listContentTypes = list.ContentTypes;
|
||||
clientContext.Load(
|
||||
listContentTypes,
|
||||
types => types.Include(
|
||||
type => type.Id,
|
||||
type => type.Name,
|
||||
type => type.Parent));
|
||||
|
||||
var result = clientContext.LoadQuery(listContentTypes.Where(c => c.Name == ConstantStrings.OneDriveDocumentContentType));
|
||||
clientContext.ExecuteQuery();
|
||||
targetDocumentSetContentType = result.FirstOrDefault();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return targetDocumentSetContentType;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the content type of the list item and returns the updated content type based on briefcase operation.
|
||||
/// </summary>
|
||||
/// <param name="requestObject">Request object</param>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="documentName">Document Name</param>
|
||||
/// <param name="url">URL parameter</param>
|
||||
/// <param name="operationType">Specifies the type of operation</param>
|
||||
/// <param name="contentTypeId">String form of Content type ID</param>
|
||||
/// <param name="documentLibraryName">Name of the document library</param>
|
||||
/// <returns>List item Content Type Id</returns>
|
||||
internal static string ContentTypeByName(RequestObject requestObject, ClientContext clientContext, string documentName, string url, int operationType, string contentTypeId, string documentLibraryName)
|
||||
{
|
||||
string response = string.Empty;
|
||||
try
|
||||
{
|
||||
using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(url.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
|
||||
{
|
||||
string itemQuery = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.GetItemByNameQuery, documentName);
|
||||
ListItemCollection listItems = Lists.GetData(clientContext, documentLibraryName, itemQuery);
|
||||
ServiceConstantStrings.OperationTypes type = (ServiceConstantStrings.OperationTypes)operationType;
|
||||
switch (type)
|
||||
{
|
||||
case ServiceConstantStrings.OperationTypes.Update:
|
||||
foreach (var listitem in listItems)
|
||||
{
|
||||
response = Convert.ToString(listitem[ConstantStrings.OneDriveContentTypeProperty], CultureInfo.InvariantCulture);
|
||||
}
|
||||
break;
|
||||
case ServiceConstantStrings.OperationTypes.Checkout:
|
||||
foreach (var listitem in listItems)
|
||||
{
|
||||
listitem[ConstantStrings.OneDriveContentTypeProperty] = contentTypeId;
|
||||
listitem.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
response = ConstantStrings.TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
response = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, TextConstants.InvalidParametersMessage);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
response = string.Concat(CultureInfo.InvariantCulture, ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets and sets default content type of the list.
|
||||
/// </summary>
|
||||
/// <param name="requestObject">RequestObject object</param>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="url">SourceURL of the OneDrive document</param>
|
||||
/// <param name="contentTypeId">Content Type Id</param>
|
||||
/// <param name="operationType">Operation type specifies either get or set Content type operation</param>
|
||||
/// <param name="documentLibraryName">Name of the document library</param>
|
||||
/// <returns>Returns Content Type Id</returns>
|
||||
internal static string GetContentTypeList(RequestObject requestObject, ClientContext clientContext, string url, string contentTypeId, int operationType, string documentLibraryName)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(url.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
|
||||
{
|
||||
List docLib = clientContext.Web.Lists.GetByTitle(documentLibraryName);
|
||||
clientContext.Load(docLib);
|
||||
clientContext.ExecuteQuery();
|
||||
Microsoft.SharePoint.Client.Folder folder = docLib.RootFolder;
|
||||
IList<ContentTypeId> list = new List<ContentTypeId>();
|
||||
clientContext.Load(folder, item => item.ContentTypeOrder, item => item.UniqueContentTypeOrder);
|
||||
clientContext.ExecuteQuery();
|
||||
list = folder.ContentTypeOrder;
|
||||
ServiceConstantStrings.OperationTypes type = (ServiceConstantStrings.OperationTypes)operationType;
|
||||
switch (type)
|
||||
{
|
||||
case ServiceConstantStrings.OperationTypes.Update:
|
||||
contentTypeId = list[0].StringValue;
|
||||
break;
|
||||
case ServiceConstantStrings.OperationTypes.Checkout:
|
||||
int iterator = 0, index = 0;
|
||||
for (iterator = 0; iterator < list.Count; iterator++)
|
||||
{
|
||||
if (list[iterator].StringValue == contentTypeId)
|
||||
{
|
||||
index = iterator;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ContentTypeId currentContentTypeID = list[index];
|
||||
list.RemoveAt(index);
|
||||
list.Insert(0, currentContentTypeID);
|
||||
folder.UniqueContentTypeOrder = list;
|
||||
folder.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return contentTypeId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check for the list item named Matter Center Briefcase already exists, if not then only create new folder
|
||||
/// </summary>
|
||||
/// <param name="clientContext">SP client context</param>
|
||||
/// <param name="list">Name of the list</param>
|
||||
/// <param name="usersMySite">My Site URL of the user</param>
|
||||
internal static void CreateBriefcaseIfNotExists(ClientContext clientContext, List list, string usersMySite)
|
||||
{
|
||||
CamlQuery briefcaseQuery = new CamlQuery();
|
||||
briefcaseQuery.ViewXml = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.BriefcaseFolderQuery, ServiceConstantStrings.LegalBriefcaseFolder);
|
||||
ListItemCollection briefcases = list.GetItems(briefcaseQuery);
|
||||
clientContext.Load(briefcases, listItems => listItems.Include(item => item.DisplayName));
|
||||
clientContext.ExecuteQuery();
|
||||
ListItem listItem = briefcases.Where(item => item.DisplayName == ServiceConstantStrings.LegalBriefcaseFolder).FirstOrDefault();
|
||||
if (null == listItem) // Check for Matter Center Briefcase folder exists, if not then create
|
||||
{
|
||||
ListItemCreationInformation newItem = new ListItemCreationInformation();
|
||||
newItem.FolderUrl = string.Concat(usersMySite, ServiceConstantStrings.OneDriveDocumentLibraryTitle);
|
||||
newItem.LeafName = ServiceConstantStrings.LegalBriefcaseFolder;
|
||||
newItem.UnderlyingObjectType = FileSystemObjectType.Folder;
|
||||
listItem = list.AddItem(newItem);
|
||||
listItem.Update();
|
||||
clientContext.Load(listItem, field => field.DisplayName);
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the content type.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">SP client context</param>
|
||||
/// <param name="list">Name of the list</param>
|
||||
/// <param name="usersMySite">My Site URL of the user</param>
|
||||
internal static void SetContentType(ClientContext clientContext, List list, string usersMySite)
|
||||
{
|
||||
bool flag = false;
|
||||
try
|
||||
{
|
||||
CreateBriefcaseIfNotExists(clientContext, list, usersMySite);
|
||||
// Get Matter Center for OneDrive content type
|
||||
ContentType oneDriveContentType = clientContext.Web.ContentTypes.Where(item => item.Name == ServiceConstantStrings.OneDriveContentTypeName).FirstOrDefault();
|
||||
if (null != oneDriveContentType)
|
||||
{
|
||||
list.ContentTypes.AddExistingContentType(oneDriveContentType); // Associate content type with list (Documents)
|
||||
list.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
ContentTypeCollection currentContentTypeOrder = list.ContentTypes;
|
||||
clientContext.Load(currentContentTypeOrder);
|
||||
clientContext.ExecuteQuery();
|
||||
foreach (ContentType contentType in currentContentTypeOrder)
|
||||
{
|
||||
if (contentType.Name.Equals(ServiceConstantStrings.OneDriveContentTypeName))
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
List<string> contentTypes = new List<string>() { ServiceConstantStrings.OneDriveContentTypeName };
|
||||
if (flag == false)
|
||||
{
|
||||
IList<ContentType> contentTypeCollection = SharePointHelper.GetContentTypeData(clientContext, contentTypes);
|
||||
if (null != contentTypeCollection)
|
||||
{
|
||||
ViewCollection views = list.Views;
|
||||
clientContext.Load(views);
|
||||
FieldCollection fields = ProvisionHelperFunctions.GetContentType(clientContext, contentTypeCollection, list);
|
||||
fields.GetByInternalNameOrTitle(ServiceConstantStrings.OneDriveSiteColumn).SetShowInEditForm(false);
|
||||
fields.GetByInternalNameOrTitle(ServiceConstantStrings.OneDriveSiteColumn).SetShowInNewForm(false);
|
||||
fields.GetByInternalNameOrTitle(ServiceConstantStrings.OneDriveSiteColumn).Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets default content type for user's OneDrive.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">SP client context</param>
|
||||
/// <param name="list">Name of the list</param>
|
||||
/// <param name="defaultContentType">Default content type to be set</param>
|
||||
/// <returns>Content type Id of default content type</returns>
|
||||
internal static string SetOneDriveDefaultContentType(ClientContext clientContext, List list, string defaultContentType)
|
||||
{
|
||||
string defaultContentTypeId = string.Empty;
|
||||
try
|
||||
{
|
||||
ContentTypeCollection currentContentTypeOrder = list.ContentTypes;
|
||||
clientContext.Load(currentContentTypeOrder);
|
||||
clientContext.ExecuteQuery();
|
||||
IList<ContentTypeId> updatedContentTypeOrder = new List<ContentTypeId>();
|
||||
int count = 0, swap = 0;
|
||||
foreach (ContentType contentType in currentContentTypeOrder)
|
||||
{
|
||||
if (contentType.Name.Equals(defaultContentType))
|
||||
{
|
||||
defaultContentTypeId = contentType.StringId;
|
||||
swap = count;
|
||||
}
|
||||
if (!contentType.Name.Equals(ConstantStrings.OneDriveFolderContentType))
|
||||
{
|
||||
updatedContentTypeOrder.Add(contentType.Id);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
ContentTypeId documentContentType = updatedContentTypeOrder[0];
|
||||
updatedContentTypeOrder[0] = updatedContentTypeOrder[swap];
|
||||
updatedContentTypeOrder[swap] = documentContentType;
|
||||
list.RootFolder.UniqueContentTypeOrder = updatedContentTypeOrder;
|
||||
list.RootFolder.Update();
|
||||
list.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
defaultContentTypeId = ConstantStrings.FALSE;
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return defaultContentTypeId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether the content type exists in the content type group under the specified client context.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context</param>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="receivedContentType">Type of the received content</param>
|
||||
/// <param name="contentTypeGroup">The content type group</param>
|
||||
/// <param name="siteColumns">List of site columns</param>
|
||||
internal static bool IsContentTypePresentCheck(ClientContext clientContext, Microsoft.SharePoint.Client.Web web, string receivedContentType, string contentTypeGroup, List<string> siteColumns)
|
||||
{
|
||||
bool status = true;
|
||||
try
|
||||
{
|
||||
ContentTypeCollection contentTypeCollection = web.ContentTypes;
|
||||
clientContext.Load(contentTypeCollection, contentTypes => contentTypes.Include(contentTypeProperties => contentTypeProperties.Group, contentTypeProperties => contentTypeProperties.Name).Where(contentTypeValues => (contentTypeValues.Group == ServiceConstantStrings.OneDriveContentTypeGroup) && (contentTypeValues.Name == ServiceConstantStrings.OneDriveContentTypeName)));
|
||||
clientContext.ExecuteQuery();
|
||||
|
||||
if (0 < contentTypeCollection.Count)
|
||||
{
|
||||
FieldCollection fields = contentTypeCollection[0].Fields;
|
||||
clientContext.Load(fields, field => field.Include(fieldType => fieldType.Title).Where(column => column.Title == ServiceConstantStrings.OneDriveSiteColumn));
|
||||
clientContext.ExecuteQuery();
|
||||
if (0 == fields.Count)
|
||||
{
|
||||
BriefcaseContentTypeHelperFunctions.AddColumnsToContentType(web, siteColumns, contentTypeCollection[0]);
|
||||
web.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status = BriefcaseContentTypeHelperFunctions.CreateContentType(clientContext, web, siteColumns, receivedContentType, contentTypeGroup);
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
status = false;
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates site column.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context</param>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="siteColumns">List of site columns</param>
|
||||
/// <returns>Success or Failure</returns>
|
||||
internal static bool CreateSiteColumn(ClientContext clientContext, Microsoft.SharePoint.Client.Web web, List<string> siteColumns)
|
||||
{
|
||||
bool result = false;
|
||||
try
|
||||
{
|
||||
FieldCollection fieldCol = web.Fields;
|
||||
clientContext.Load(fieldCol);
|
||||
clientContext.ExecuteQuery();
|
||||
List<Field> existingFields = fieldCol.ToList<Field>();
|
||||
foreach (string columns in siteColumns)
|
||||
{
|
||||
Field field = (from fld in existingFields
|
||||
where fld.Title == columns && fld.TypeAsString == ServiceConstantStrings.OneDriveSiteColumnType
|
||||
select fld).FirstOrDefault();
|
||||
if (null == field)
|
||||
{
|
||||
web.Fields.AddFieldAsXml(string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.OneDriveSiteColumnSchema, ServiceConstantStrings.OneDriveSiteColumn, ServiceConstantStrings.OneDriveContentTypeGroup), true, AddFieldOptions.DefaultValue);
|
||||
web.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
result = true;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates the type of the content.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">The client context.</param>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="siteColumns">The site columns.</param>
|
||||
/// <param name="contentTypeName">Name of Content Type</param>
|
||||
internal static bool CreateContentType(ClientContext clientContext, Microsoft.SharePoint.Client.Web web, List<string> siteColumns, string contentTypeName, string contentTypegroup)
|
||||
{
|
||||
bool status = true;
|
||||
ContentType parentContentType = null;
|
||||
try
|
||||
{
|
||||
ContentTypeCollection contentTypeCollection = web.ContentTypes;
|
||||
clientContext.Load(contentTypeCollection);
|
||||
clientContext.Load(web.Fields);
|
||||
clientContext.ExecuteQuery();
|
||||
parentContentType = (from ct in contentTypeCollection
|
||||
where ct.Name == ServiceConstantStrings.OneDriveParentContentType
|
||||
select ct).FirstOrDefault();
|
||||
ContentTypeCreationInformation contentType = new ContentTypeCreationInformation();
|
||||
contentType.Name = contentTypeName;
|
||||
contentType.Group = contentTypegroup;
|
||||
///// contentType.Id = "0x010100B1ED198475FB3A4AABC59AAAD89B7EAD";
|
||||
if (parentContentType != null)
|
||||
{
|
||||
contentType.ParentContentType = parentContentType;
|
||||
}
|
||||
ContentType finalObj = web.ContentTypes.Add(contentType);
|
||||
AddColumnsToContentType(web, siteColumns, finalObj);
|
||||
web.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
status = false;
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add columns to content type.
|
||||
/// </summary>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="siteColumns">List of site columns</param>
|
||||
/// <param name="finalObj">Content type to which columns are to be added</param>
|
||||
internal static void AddColumnsToContentType(Microsoft.SharePoint.Client.Web web, List<string> siteColumns, ContentType finalObj)
|
||||
{
|
||||
try
|
||||
{
|
||||
FieldCollection fieldCol = web.Fields;
|
||||
foreach (string columns in siteColumns)
|
||||
{
|
||||
Field customDoc = (from fld in fieldCol
|
||||
where fld.Title == columns && fld.TypeAsString == ServiceConstantStrings.OneDriveSiteColumnType
|
||||
select fld).FirstOrDefault();
|
||||
FieldLinkCreationInformation fieldLinkCreationInfo = new FieldLinkCreationInformation();
|
||||
fieldLinkCreationInfo.Field = customDoc;
|
||||
finalObj.FieldLinks.Add(fieldLinkCreationInfo);
|
||||
}
|
||||
finalObj.Update(true);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,553 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-akdigh
|
||||
// Created : 06-19-2014
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="BriefcaseHelperFunction.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file provides methods involved in briefcase operations.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService.CommonHelper
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Legal.MatterCenter.DataLayer;
|
||||
using Microsoft.Legal.MatterCenter.Entity;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
using Microsoft.SharePoint.Client;
|
||||
using Microsoft.SharePoint.Client.UserProfiles;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.ServiceModel.Web;
|
||||
using System.Web.Script.Serialization;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Provide methods involved in briefcase operations.
|
||||
/// </summary>
|
||||
internal static class BriefcaseHelperFunction
|
||||
{
|
||||
/// <summary>
|
||||
/// Validates the document during briefcase operations. Returns not supported message if the document in operation is not relevant to Matter Center.
|
||||
/// </summary>
|
||||
/// <param name="sourceURL">List of File names</param>
|
||||
/// <returns>Returns response for not supported files</returns>
|
||||
internal static string GetNotSupportedMessage(List<string> sourceURL)
|
||||
{
|
||||
string response = string.Empty;
|
||||
ResponseDetails responseDetails = new ResponseDetails();
|
||||
responseDetails.Status = ConstantStrings.FALSE;
|
||||
responseDetails.FileNames = sourceURL;
|
||||
response = new JavaScriptSerializer().Serialize(responseDetails);
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the collection of list items satisfying the search criteria.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="itemid">Item Id of the document</param>
|
||||
/// <returns>ListItemCollection object</returns>
|
||||
internal static ListItemCollection GetListItemCollection(ClientContext clientContext, int itemid)
|
||||
{
|
||||
ListItemCollection listItems = null;
|
||||
try
|
||||
{
|
||||
string briefcaseItemQuery = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.BriefCaseItemsQuery, itemid);
|
||||
listItems = Lists.GetData(clientContext, ServiceConstantStrings.OneDriveDocumentLibraryTitle, briefcaseItemQuery);
|
||||
clientContext.Load(listItems);
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return listItems;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns serialized response of the object.
|
||||
/// </summary>
|
||||
/// <param name="commonResponse">CommonResponse object</param>
|
||||
/// <returns>Serialized response of the object</returns>
|
||||
internal static string GetSerializeResponse(object commonResponse)
|
||||
{
|
||||
string result = string.Empty;
|
||||
try
|
||||
{
|
||||
result = new JavaScriptSerializer().Serialize(commonResponse);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Obtains and returns MySite URL of logged-in user.
|
||||
/// </summary>
|
||||
/// <param name="requestObject">Request Object</param>
|
||||
/// <returns>My Site URL of the user</returns>
|
||||
internal static string GetPersonalURL(RequestObject requestObject)
|
||||
{
|
||||
string usersMySite = string.Empty;
|
||||
string result = string.Empty;
|
||||
try
|
||||
{
|
||||
using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(ServiceConstantStrings.CentralRepositoryUrl), requestObject.RefreshToken))
|
||||
{
|
||||
PeopleManager peopleManager = new PeopleManager(clientContext);
|
||||
PersonProperties personProperties = peopleManager.GetMyProperties();
|
||||
///// Load users my site URL
|
||||
clientContext.Load(personProperties, p => p.PersonalUrl);
|
||||
clientContext.ExecuteQuery();
|
||||
usersMySite = personProperties.PersonalUrl;
|
||||
result = usersMySite;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a list of source URL based on type of briefcase operation.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client Context object</param>
|
||||
/// <param name="syncDetails">SyncDetails object</param>
|
||||
/// <param name="operationType">Indicates the type of operation to be performed</param>
|
||||
/// <returns>List of Source URLs</returns>
|
||||
internal static List<string> CheckSourceURL(ClientContext clientContext, SyncDetails syncDetails, int operationType)
|
||||
{
|
||||
List<string> sourceURL = new List<string>();
|
||||
try
|
||||
{
|
||||
foreach (int itemid in syncDetails.ItemId)
|
||||
{
|
||||
string briefcaseItemQuery = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.BriefCaseItemsQuery, itemid);
|
||||
ListItemCollection listItems = Lists.GetData(clientContext, ServiceConstantStrings.OneDriveDocumentLibraryTitle, briefcaseItemQuery);
|
||||
clientContext.Load(listItems);
|
||||
clientContext.ExecuteQuery();
|
||||
foreach (var listitem in listItems)
|
||||
{
|
||||
switch (operationType)
|
||||
{
|
||||
case 1:
|
||||
if (string.IsNullOrEmpty(Convert.ToString(listitem[ServiceConstantStrings.OneDriveSiteColumn], CultureInfo.InvariantCulture)))
|
||||
{
|
||||
sourceURL.Add(Convert.ToString(listitem[ServiceConstantStrings.ColumnNameFileLeafRef], CultureInfo.InvariantCulture));
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
sourceURL.Add(Convert.ToString(listitem[ServiceConstantStrings.OneDriveSiteColumn], CultureInfo.InvariantCulture));
|
||||
break;
|
||||
case 3:
|
||||
sourceURL.Add(Convert.ToString(listitem[ServiceConstantStrings.ColumnNameFileRef], CultureInfo.InvariantCulture));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
sourceURL.Add(ServiceUtility.RemoveEscapeCharacter(exception.Message));
|
||||
}
|
||||
return sourceURL;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Uploads the document to OneDrive (Users MySite document library).
|
||||
/// </summary>
|
||||
/// <param name="requestObject">Request Object containing SharePoint App Token</param>
|
||||
/// <param name="collectionOfAttachments">Collection of documents with data for each document</param>
|
||||
/// <param name="collectionOfOriginalAttachments">Collection of documents with path of source document</param>
|
||||
/// <param name="usersMySite">User's My site URL</param>
|
||||
/// <param name="allAttachmentUrl">Attachment URL.</param>
|
||||
/// <param name="isOverwrite">Overwrite check</param>
|
||||
/// <returns>JSON string specifying path of OneDrive as success and false as failure</returns>
|
||||
internal static string UploadtoBriefcase(RequestObject requestObject, Dictionary<string, Stream> collectionOfAttachments, Dictionary<string, string> collectionOfOriginalAttachments, string usersMySite, string[] allAttachmentUrl, int isOverwrite)
|
||||
{
|
||||
string status = ConstantStrings.FALSE;
|
||||
try
|
||||
{
|
||||
using (ClientContext clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(usersMySite), requestObject.RefreshToken))
|
||||
{
|
||||
Microsoft.SharePoint.Client.Web web = clientContext.Web;
|
||||
string contentType = ServiceConstantStrings.OneDriveContentTypeName; // Get Content Type
|
||||
string contentTypegroup = ServiceConstantStrings.OneDriveContentTypeGroup; // Get Group of Content Type
|
||||
List<string> siteColumns = new List<string>(new string[] { ServiceConstantStrings.OneDriveSiteColumn });
|
||||
bool isSiteColumnCreated = BriefcaseContentTypeHelperFunctions.CreateSiteColumn(clientContext, web, siteColumns);
|
||||
if (isSiteColumnCreated)
|
||||
{
|
||||
bool isContentTypeCreated = BriefcaseContentTypeHelperFunctions.IsContentTypePresentCheck(clientContext, web, contentType, contentTypegroup, siteColumns);
|
||||
if (isContentTypeCreated)
|
||||
{
|
||||
List list = web.Lists.GetByTitle(ServiceConstantStrings.OneDriveDocumentLibraryTitle);
|
||||
string briefcaseFolderQuery = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.BriefcaseFolderQuery, ServiceConstantStrings.LegalBriefcaseFolder);
|
||||
ListItemCollection listItems = Lists.GetData(clientContext, ServiceConstantStrings.OneDriveDocumentLibraryTitle, briefcaseFolderQuery);
|
||||
BriefcaseContentTypeHelperFunctions.SetContentType(clientContext, list, usersMySite);
|
||||
string defaultContentTypeId = BriefcaseContentTypeHelperFunctions.SetOneDriveDefaultContentType(clientContext, list, contentType);
|
||||
if (ConstantStrings.FALSE != defaultContentTypeId)
|
||||
{
|
||||
web.Update();
|
||||
if (0 == isOverwrite)
|
||||
{
|
||||
MailAttachmentDetails.CheckoutFailedPosition = 0;
|
||||
status = BriefcaseUtilityHelperFunctions.NewDocumentToOneDrive(clientContext, collectionOfAttachments, collectionOfOriginalAttachments, allAttachmentUrl, web, usersMySite, defaultContentTypeId);
|
||||
//// Undo check out in case of failure
|
||||
//// undo checkout all documents from position MailAttachmentDetails.checkOutFailedPosition
|
||||
BriefcaseHelperFunction.DiscardDocumentCheckout(requestObject, allAttachmentUrl);
|
||||
}
|
||||
else
|
||||
{
|
||||
MailAttachmentDetails.CheckoutFailedPosition = 0;
|
||||
status = BriefcaseUtilityHelperFunctions.OverWriteDocument(collectionOfAttachments, collectionOfOriginalAttachments, usersMySite, status, clientContext, web, listItems, defaultContentTypeId);
|
||||
string[] returnedStatus = status.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture));
|
||||
if (ConstantStrings.TRUE == returnedStatus[0])
|
||||
{
|
||||
BriefcaseHelperFunction.DiscardDocumentCheckout(requestObject, allAttachmentUrl);
|
||||
}
|
||||
status = returnedStatus[1];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MatterCenterException customException = new MatterCenterException(TextConstants.ErrorCodeAssignDefaultContentType, TextConstants.ErrorMessageAssignDefaultContentType);
|
||||
throw customException; // Throw will direct to current function's catch block (if present). If not present then it will direct to parent catch block. Parent will be the calling function
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MatterCenterException customException = new MatterCenterException(TextConstants.ErrorCodeCreateSiteContentType, TextConstants.ErrorMessageCreateSiteContentType);
|
||||
throw customException; // Throw will direct to current function's catch block (if present). If not present then it will direct to parent catch block. Parent will be the calling function
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MatterCenterException customException = new MatterCenterException(TextConstants.ErrorCodeCreateSiteColumn, TextConstants.ErrorMessageCreateSiteColumn);
|
||||
throw customException; // Throw will direct to current function's catch block (if present). If not present then it will direct to parent catch block. Parent will be the calling function
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
status += ConstantStrings.Semicolon + usersMySite;
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Uploads the document to matter library.
|
||||
/// </summary>
|
||||
/// <param name="requestObject">Request Object containing SharePoint App Token</param>
|
||||
/// <param name="sourceUrl">URL of the source document</param>
|
||||
/// <param name="documentStream">Content stream of the document</param>
|
||||
/// <param name="versionInfo">The version information.</param>
|
||||
/// <param name="comments">The comments.</param>
|
||||
/// <param name="retainCheckOut">retain check out option</param>
|
||||
/// <returns>Content Type List for the Request Object containing SharePoint App Token</returns>
|
||||
internal static string UploadtoMatter(RequestObject requestObject, string sourceUrl, Stream documentStream, int versionInfo, string comments, bool retainCheckOut)
|
||||
{
|
||||
string status = ConstantStrings.FALSE;
|
||||
string result = ConstantStrings.FALSE;
|
||||
try
|
||||
{
|
||||
if (null != requestObject)
|
||||
{
|
||||
ClientContext clientContext;
|
||||
if (!string.IsNullOrWhiteSpace(sourceUrl) && null != documentStream)
|
||||
{
|
||||
string[] sourceUrlParts = sourceUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture));
|
||||
if (2 == sourceUrlParts.Length)
|
||||
{
|
||||
using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(sourceUrlParts[0]), requestObject.RefreshToken))
|
||||
{
|
||||
Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileByServerRelativeUrl(sourceUrlParts[1]);
|
||||
string documentLibraryName = BriefcaseHelperFunction.getLibraryName(clientContext, file);
|
||||
string contentType = string.Empty;
|
||||
contentType = BriefcaseContentTypeHelperFunctions.ContentTypeByName(requestObject, clientContext, file.Name, sourceUrl, 1, contentType, documentLibraryName);
|
||||
string listContentType = BriefcaseContentTypeHelperFunctions.GetContentTypeList(requestObject, clientContext, sourceUrl, contentType, 1, documentLibraryName);
|
||||
status = BriefcaseContentTypeHelperFunctions.GetContentTypeList(requestObject, clientContext, sourceUrl, contentType, 2, documentLibraryName);
|
||||
FileSaveBinaryInformation fileSaveBinaryInformation = new FileSaveBinaryInformation();
|
||||
fileSaveBinaryInformation.ContentStream = documentStream;
|
||||
file.SaveBinary(fileSaveBinaryInformation);
|
||||
// Check if file is already checked out
|
||||
if (file.CheckOutType == CheckOutType.None)
|
||||
{
|
||||
file.CheckOut();
|
||||
}
|
||||
// Check the type of Check in to be performed
|
||||
switch (versionInfo)
|
||||
{
|
||||
case 0:
|
||||
file.CheckIn(comments, CheckinType.MinorCheckIn);
|
||||
break;
|
||||
case 1:
|
||||
file.CheckIn(comments, CheckinType.MajorCheckIn);
|
||||
break;
|
||||
case 2:
|
||||
file.CheckIn(comments, CheckinType.OverwriteCheckIn);
|
||||
break;
|
||||
}
|
||||
// Load the Stream data for the file
|
||||
clientContext.ExecuteQuery();
|
||||
status = BriefcaseContentTypeHelperFunctions.GetContentTypeList(requestObject, clientContext, sourceUrl, listContentType, 2, documentLibraryName);
|
||||
// Check whether we need to retain checkout
|
||||
if (retainCheckOut)
|
||||
{
|
||||
file.CheckOut();
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
status = string.Concat(ConstantStrings.TRUE, ConstantStrings.Comma, ConstantStrings.Space, file.ServerRelativeUrl);
|
||||
}
|
||||
}
|
||||
result = status;
|
||||
}
|
||||
else
|
||||
{
|
||||
status = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, TextConstants.MissingParametersMessage);
|
||||
result = status;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
status = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
|
||||
result = status;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the checkout operation status.
|
||||
/// </summary>
|
||||
/// <param name="commonResponse">Common response object</param>
|
||||
/// <param name="status">Status of the operation</param>
|
||||
/// <returns>Returns Common response object</returns>
|
||||
internal static CommonResponse CheckoutOperationStatus(CommonResponse commonResponse, string status)
|
||||
{
|
||||
CommonResponse result = null;
|
||||
try
|
||||
{
|
||||
if (ConstantStrings.TRUE == status.Split(ConstantStrings.Comma[0])[0])
|
||||
{
|
||||
commonResponse.FileNames.Add(status.Split(ConstantStrings.Comma[0])[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ServiceConstantStrings.AlreadyCheckOut == status.Split(ConstantStrings.Comma[0])[1])
|
||||
{
|
||||
commonResponse.FileNames.Add(status.Split(ConstantStrings.Comma[0])[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
commonResponse.ErrorMessage += status.Split(ConstantStrings.Comma[0])[1];
|
||||
}
|
||||
}
|
||||
result = commonResponse;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
CommonResponse CheckoutOperationStatusError = new CommonResponse();
|
||||
result = CheckoutOperationStatusError;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the operation status.
|
||||
/// </summary>
|
||||
/// <param name="commonResponse">Common response object</param>
|
||||
/// <param name="status">Status of the operation</param>
|
||||
/// <returns>Returns Common response object</returns>
|
||||
internal static CommonResponse UpdateOperationStatus(CommonResponse commonResponse, string status)
|
||||
{
|
||||
CommonResponse result = null;
|
||||
try
|
||||
{
|
||||
Dictionary<string, object> responseJson = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(status);
|
||||
int code = Convert.ToInt32(responseJson[ConstantStrings.ResponseCode], CultureInfo.InvariantCulture);
|
||||
if (code == 0)
|
||||
{
|
||||
commonResponse.Status.Add(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
commonResponse.Status.Add(false);
|
||||
commonResponse.ErrorMessage += Convert.ToString(responseJson[ConstantStrings.ResponseValue], CultureInfo.InvariantCulture);
|
||||
}
|
||||
result = commonResponse;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
CommonResponse UpdateOperationStatusError = new CommonResponse();
|
||||
result = UpdateOperationStatusError;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Detaches the operation.
|
||||
/// </summary>
|
||||
/// <param name="commonResponse">Common response object</param>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="list">List object</param>
|
||||
/// <param name="listItems">List item collection object</param>
|
||||
/// <returns>Returns Common response object</returns>
|
||||
internal static CommonResponse DetachOperation(CommonResponse commonResponse, ClientContext clientContext, List list, ListItemCollection listItems)
|
||||
{
|
||||
CommonResponse detachOperationResponse = new CommonResponse();
|
||||
try
|
||||
{
|
||||
ContentType targetDocumentSetContentType = BriefcaseContentTypeHelperFunctions.GetContentType(list, clientContext);
|
||||
if (null != targetDocumentSetContentType)
|
||||
{
|
||||
foreach (var listItem in listItems)
|
||||
{
|
||||
listItem[ServiceConstantStrings.OneDriveSiteColumn] = string.Empty;
|
||||
listItem[ConstantStrings.OneDriveContentTypeProperty] = Convert.ToString(targetDocumentSetContentType.Id, CultureInfo.InvariantCulture);
|
||||
listItem.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
commonResponse.Status.Add(true);
|
||||
}
|
||||
detachOperationResponse = commonResponse;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return detachOperationResponse;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the memory stream with specified content.
|
||||
/// </summary>
|
||||
/// <param name="fileContent">Error message to be displayed in file</param>
|
||||
/// <returns>Error file stream with error content</returns>
|
||||
internal static MemoryStream ReturnErrorFile(string fileContent)
|
||||
{
|
||||
MemoryStream result = null;
|
||||
try
|
||||
{
|
||||
byte[] errorMessage = System.Text.Encoding.UTF8.GetBytes(fileContent);
|
||||
MemoryStream mailFile = new MemoryStream(errorMessage);
|
||||
mailFile.Position = 0;
|
||||
WebOperationContext.Current.OutgoingResponse.ContentType = ConstantStrings.MailMediaType;
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Add(ConstantStrings.MailContentDispositionHeader);
|
||||
result = mailFile;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
MemoryStream ReturnErrorFileError = new MemoryStream();
|
||||
result = ReturnErrorFileError;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Discards checkout from the documents
|
||||
/// </summary>
|
||||
/// <param name="requestObject">Request object</param>
|
||||
/// <param name="allAttachmentUrl">List of attachment URL</param>
|
||||
/// <returns>Status of discarding check out</returns>
|
||||
internal static string DiscardDocumentCheckout(RequestObject requestObject, string[] allAttachmentUrl)
|
||||
{
|
||||
int currentCount = 0;
|
||||
string result = ConstantStrings.FALSE;
|
||||
|
||||
try
|
||||
{
|
||||
foreach (string attachmentUrl in allAttachmentUrl)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(attachmentUrl))
|
||||
{
|
||||
MailAttachmentDetails sendDocumentUrl = new MailAttachmentDetails();
|
||||
sendDocumentUrl.FullUrl = attachmentUrl;
|
||||
if (currentCount >= MailAttachmentDetails.CheckoutFailedPosition)
|
||||
{
|
||||
result = DiscardCheckout(requestObject, sendDocumentUrl);
|
||||
}
|
||||
}
|
||||
currentCount++;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
result = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Discard individual document from Matter Center
|
||||
/// </summary>
|
||||
/// <param name="requestObject">Request object</param>
|
||||
/// <param name="mailAttachmentDetails">Attachment object</param>
|
||||
/// <returns>Status of discarding individual document</returns>
|
||||
internal static string DiscardCheckout(RequestObject requestObject, MailAttachmentDetails mailAttachmentDetails)
|
||||
{
|
||||
string result = ConstantStrings.FALSE;
|
||||
ClientContext clientContext;
|
||||
try
|
||||
{
|
||||
using (clientContext = ServiceUtility.GetClientContext(requestObject.SPAppToken, new Uri(mailAttachmentDetails.FullUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0]), requestObject.RefreshToken))
|
||||
{
|
||||
Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileByServerRelativeUrl(mailAttachmentDetails.FullUrl.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[1].TrimEnd(ConstantStrings.Semicolon[0]));
|
||||
clientContext.Load(file);
|
||||
clientContext.ExecuteQuery();
|
||||
if (file.CheckOutType != CheckOutType.None)
|
||||
{
|
||||
file.UndoCheckOut();
|
||||
result = string.Concat(ConstantStrings.TRUE, ConstantStrings.Comma, ConstantStrings.Space, file.Name);
|
||||
}
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
result = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get library title using parent list
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="file">file object of Microsoft.Sharepoint.Client.File</param>
|
||||
/// <returns>Title of the document library</returns>
|
||||
internal static string getLibraryName(ClientContext clientContext, Microsoft.SharePoint.Client.File file)
|
||||
{
|
||||
string result = String.Empty;
|
||||
try
|
||||
{
|
||||
clientContext.Load(file);
|
||||
List documentLibrary = file.ListItemAllFields.ParentList;
|
||||
clientContext.Load(documentLibrary, libraryTitle => libraryTitle.Title);
|
||||
clientContext.ExecuteQuery();
|
||||
result = documentLibrary.Title;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
result = string.Concat(ConstantStrings.FALSE, ConstantStrings.Comma, ConstantStrings.Space, ServiceUtility.RemoveEscapeCharacter(exception.Message));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-swmirj
|
||||
// Created : 04-06-2015
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="BriefcaseUtilityHelperFunctions.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file provides utility methods involved in briefcase operations.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService.CommonHelper
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Legal.MatterCenter.DataLayer;
|
||||
using Microsoft.Legal.MatterCenter.Entity;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
using Microsoft.SharePoint.Client;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Provide utility methods involved in briefcase operations.
|
||||
/// </summary>
|
||||
internal static class BriefcaseUtilityHelperFunctions
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Overwrite document in OneDrive, if already exists (Users MySite Document library).
|
||||
/// </summary>
|
||||
/// <param name="collectionOfAttachments">Collection of documents with data for each document</param>
|
||||
/// <param name="collectionOfOriginalAttachments">Collection of documents with path of source document</param>
|
||||
/// <param name="usersMySite">User's My site URL</param>
|
||||
/// <param name="status">Sets status for Overwrite check</param>
|
||||
/// <param name="clientContext">Client context object for connection between SP & client</param>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="listItems">Object for ListItems Collection</param>
|
||||
/// <param name="defaultContentTypeId">Id of content type</param>
|
||||
///<returns>Returns status of operation to calling function</returns>
|
||||
internal static string OverWriteDocument(Dictionary<string, Stream> collectionOfAttachments, Dictionary<string, string> collectionOfOriginalAttachments, string usersMySite, string status, ClientContext clientContext, Microsoft.SharePoint.Client.Web web, ListItemCollection listItems, string defaultContentTypeId)
|
||||
{
|
||||
string fileNameKey = string.Empty;
|
||||
int documentCount = 0;
|
||||
try
|
||||
{
|
||||
foreach (string key in collectionOfAttachments.Keys)
|
||||
{
|
||||
fileNameKey = key.Split(Convert.ToChar(ConstantStrings.DOLLAR, CultureInfo.InvariantCulture))[0];
|
||||
foreach (ListItem item in listItems)
|
||||
{
|
||||
clientContext.Load(item);
|
||||
clientContext.ExecuteQuery();
|
||||
Folder folder = clientContext.Web.GetFolderByServerRelativeUrl(Convert.ToString(item.FieldValues[ServiceConstantStrings.ColumnNameFileRef], CultureInfo.InvariantCulture));
|
||||
FileCollection files = folder.Files;
|
||||
clientContext.Load(folder);
|
||||
clientContext.Load(files);
|
||||
clientContext.ExecuteQuery();
|
||||
foreach (Microsoft.SharePoint.Client.File file in files)
|
||||
{
|
||||
if (file.Name == fileNameKey)
|
||||
{
|
||||
file.DeleteObject();
|
||||
clientContext.ExecuteQuery();
|
||||
SendDocumentToOneDrive(web, usersMySite, fileNameKey, collectionOfAttachments[key], collectionOfOriginalAttachments[key], defaultContentTypeId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
documentCount++;
|
||||
}
|
||||
clientContext.ExecuteQuery();
|
||||
status = string.Concat(usersMySite, ServiceConstantStrings.OneDriveDocumentLibraryTitle, ConstantStrings.Semicolon, documentCount, ConstantStrings.Semicolon, collectionOfAttachments.Count);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
status = ConstantStrings.TRUE + ConstantStrings.DOLLAR + Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends document to user's OneDrive.
|
||||
/// </summary>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="usersMySite">User's My site URL</param>
|
||||
/// <param name="key">Key parameter</param>
|
||||
/// <param name="collectionOfAttachments">Attachments Collection</param>
|
||||
/// <param name="collectionOfOriginalAttachments">Original attachments collection</param>
|
||||
/// <param name="contentTypeId">Content type id of default content type</param>
|
||||
internal static void SendDocumentToOneDrive(Microsoft.SharePoint.Client.Web web, string usersMySite, string key, Stream collectionOfAttachments, string collectionOfOriginalAttachments, string contentTypeId)
|
||||
{
|
||||
try
|
||||
{
|
||||
Microsoft.SharePoint.Client.File file = web.GetFolderByServerRelativeUrl(string.Concat(usersMySite, ServiceConstantStrings.OneDriveDocumentLibraryTitle, ConstantStrings.ForwardSlash, ServiceConstantStrings.LegalBriefcaseFolder)).Files.Add(new FileCreationInformation()
|
||||
{
|
||||
Url = key,
|
||||
Overwrite = true,
|
||||
ContentStream = collectionOfAttachments
|
||||
});
|
||||
file.ListItemAllFields.ParseAndSetFieldValue(ServiceConstantStrings.OneDriveSiteColumn, collectionOfOriginalAttachments);
|
||||
file.ListItemAllFields[ConstantStrings.OneDriveContentTypeProperty] = contentTypeId;
|
||||
file.ListItemAllFields.Update();
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends new documents to user's OneDrive.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">SP client context</param>
|
||||
/// <param name="collectionOfAttachments">Dictionary object containing attachment URLs and their stream data</param>
|
||||
/// <param name="collectionOfOriginalAttachments">Dictionary object containing attachment URLs</param>
|
||||
/// <param name="allAttachmentUrl">A string array containing all the attachment URLs</param>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="usersMySite">My Site URL of the user</param>
|
||||
/// <param name="defaultContentTypeId">Default content type Id</param>
|
||||
/// <returns>JSON string specifying success or failure for new documents and URL of the files that already exist in the user's OneDrive</returns>
|
||||
internal static string NewDocumentToOneDrive(ClientContext clientContext, Dictionary<string, Stream> collectionOfAttachments, Dictionary<string, string> collectionOfOriginalAttachments, string[] allAttachmentUrl, Microsoft.SharePoint.Client.Web web, string usersMySite, string defaultContentTypeId)
|
||||
{
|
||||
string status = ConstantStrings.FALSE,
|
||||
legalBriefcaseFolderQuery = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.BriefcaseFolderContentsQuery, ServiceConstantStrings.LegalBriefcaseFolder);
|
||||
try
|
||||
{
|
||||
ListItemCollection listItemsColl = Lists.GetData(clientContext, ServiceConstantStrings.OneDriveDocumentLibraryTitle, legalBriefcaseFolderQuery);
|
||||
clientContext.Load(
|
||||
listItemsColl,
|
||||
items => items.Include(
|
||||
item => item.DisplayName,
|
||||
item => item.FileSystemObjectType,
|
||||
item => item.Folder.Files.Include(
|
||||
files => files.Name)));
|
||||
clientContext.ExecuteQuery();
|
||||
status = SendNewDocumentToOneDrive(clientContext, listItemsColl, collectionOfAttachments, collectionOfOriginalAttachments, allAttachmentUrl, web, usersMySite, defaultContentTypeId);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Send new documents to user's OneDrive.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">SP client context</param>
|
||||
/// <param name="listItemsColl">List item collection of Legal Briefcase folder</param>
|
||||
/// <param name="collectionOfAttachments">Dictionary object containing attachment URLs and their stream data</param>
|
||||
/// <param name="collectionOfOriginalAttachments">Dictionary object containing attachment URLs</param>
|
||||
/// <param name="allAttachmentUrl">A string array containing all the attachment URLs</param>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="usersMySite">My Site URL of the user</param>
|
||||
/// <param name="defaultContentTypeId">Default content type Id</param>
|
||||
/// <returns>JSON string specifying success or failure for new documents and URL of the files that already exist in the user's OneDrive</returns>
|
||||
internal static string SendNewDocumentToOneDrive(ClientContext clientContext, ListItemCollection listItemsColl, Dictionary<string, Stream> collectionOfAttachments, Dictionary<string, string> collectionOfOriginalAttachments, string[] allAttachmentUrl, Microsoft.SharePoint.Client.Web web, string usersMySite, string defaultContentTypeId)
|
||||
{
|
||||
string status = ConstantStrings.FALSE;
|
||||
string result = string.Empty;
|
||||
try
|
||||
{
|
||||
status = SendIndividualDocument(clientContext, collectionOfAttachments, listItemsColl, allAttachmentUrl, web, usersMySite, collectionOfOriginalAttachments, defaultContentTypeId, status);
|
||||
result = status;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
result = Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends individual document to OneDrive
|
||||
/// </summary>
|
||||
/// <param name="clientContext">SP client context</param>
|
||||
/// <param name="collectionOfAttachments">Dictionary object containing attachment URLs and their stream data</param>
|
||||
/// <param name="listItemsColl">List item collection of Legal Briefcase folder</param>
|
||||
/// <param name="allAttachmentUrl">A string array containing all the attachment URLs</param>
|
||||
/// <param name="web">Object of site</param>
|
||||
/// <param name="usersMySite">My Site URL of the user</param>
|
||||
/// <param name="collectionOfOriginalAttachments">Dictionary object containing attachment URLs</param>
|
||||
/// <param name="defaultContentTypeId">Default content type Id</param>
|
||||
/// <param name="status">Status of documents sent to OneDrive</param>
|
||||
/// <returns>Status of documents sent to OneDrive</returns>
|
||||
internal static string SendIndividualDocument(ClientContext clientContext, Dictionary<string, Stream> collectionOfAttachments, ListItemCollection listItemsColl, string[] allAttachmentUrl, Microsoft.SharePoint.Client.Web web, string usersMySite, Dictionary<string, string> collectionOfOriginalAttachments, string defaultContentTypeId, string status)
|
||||
{
|
||||
int documentCount = 0, count = 0;
|
||||
string fileNameKey = string.Empty;
|
||||
string overwriteDocumentURLs = string.Empty;
|
||||
foreach (string key in collectionOfAttachments.Keys)
|
||||
{
|
||||
fileNameKey = key.Split(new string[] { ConstantStrings.DOLLAR }, StringSplitOptions.RemoveEmptyEntries)[0];
|
||||
var selectedItems = from li in listItemsColl.Cast<ListItem>()
|
||||
from files in li.Folder.Files
|
||||
where files.Name.ToUpperInvariant() == fileNameKey.ToUpperInvariant()
|
||||
select files;
|
||||
if (selectedItems.FirstOrDefault() != null)
|
||||
{
|
||||
overwriteDocumentURLs += allAttachmentUrl[count] + ConstantStrings.Semicolon;
|
||||
}
|
||||
else
|
||||
{
|
||||
SendDocumentToOneDrive(web, usersMySite, fileNameKey, collectionOfAttachments[key], collectionOfOriginalAttachments[key], defaultContentTypeId);
|
||||
documentCount++;
|
||||
}
|
||||
count++;
|
||||
web.Update();
|
||||
clientContext.ExecuteQuery();
|
||||
MailAttachmentDetails.CheckoutFailedPosition++;
|
||||
status = string.Concat(usersMySite, ServiceConstantStrings.OneDriveDocumentLibraryTitle, ConstantStrings.Semicolon, documentCount, ConstantStrings.Semicolon, collectionOfAttachments.Count, ConstantStrings.Semicolon, overwriteDocumentURLs);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,872 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-akvira
|
||||
// Created : 29-01-2015
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="EditMatterHelperFunctions.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file provides helper methods to update matter properties.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService.HelperClasses
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Legal.MatterCenter.DataLayer;
|
||||
using Microsoft.Legal.MatterCenter.Entity;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
using Microsoft.Security.Application;
|
||||
using Microsoft.SharePoint.Client;
|
||||
using Microsoft.SharePoint.Client.Utilities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Provides helper methods to update matter properties.
|
||||
/// </summary>
|
||||
internal static class EditMatterHelperFunctions
|
||||
{
|
||||
/// <summary>
|
||||
/// Checks if the property exists in property bag. Returns the value for the property from property bag.
|
||||
/// </summary>
|
||||
/// <param name="stampedPropertyValues">Dictionary object containing matter property bag key/value pairs</param>
|
||||
/// <param name="key">Key to check in dictionary</param>
|
||||
/// <returns>Property bag value for </returns>
|
||||
internal static string GetStampPropertyValue(Dictionary<string, object> stampedPropertyValues, string key)
|
||||
{
|
||||
string result = string.Empty;
|
||||
if (stampedPropertyValues.ContainsKey(key))
|
||||
{
|
||||
result = System.Web.HttpUtility.HtmlDecode(Convert.ToString(stampedPropertyValues[key], CultureInfo.InvariantCulture));
|
||||
}
|
||||
|
||||
// This is just to check for null value in key, if exists
|
||||
return (!string.IsNullOrWhiteSpace(result)) ? result : string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves the users assigned to matter.
|
||||
/// </summary>
|
||||
/// <param name="matterCenterUsers">Users tagged with matter in property bag</param>
|
||||
/// <returns>Users assigned to matter</returns>
|
||||
internal static List<List<string>> GetMatterAssignedUsers(string matterCenterUsers)
|
||||
{
|
||||
List<List<string>> matterCenterUserCollection = new List<List<string>>();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(matterCenterUsers))
|
||||
{
|
||||
List<string> userCollection = matterCenterUsers.Split(new string[] { ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
foreach (string userRow in userCollection)
|
||||
{
|
||||
List<string> users = userRow.Split(new string[] { ConstantStrings.Semicolon }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
matterCenterUserCollection.Add(users);
|
||||
}
|
||||
}
|
||||
return matterCenterUserCollection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Extracts matter details from matter library property bag.
|
||||
/// </summary>
|
||||
/// <param name="stampedPropertyValues">Dictionary object containing matter property bag key/value pairs</param>
|
||||
/// <returns>Matter details from matter library property bag</returns>
|
||||
internal static MatterDetails ExtractMatterDetails(Dictionary<string, object> stampedPropertyValues)
|
||||
{
|
||||
MatterDetails matterDetails = new MatterDetails()
|
||||
{
|
||||
PracticeGroup = GetStampPropertyValue(stampedPropertyValues, ServiceConstantStrings.StampedPropertyPracticeGroup),
|
||||
AreaOfLaw = GetStampPropertyValue(stampedPropertyValues, ServiceConstantStrings.StampedPropertyAreaOfLaw),
|
||||
SubareaOfLaw = GetStampPropertyValue(stampedPropertyValues, ServiceConstantStrings.StampedPropertySubAreaOfLaw),
|
||||
ResponsibleAttorney = GetStampPropertyValue(stampedPropertyValues, ServiceConstantStrings.StampedPropertyResponsibleAttorney),
|
||||
TeamMembers = GetStampPropertyValue(stampedPropertyValues, ServiceConstantStrings.StampedPropertyTeamMembers),
|
||||
UploadBlockedUsers = GetStampPropertyValue(stampedPropertyValues, ServiceConstantStrings.StampedPropertyBlockedUploadUsers).Split(new string[] { ConstantStrings.Semicolon }, StringSplitOptions.RemoveEmptyEntries).ToList()
|
||||
};
|
||||
return matterDetails;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches matter library stamped properties.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="libraryName">Library name</param>
|
||||
/// <returns>Stamped properties</returns>
|
||||
internal static PropertyValues FetchMatterStampedProperties(ClientContext clientContext, string libraryName)
|
||||
{
|
||||
PropertyValues stampedProperties = null;
|
||||
try
|
||||
{
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(libraryName))
|
||||
{
|
||||
stampedProperties = clientContext.Web.Lists.GetByTitle(libraryName).RootFolder.Properties;
|
||||
clientContext.Load(stampedProperties);
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw; //// This will transfer control to catch block of parent function.
|
||||
}
|
||||
|
||||
return stampedProperties;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the matter stamped properties with new details for user permissions.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="matterDetails">MatterDetails object</param>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <param name="matterStampedProperties">Matter stamped properties</param>
|
||||
/// <param name="isEditMode">Page opened in edit mode</param>
|
||||
/// <returns>Status of operation</returns>
|
||||
internal static string UpdateMatterStampedProperties(ClientContext clientContext, MatterDetails matterDetails, Matter matter, PropertyValues matterStampedProperties, bool isEditMode)
|
||||
{
|
||||
string result = ConstantStrings.FALSE;
|
||||
try
|
||||
{
|
||||
if (null != clientContext && null != matter && null != matterDetails && (0 < matterStampedProperties.FieldValues.Count))
|
||||
{
|
||||
Dictionary<string, string> propertyList = new Dictionary<string, string>();
|
||||
|
||||
// Get existing stamped properties
|
||||
string stampedUsers = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyMatterCenterUsers);
|
||||
string stampedUserEmails = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyMatterCenterUserEmails);
|
||||
string stampedPermissions = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyMatterCenterPermissions);
|
||||
string stampedRoles = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyMatterCenterRoles);
|
||||
string stampedResponsibleAttorneys = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyResponsibleAttorney);
|
||||
string stampedResponsibleAttorneysEmail = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyResponsibleAttorneyEmail);
|
||||
string stampedTeamMembers = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyTeamMembers);
|
||||
string stampedBlockedUploadUsers = GetStampPropertyValue(matterStampedProperties.FieldValues, ServiceConstantStrings.StampedPropertyBlockedUploadUsers);
|
||||
|
||||
string currentPermissions = string.Join(ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR, matter.Permissions.Where(user => !string.IsNullOrWhiteSpace(user)));
|
||||
string currentRoles = string.Join(ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR, matter.Roles.Where(user => !string.IsNullOrWhiteSpace(user)));
|
||||
string currentBlockedUploadUsers = string.Join(ConstantStrings.Semicolon, matterDetails.UploadBlockedUsers.Where(user => !string.IsNullOrWhiteSpace(user)));
|
||||
string currentUsers = GetMatterAssignedUsers(matter);
|
||||
string currentUserEmails = GetMatterAssignedUsersEmail(clientContext, matter);
|
||||
|
||||
string finalMatterPermissions = string.IsNullOrWhiteSpace(stampedPermissions) || isEditMode ? currentPermissions : string.Concat(stampedPermissions, ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR, currentPermissions);
|
||||
string finalMatterRoles = string.IsNullOrWhiteSpace(stampedRoles) || isEditMode ? currentRoles : string.Concat(stampedRoles, ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR, currentRoles);
|
||||
string finalResponsibleAttorneys = string.IsNullOrWhiteSpace(stampedResponsibleAttorneys) || isEditMode ? matterDetails.ResponsibleAttorney : string.Concat(stampedResponsibleAttorneys, ConstantStrings.Semicolon, matterDetails.ResponsibleAttorney);
|
||||
string finalResponsibleAttorneysEmail = string.IsNullOrWhiteSpace(stampedResponsibleAttorneysEmail) || isEditMode ? matterDetails.ResponsibleAttorneyEmail : string.Concat(stampedResponsibleAttorneysEmail, ConstantStrings.Semicolon, matterDetails.ResponsibleAttorneyEmail);
|
||||
string finalTeamMembers = string.IsNullOrWhiteSpace(stampedTeamMembers) || isEditMode ? matterDetails.TeamMembers : string.Concat(stampedTeamMembers, ConstantStrings.Semicolon, matterDetails.TeamMembers);
|
||||
string finalMatterCenterUsers = string.IsNullOrWhiteSpace(stampedUsers) || isEditMode ? currentUsers : string.Concat(stampedUsers, ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR, currentUsers);
|
||||
string finalMatterCenterUserEmails = string.IsNullOrWhiteSpace(stampedUserEmails) || isEditMode ? currentUserEmails : string.Concat(stampedUserEmails, ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR, currentUserEmails);
|
||||
string finalBlockedUploadUsers = string.IsNullOrWhiteSpace(stampedBlockedUploadUsers) || isEditMode ? currentBlockedUploadUsers : string.Concat(stampedBlockedUploadUsers, ConstantStrings.Semicolon, currentBlockedUploadUsers);
|
||||
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyResponsibleAttorney, Encoder.HtmlEncode(finalResponsibleAttorneys));
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyResponsibleAttorneyEmail, Encoder.HtmlEncode(finalResponsibleAttorneysEmail));
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyTeamMembers, Encoder.HtmlEncode(finalTeamMembers));
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyBlockedUploadUsers, Encoder.HtmlEncode(finalBlockedUploadUsers));
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyMatterCenterRoles, Encoder.HtmlEncode(finalMatterRoles));
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyMatterCenterPermissions, Encoder.HtmlEncode(finalMatterPermissions));
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyMatterCenterUsers, Encoder.HtmlEncode(finalMatterCenterUsers));
|
||||
propertyList.Add(ServiceConstantStrings.StampedPropertyMatterCenterUserEmails, Encoder.HtmlEncode(finalMatterCenterUserEmails));
|
||||
|
||||
Lists.SetPropertBagValuesForList(clientContext, matterStampedProperties, matter.Name, propertyList);
|
||||
result = ConstantStrings.TRUE;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw; //// This will transfer control to catch block of parent function.
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the matter users in a form that can be stamped to library.
|
||||
/// </summary>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <returns>Users that can be stamped</returns>
|
||||
private static string GetMatterAssignedUsers(Matter matter)
|
||||
{
|
||||
string currentUsers = string.Empty;
|
||||
string separator = string.Empty;
|
||||
if (null != matter && 0 < matter.AssignUserNames.Count)
|
||||
{
|
||||
foreach (IList<string> userNames in matter.AssignUserNames)
|
||||
{
|
||||
currentUsers += separator + string.Join(ConstantStrings.Semicolon, userNames.Where(user => !string.IsNullOrWhiteSpace(user)));
|
||||
separator = ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR;
|
||||
}
|
||||
}
|
||||
return currentUsers;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the project users emails in a form that can be stamped to library.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <returns>Users that can be stamped</returns>
|
||||
private static string GetMatterAssignedUsersEmail(ClientContext clientContext, Matter matter)
|
||||
{
|
||||
string currentUsers = string.Empty;
|
||||
string separator = string.Empty;
|
||||
if (null != matter && 0 < matter.AssignUserEmails.Count)
|
||||
{
|
||||
foreach (IList<string> userNames in matter.AssignUserEmails)
|
||||
{
|
||||
List<string> userEmails = new List<string>();
|
||||
if (null != clientContext && null != userNames)
|
||||
{
|
||||
foreach (string userName in userNames)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(userName))
|
||||
{
|
||||
if (ValidationHelperFunctions.ValidateExternalUserInput(userName))
|
||||
{
|
||||
userEmails.Add(userName);
|
||||
}
|
||||
else
|
||||
{
|
||||
User user = clientContext.Web.EnsureUser(userName.Trim());
|
||||
///// Only Fetch the User ID which is required
|
||||
clientContext.Load(user, u => u.Email);
|
||||
clientContext.ExecuteQuery();
|
||||
///// Add the user to the first element of the FieldUserValue array.
|
||||
userEmails.Add(user.Email);
|
||||
}
|
||||
}
|
||||
}
|
||||
currentUsers += separator + string.Join(ConstantStrings.Semicolon, userEmails);
|
||||
separator = ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return currentUsers;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the effective permissions of users present in matter library.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="matterLibrary">Matter library name</param>
|
||||
/// <returns>List permissions</returns>
|
||||
internal static IEnumerable<RoleAssignment> FetchUserPermission(ClientContext clientContext, string matterLibrary)
|
||||
{
|
||||
IEnumerable<RoleAssignment> userPermissionCollection = null;
|
||||
try
|
||||
{
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(matterLibrary))
|
||||
{
|
||||
List list = clientContext.Web.Lists.GetByTitle(matterLibrary);
|
||||
userPermissionCollection = clientContext.LoadQuery(list.RoleAssignments.Include(listRoleAssignment => listRoleAssignment.PrincipalId, listRoleAssignment => listRoleAssignment.Member, listRoleAssignment => listRoleAssignment.Member.Title, listRoleAssignment => listRoleAssignment.Member.PrincipalType, listRoleAssignment => listRoleAssignment.RoleDefinitionBindings.Include(userRoles => userRoles.BasePermissions, userRoles => userRoles.Name, userRoles => userRoles.Id)).Where(listUsers => (PrincipalType.User == listUsers.Member.PrincipalType) || (PrincipalType.SecurityGroup == listUsers.Member.PrincipalType)));
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw; //// This will transfer control to catch block of parent function.
|
||||
}
|
||||
return userPermissionCollection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove old users and assign permissions to new users.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <param name="users">List of users to remove</param>
|
||||
/// <param name="loggedInUserTitle">Title of logged-in user</param>
|
||||
/// <param name="isListItem">ListItem or list</param>
|
||||
/// <param name="listName">List Name</param>
|
||||
/// <param name="matterLandingPageId">List item id</param>
|
||||
/// <param name="isEditMode">Add/ Edit mode</param>
|
||||
/// <returns></returns>
|
||||
internal static string UpdatePermission(ClientContext clientContext, Matter matter, List<string> users, string loggedInUserTitle, bool isListItem, string listName, int matterLandingPageId, bool isEditMode)
|
||||
{
|
||||
bool result = false;
|
||||
try
|
||||
{
|
||||
if (null != clientContext && !string.IsNullOrWhiteSpace(listName))
|
||||
{
|
||||
if (isEditMode)
|
||||
{
|
||||
RemoveSpecificUsers(clientContext, users, loggedInUserTitle, isListItem, listName, matterLandingPageId);
|
||||
}
|
||||
// Add permission
|
||||
if (!isListItem)
|
||||
{
|
||||
result = Lists.SetPermission(clientContext, matter.AssignUserEmails, matter.Permissions, listName);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (0 <= matterLandingPageId)
|
||||
{
|
||||
result = Lists.SetItemPermission(clientContext, matter.AssignUserEmails, ServiceConstantStrings.MatterLandingPageRepositoryName, matterLandingPageId, matter.Permissions);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
// To avoid the invalid symbol error while parsing the JSON, return the response in lower case
|
||||
return Convert.ToString(result, CultureInfo.CurrentCulture).ToLower(CultureInfo.CurrentCulture);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes the users' permission from list or list item.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="usersToRemove">List of users</param>
|
||||
/// <param name="loggedInUserTitle">Title of logged-in user</param>
|
||||
/// <param name="isListItem">ListItem or list</param>
|
||||
/// <param name="listName">Name of the List</param>
|
||||
/// <param name="matterLandingPageId">List item id</param>
|
||||
private static void RemoveSpecificUsers(ClientContext clientContext, List<string> usersToRemove, string loggedInUserTitle, bool isListItem, string listName, int matterLandingPageId)
|
||||
{
|
||||
try
|
||||
{
|
||||
ListItem listItem = null;
|
||||
RoleAssignmentCollection roleCollection = null;
|
||||
Microsoft.SharePoint.Client.Web web = clientContext.Web;
|
||||
List list = web.Lists.GetByTitle(listName);
|
||||
clientContext.Load(list);
|
||||
clientContext.ExecuteQuery();
|
||||
if (0 < usersToRemove.Count)
|
||||
{
|
||||
if (isListItem)
|
||||
{
|
||||
// Fetch the list item
|
||||
if (0 <= matterLandingPageId)
|
||||
{
|
||||
listItem = list.GetItemById(matterLandingPageId);
|
||||
clientContext.Load(listItem, listItemProperties => listItemProperties.RoleAssignments.Include(roleAssignmentProperties => roleAssignmentProperties.Member, roleAssignmentProperties => roleAssignmentProperties.Member.Title, roleAssignmentProperties => roleAssignmentProperties.RoleDefinitionBindings.Include(roleDef => roleDef.Name, roleDef => roleDef.BasePermissions)).Where(listUsers => (PrincipalType.User == listUsers.Member.PrincipalType) || (PrincipalType.SecurityGroup == listUsers.Member.PrincipalType || (PrincipalType.SharePointGroup == listUsers.Member.PrincipalType))));
|
||||
clientContext.ExecuteQuery();
|
||||
roleCollection = listItem.RoleAssignments;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
clientContext.Load(list, listProperties => listProperties.RoleAssignments.Include(roleAssignmentProperties => roleAssignmentProperties.Member, roleAssignmentProperties => roleAssignmentProperties.Member.Title, roleAssignmentProperties => roleAssignmentProperties.RoleDefinitionBindings.Include(roleDef => roleDef.Name, roleDef => roleDef.BasePermissions)).Where(listUsers => (PrincipalType.User == listUsers.Member.PrincipalType) || (PrincipalType.SecurityGroup == listUsers.Member.PrincipalType) || (PrincipalType.SharePointGroup == listUsers.Member.PrincipalType)));
|
||||
clientContext.ExecuteQuery();
|
||||
roleCollection = list.RoleAssignments;
|
||||
}
|
||||
|
||||
if (null != roleCollection && 0 < roleCollection.Count && 0 < usersToRemove.Count)
|
||||
{
|
||||
foreach (string user in usersToRemove)
|
||||
{
|
||||
foreach (RoleAssignment role in roleCollection)
|
||||
{
|
||||
List<RoleDefinition> roleDefinationList = new List<RoleDefinition>();
|
||||
foreach (RoleDefinition roleDef in role.RoleDefinitionBindings)
|
||||
{
|
||||
// Removing permission for all the user except current user with full control
|
||||
// Add those users in list, then traverse the list and removing all users from that list
|
||||
if (PrincipalType.SharePointGroup == role.Member.PrincipalType)
|
||||
{
|
||||
roleDefinationList.Add(roleDef);
|
||||
}
|
||||
else
|
||||
{
|
||||
string email = ((User)role.Member).Email;
|
||||
if (email == user && !((email == loggedInUserTitle) && (roleDef.Name == ConstantStrings.EditMatterAllowedPermissionLevel)))
|
||||
{
|
||||
roleDefinationList.Add(roleDef);
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (RoleDefinition roleDef in roleDefinationList)
|
||||
{
|
||||
role.RoleDefinitionBindings.Remove(roleDef);
|
||||
}
|
||||
role.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
clientContext.ExecuteQuery();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the display name of users having permission on library.
|
||||
/// </summary>
|
||||
/// <param name="userPermissionOnLibrary">Users having permission on library</param>
|
||||
/// <returns></returns>
|
||||
internal static List<string> RetrieveMatterUsers(IEnumerable<RoleAssignment> userPermissionOnLibrary)
|
||||
{
|
||||
List<string> users = new List<string>();
|
||||
try
|
||||
{
|
||||
if (null != userPermissionOnLibrary && 0 < userPermissionOnLibrary.Count())
|
||||
{
|
||||
foreach (RoleAssignment roles in userPermissionOnLibrary)
|
||||
{
|
||||
users.Add(((User)roles.Member).Email);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
return users;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reverts the permission of users from matter, OneNote, Calendar libraries and matter landing page
|
||||
/// </summary>
|
||||
/// <param name="requestObject">Request object</param>
|
||||
/// <param name="client">Client object</param>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="matterRevertListObject">MatterRevertObjectList object</param>
|
||||
/// <param name="loggedInUserTitle">Logged-in user title</param>
|
||||
/// <param name="oldUserPermissions">Old library users</param>
|
||||
/// <param name="matterLandingPageId">List item id</param>
|
||||
/// <param name="isEditMode">Add/ Edit mode</param>
|
||||
/// <returns>Status of operation</returns>
|
||||
internal static string RevertMatterUpdates(RequestObject requestObject, Client client, Matter matter, ClientContext clientContext, MatterRevertList matterRevertListObject, string loggedInUserTitle, IEnumerable<RoleAssignment> oldUserPermissions, int matterLandingPageId, bool isEditMode)
|
||||
{
|
||||
bool result = false;
|
||||
try
|
||||
{
|
||||
if (null != requestObject && null != client && null != matter && null != clientContext && null != matterRevertListObject)
|
||||
{
|
||||
List<string> users = new List<string>();
|
||||
users = matter.AssignUserEmails.SelectMany(user => user).Distinct().ToList();
|
||||
|
||||
// Remove recently added users
|
||||
if (null != matterRevertListObject.MatterLibrary)
|
||||
{
|
||||
RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterLibrary, -1);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterCalendar)
|
||||
{
|
||||
RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterCalendar, -1);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterOneNoteLibrary)
|
||||
{
|
||||
RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterOneNoteLibrary, -1);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterTask)
|
||||
{
|
||||
RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterTask, -1);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterSitePages)
|
||||
{
|
||||
RemoveSpecificUsers(clientContext, users, loggedInUserTitle, true, matterRevertListObject.MatterSitePages, matterLandingPageId);
|
||||
}
|
||||
|
||||
if (isEditMode)
|
||||
{
|
||||
Matter matterRevertUserPermission = PrepareUserPermission(oldUserPermissions);
|
||||
if (null != matterRevertListObject.MatterLibrary)
|
||||
{
|
||||
result = Lists.SetPermission(clientContext, matterRevertUserPermission.AssignUserEmails, matterRevertUserPermission.Permissions, matterRevertListObject.MatterLibrary);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterOneNoteLibrary)
|
||||
{
|
||||
result = Lists.SetPermission(clientContext, matterRevertUserPermission.AssignUserEmails, matterRevertUserPermission.Permissions, matterRevertListObject.MatterOneNoteLibrary);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterCalendar)
|
||||
{
|
||||
result = Lists.SetPermission(clientContext, matterRevertUserPermission.AssignUserEmails, matterRevertUserPermission.Permissions, matterRevertListObject.MatterCalendar);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterTask)
|
||||
{
|
||||
result = Lists.SetPermission(clientContext, matterRevertUserPermission.AssignUserEmails, matterRevertUserPermission.Permissions, matterRevertListObject.MatterTask);
|
||||
}
|
||||
if (null != matterRevertListObject.MatterSitePages && 0 <= matterLandingPageId)
|
||||
{
|
||||
result = Lists.SetItemPermission(clientContext, matterRevertUserPermission.AssignUserEmails, ServiceConstantStrings.MatterLandingPageRepositoryName, matterLandingPageId, matterRevertUserPermission.Permissions);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
}
|
||||
// To avoid the invalid symbol error while parsing the JSON, return the response in lower case
|
||||
return Convert.ToString(result, CultureInfo.CurrentCulture).ToLower(CultureInfo.CurrentUICulture);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the users to remove permission.
|
||||
/// </summary>
|
||||
/// <param name="userPermissions">Users having permission on library</param>
|
||||
/// <returns>Matter object containing user name and permissions</returns>
|
||||
internal static Matter PrepareUserPermission(IEnumerable<RoleAssignment> userPermissions)
|
||||
{
|
||||
Matter matterUserPermission = new Matter();
|
||||
matterUserPermission.AssignUserEmails = new List<IList<string>>();
|
||||
matterUserPermission.Permissions = new List<string>();
|
||||
|
||||
if (null != userPermissions && 0 < userPermissions.Count())
|
||||
{
|
||||
foreach (RoleAssignment userPermission in userPermissions)
|
||||
{
|
||||
foreach (RoleDefinition roleDefinition in userPermission.RoleDefinitionBindings)
|
||||
{
|
||||
matterUserPermission.AssignUserEmails.Add(new List<string> { ((User)userPermission.Member).Email });
|
||||
matterUserPermission.Permissions.Add(roleDefinition.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
return matterUserPermission;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if security group exists in team members list.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <returns>Security group existence</returns>
|
||||
internal static string CheckSecurityGroupInTeamMembers(ClientContext clientContext, Matter matter, IList<string> userId)
|
||||
{
|
||||
string result = ConstantStrings.TRUE;
|
||||
int teamMembersRowCount, securityGroupRowNumber = -1; // Blocked user field has security group
|
||||
List<Tuple<int, Principal>> teamMemberPrincipalCollection = new List<Tuple<int, Principal>>();
|
||||
if (null != clientContext && null != matter && null != matter.AssignUserEmails && null != matter.BlockUserNames)
|
||||
{
|
||||
try
|
||||
{
|
||||
teamMembersRowCount = matter.AssignUserEmails.Count;
|
||||
List<string> blockedUsers = matter.BlockUserNames.Where(user => !string.IsNullOrWhiteSpace(user.Trim())).ToList();
|
||||
if (0 < teamMembersRowCount)
|
||||
{
|
||||
securityGroupRowNumber = -2; // Invalid user
|
||||
for (int iterator = 0; iterator < teamMembersRowCount; iterator++)
|
||||
{
|
||||
List<string> currentRowTeamMembers = matter.AssignUserEmails[iterator].Where(user => !string.IsNullOrWhiteSpace(user.Trim())).ToList();
|
||||
foreach (string teamMember in currentRowTeamMembers)
|
||||
{
|
||||
Principal teamMemberPrincipal = clientContext.Web.EnsureUser(teamMember);
|
||||
clientContext.Load(teamMemberPrincipal, teamMemberPrincipalProperties => teamMemberPrincipalProperties.PrincipalType, teamMemberPrincipalProperties => teamMemberPrincipalProperties.Title);
|
||||
teamMemberPrincipalCollection.Add(new Tuple<int, Principal>(iterator, teamMemberPrincipal));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (0 < blockedUsers.Count)
|
||||
{
|
||||
foreach (string blockedUser in blockedUsers)
|
||||
{
|
||||
Principal teamMemberPrincipal = clientContext.Web.EnsureUser(blockedUser);
|
||||
clientContext.Load(teamMemberPrincipal, teamMemberPrincipalProperties => teamMemberPrincipalProperties.PrincipalType, teamMemberPrincipalProperties => teamMemberPrincipalProperties.Title);
|
||||
teamMemberPrincipalCollection.Add(new Tuple<int, Principal>(-1, teamMemberPrincipal));
|
||||
}
|
||||
}
|
||||
clientContext.ExecuteQuery();
|
||||
foreach (Tuple<int, Principal> teamMemberPrincipal in teamMemberPrincipalCollection)
|
||||
{
|
||||
Principal currentTeamMemberPrincipal = teamMemberPrincipal.Item2;
|
||||
if (currentTeamMemberPrincipal.PrincipalType == PrincipalType.SecurityGroup)
|
||||
{
|
||||
securityGroupRowNumber = teamMemberPrincipal.Item1;
|
||||
result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, ServiceConstantStrings.ErrorCodeSecurityGroupExists, ServiceConstantStrings.ErrorMessageSecurityGroupExists + ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR + userId[securityGroupRowNumber]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, ServiceConstantStrings.IncorrectTeamMembersCode, ServiceConstantStrings.IncorrectTeamMembersMessage + ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR + userId[securityGroupRowNumber]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result = ConstantStrings.FALSE;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks users in team members list.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">ClientContext object</param>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <param name="userId">Id of the user's row</param>
|
||||
/// <returns>Security group existence</returns>
|
||||
internal static string ValidateTeamMembers(ClientContext clientContext, Matter matter, IList<string> userId)
|
||||
{
|
||||
string result = string.Empty;
|
||||
bool isInvalidUser = false;
|
||||
int iCounter = 0, teamMembersRowCount = matter.AssignUserEmails.Count(), iCount = 0;
|
||||
List<Principal> teamMemberPrincipalCollection = new List<Principal>();
|
||||
try
|
||||
{
|
||||
for (iCounter = 0; iCounter < teamMembersRowCount; iCounter++)
|
||||
{
|
||||
IList<string> userList = matter.AssignUserEmails[iCounter].Where(user => !string.IsNullOrWhiteSpace(user.Trim())).ToList();
|
||||
IList<string> userNameList = matter.AssignUserNames[iCounter].Where(user => !string.IsNullOrWhiteSpace(user.Trim())).ToList();
|
||||
foreach (string userName in userList)
|
||||
{
|
||||
Principal teamMemberPrincipal = clientContext.Web.EnsureUser(userName.Trim());
|
||||
clientContext.Load(teamMemberPrincipal, teamMemberPrincipalProperties => teamMemberPrincipalProperties.Title);
|
||||
teamMemberPrincipalCollection.Add(teamMemberPrincipal);
|
||||
}
|
||||
clientContext.ExecuteQuery();
|
||||
//// Check whether the name entered by the user and the name resolved by SharePoint is same.
|
||||
foreach (string teamMember in userNameList)
|
||||
{
|
||||
if (!string.Equals(teamMember.Trim(), teamMemberPrincipalCollection[iCount].Title.Trim(), StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, ServiceConstantStrings.IncorrectTeamMembersCode, ServiceConstantStrings.IncorrectTeamMembersMessage + ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR + userId[iCounter]);
|
||||
isInvalidUser = true;
|
||||
break;
|
||||
}
|
||||
iCount++;
|
||||
}
|
||||
if (isInvalidUser)
|
||||
{
|
||||
break; // To break the outer loop as there is an invalid user
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
result = string.Format(CultureInfo.InvariantCulture, ConstantStrings.ServiceResponse, ServiceConstantStrings.IncorrectTeamMembersCode, ServiceConstantStrings.IncorrectTeamMembersMessage + ConstantStrings.DOLLAR + ConstantStrings.Pipe + ConstantStrings.DOLLAR + userId[iCounter]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches the user name updating the matter.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <returns>Logged-in user name</returns>
|
||||
internal static string GetUserUpdatingMatter(ClientContext clientContext)
|
||||
{
|
||||
string userName = string.Empty;
|
||||
try
|
||||
{
|
||||
Users loggedInUser = UIUtility.GetLoggedInUserDetails(clientContext);
|
||||
userName = loggedInUser.Email;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
return userName;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fetches Matter Name from Matter Stamp properties.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="matterName">Matter Title</param>
|
||||
/// <returns>Matter Name related to Matter Title</returns>
|
||||
internal static string GetMatterName(ClientContext clientContext, string matterName)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
PropertyValues properties = clientContext.Web.Lists.GetByTitle(matterName).RootFolder.Properties;
|
||||
clientContext.Load(properties);
|
||||
clientContext.ExecuteQuery();
|
||||
return properties.FieldValues.ContainsKey(ServiceConstantStrings.StampedPropertyMatterGUID) ? System.Web.HttpUtility.HtmlDecode(Convert.ToString(properties.FieldValues[ServiceConstantStrings.StampedPropertyMatterGUID], CultureInfo.InvariantCulture)) : matterName;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Assign or Remove Full Control base on parameter given.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <param name="loggedInUser">Name of logged in user</param>
|
||||
/// <param name="listItemId">ID of the list item</param>
|
||||
/// <param name="listExists">List of existed list</param>
|
||||
/// <param name="assignFullControl">Flag to determine Assign or Remove Permission</param>
|
||||
/// <param name="hasFullPermission">Flag to determine user has Full Permission or not</param>
|
||||
internal static void AssignRemoveFullControl(ClientContext clientContext, Matter matter, string loggedInUser, int listItemId, List<string> listExists, bool assignFullControl, bool hasFullPermission)
|
||||
{
|
||||
IList<IList<string>> currentUser = new List<IList<string>>();
|
||||
IList<string> currentLoggedInUser = new List<string>() { loggedInUser };
|
||||
currentUser.Add(currentLoggedInUser);
|
||||
|
||||
IList<string> permission = new List<string>() { ConstantStrings.EditMatterAllowedPermissionLevel };
|
||||
|
||||
if (assignFullControl)
|
||||
{
|
||||
//Assign full control to Matter
|
||||
if (listExists.Contains(matter.Name))
|
||||
{
|
||||
Lists.SetPermission(clientContext, currentUser, permission, matter.Name);
|
||||
}
|
||||
//Assign full control to OneNote
|
||||
if (listExists.Contains(matter.Name + ServiceConstantStrings.OneNoteLibrarySuffix))
|
||||
{
|
||||
Lists.SetPermission(clientContext, currentUser, permission, matter.Name + ServiceConstantStrings.OneNoteLibrarySuffix);
|
||||
}
|
||||
// Assign full control to Task list
|
||||
if (listExists.Contains(matter.Name + ServiceConstantStrings.TaskNameSuffix))
|
||||
{
|
||||
Lists.SetPermission(clientContext, currentUser, permission, matter.Name + ServiceConstantStrings.TaskNameSuffix);
|
||||
}
|
||||
//Assign full control to calendar
|
||||
if (listExists.Contains(matter.Name + ServiceConstantStrings.CalendarNameSuffix))
|
||||
{
|
||||
Lists.SetPermission(clientContext, currentUser, permission, matter.Name + ServiceConstantStrings.CalendarNameSuffix);
|
||||
}
|
||||
// Assign full control to Matter Landing page
|
||||
if (0 <= listItemId)
|
||||
{
|
||||
Lists.SetItemPermission(clientContext, currentUser, ServiceConstantStrings.MatterLandingPageRepositoryName, listItemId, permission);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!hasFullPermission)
|
||||
{
|
||||
//Remove full control to Matter
|
||||
if (listExists.Contains(matter.Name))
|
||||
{
|
||||
RemoveFullControl(clientContext, matter.Name, loggedInUser, false, -1);
|
||||
}
|
||||
//Remove full control to OneNote
|
||||
if (listExists.Contains(matter.Name + ServiceConstantStrings.OneNoteLibrarySuffix))
|
||||
{
|
||||
RemoveFullControl(clientContext, matter.Name + ServiceConstantStrings.OneNoteLibrarySuffix, loggedInUser, false, -1);
|
||||
}
|
||||
// Remove full control to Task list
|
||||
if (listExists.Contains(matter.Name + ServiceConstantStrings.TaskNameSuffix))
|
||||
{
|
||||
RemoveFullControl(clientContext, matter.Name + ServiceConstantStrings.TaskNameSuffix, loggedInUser, false, -1);
|
||||
}
|
||||
//Remove full control to calendar
|
||||
if (listExists.Contains(matter.Name + ServiceConstantStrings.CalendarNameSuffix))
|
||||
{
|
||||
RemoveFullControl(clientContext, matter.Name + ServiceConstantStrings.CalendarNameSuffix, loggedInUser, false, -1);
|
||||
}
|
||||
if (0 <= listItemId)
|
||||
{
|
||||
RemoveFullControl(clientContext, ServiceConstantStrings.MatterLandingPageRepositoryName, loggedInUser, true, listItemId);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove Full Permission.
|
||||
/// </summary>
|
||||
/// <param name="clientContext">Client context object</param>
|
||||
/// <param name="listName">Name of the list</param>
|
||||
/// <param name="currentLoggedInUser">Name of logged in User</param>
|
||||
internal static void RemoveFullControl(ClientContext clientContext, string listName, string currentLoggedInUser, bool isListItem, int matterLandingPageId)
|
||||
{
|
||||
ListItem listItem = null;
|
||||
RoleAssignmentCollection roleCollection = null;
|
||||
List list = clientContext.Web.Lists.GetByTitle(listName);
|
||||
clientContext.Load(list);
|
||||
clientContext.ExecuteQuery();
|
||||
if (isListItem)
|
||||
{
|
||||
// Fetch the list item
|
||||
if (0 <= matterLandingPageId)
|
||||
{
|
||||
listItem = list.GetItemById(matterLandingPageId);
|
||||
clientContext.Load(listItem, listProperties => listProperties.RoleAssignments.Include(roleAssignmentProperties => roleAssignmentProperties.Member, roleAssignmentProperties => roleAssignmentProperties.Member.Title, roleAssignmentProperties => roleAssignmentProperties.RoleDefinitionBindings.Include(roleDef => roleDef.Name, roleDef => roleDef.BasePermissions)));
|
||||
clientContext.ExecuteQuery();
|
||||
roleCollection = listItem.RoleAssignments;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
clientContext.Load(list, listProperties => listProperties.RoleAssignments.Include(roleAssignmentProperties => roleAssignmentProperties.Member, roleAssignmentProperties => roleAssignmentProperties.Member.Title, roleAssignmentProperties => roleAssignmentProperties.RoleDefinitionBindings.Include(roleDef => roleDef.Name, roleDef => roleDef.BasePermissions)));
|
||||
clientContext.ExecuteQuery();
|
||||
roleCollection = list.RoleAssignments;
|
||||
}
|
||||
|
||||
|
||||
if (null != roleCollection && 0 < roleCollection.Count)
|
||||
{
|
||||
foreach (RoleAssignment role in roleCollection)
|
||||
{
|
||||
if (role.Member.Title == currentLoggedInUser)
|
||||
{
|
||||
IList<RoleDefinition> roleDefinationList = new List<RoleDefinition>();
|
||||
foreach (RoleDefinition roleDef in role.RoleDefinitionBindings)
|
||||
{
|
||||
if (roleDef.Name == ConstantStrings.EditMatterAllowedPermissionLevel)
|
||||
{
|
||||
roleDefinationList.Add(roleDef);
|
||||
}
|
||||
}
|
||||
foreach (RoleDefinition roleDef in roleDefinationList)
|
||||
{
|
||||
role.RoleDefinitionBindings.Remove(roleDef);
|
||||
}
|
||||
}
|
||||
role.Update();
|
||||
}
|
||||
}
|
||||
clientContext.ExecuteQuery();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check Full Permission for logged in User.
|
||||
/// </summary>
|
||||
/// <param name="AssignUserNames">List of Assigned UserNames</param>
|
||||
/// <param name="Permissions">List of Permission</param>
|
||||
/// <param name="loggedInUserName">Name of logged in User</param>
|
||||
/// <returns>Status of Full Permission</returns>
|
||||
internal static bool CheckFullPermissionInAssignList(IList<IList<string>> assignUserEmails, IList<string> Permissions, string loggedInUserName)
|
||||
{
|
||||
bool result = false;
|
||||
if (null != Permissions && null != assignUserEmails && Permissions.Count == assignUserEmails.Count)
|
||||
{
|
||||
int position = 0;
|
||||
foreach (string roleName in Permissions)
|
||||
{
|
||||
IList<string> AssignUserEmails = assignUserEmails[position];
|
||||
if (!string.IsNullOrWhiteSpace(roleName) && null != AssignUserEmails)
|
||||
{
|
||||
foreach (string user in AssignUserEmails)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(user) && user.Trim().Equals(loggedInUserName.Trim()))
|
||||
{
|
||||
if (roleName == ConstantStrings.EditMatterAllowedPermissionLevel)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
position++;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validates if there is at-least one user with full control in assign list.
|
||||
/// </summary>
|
||||
/// <param name="matter">Matter object</param>
|
||||
/// <returns>Status of Full Control permission</returns>
|
||||
internal static bool ValidateFullControlPermission(Matter matter)
|
||||
{
|
||||
|
||||
bool hasFullConrol = false;
|
||||
if (null != matter && null != matter.Permissions && 0 != matter.Permissions.Count)
|
||||
{
|
||||
hasFullConrol = matter.Permissions.Contains(ConstantStrings.EditMatterAllowedPermissionLevel);
|
||||
}
|
||||
return hasFullConrol;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,174 +0,0 @@
|
|||
// ***********************************************************************
|
||||
// Assembly : Microsoft.Legal.MatterCenter.ProviderService
|
||||
// Author : v-prd
|
||||
// Created : 29-01-2015
|
||||
//
|
||||
// ***********************************************************************
|
||||
// <copyright file="MailHelperFunctions.cs" company="Microsoft">
|
||||
// Copyright (c) . All rights reserved.
|
||||
// </copyright>
|
||||
// <summary>This file provides methods involved in mail functionalities.</summary>
|
||||
// ***********************************************************************
|
||||
namespace Microsoft.Legal.MatterCenter.ProviderService
|
||||
{
|
||||
#region using
|
||||
using Microsoft.Exchange.WebServices.Data;
|
||||
using Microsoft.Legal.MatterCenter.Utility;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.ServiceModel.Web;
|
||||
#endregion
|
||||
/// <summary>
|
||||
/// Provide methods involved in mail functionalities.
|
||||
/// </summary>
|
||||
internal static class MailHelperFunctions
|
||||
{
|
||||
/// <summary>
|
||||
/// Generates the email.
|
||||
/// </summary>
|
||||
/// <param name="collectionOfAttachments">The collection of attachments.</param>
|
||||
/// <returns>Stream Content</returns>
|
||||
internal static Stream GenerateEmail(Dictionary<string, Stream> collectionOfAttachments, string[] documentUrls, bool attachmentFlag)
|
||||
{
|
||||
Stream result = null;
|
||||
try
|
||||
{
|
||||
MemoryStream mailFile = GetMailAsStream(collectionOfAttachments, documentUrls, attachmentFlag);
|
||||
mailFile.Position = 0;
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Clear();
|
||||
WebOperationContext.Current.OutgoingResponse.ContentType = MailHelperFunctions.ReturnExtension(string.Empty);
|
||||
WebOperationContext.Current.OutgoingResponse.ContentLength = mailFile.Length;
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Description: File Transfer");
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition", "attachment; filename=" + ServiceConstantStrings.TempEmailName + DateTime.Now + ConstantStrings.EmailFileExtension);
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Transfer-Encoding: binary");
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Add("Expires: 0");
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Add("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
||||
WebOperationContext.Current.OutgoingResponse.Headers.Add("Pragma: public");
|
||||
result = mailFile;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
Stream mailFile = null;
|
||||
result = mailFile;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Forms the memory stream of the mail with attachments.
|
||||
/// </summary>
|
||||
/// <param name="collectionOfAttachments">Collection of attachments as dictionary</param>
|
||||
/// <returns>Memory stream of the created mail object</returns>
|
||||
internal static MemoryStream GetMailAsStream(Dictionary<string, Stream> collectionOfAttachments, string[] documentUrls, bool attachmentFlag)
|
||||
{
|
||||
MemoryStream result = null;
|
||||
string documentUrl = string.Empty;
|
||||
try
|
||||
{
|
||||
// need to be able to update/configure or get current version of server
|
||||
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
|
||||
//// can use on premise exchange server credentials with service.UseDefaultCredentials = true, or explicitly specify the admin account (set default to false)
|
||||
service.Credentials = new WebCredentials(ConfigurationManager.AppSettings["Mail_Cart_Mail_User_Name"], ConfigurationManager.AppSettings["Mail_Cart_Mail_Password"]);
|
||||
service.Url = new Uri(ServiceConstantStrings.ExchangeServiceURL);
|
||||
Microsoft.Exchange.WebServices.Data.EmailMessage email = new Microsoft.Exchange.WebServices.Data.EmailMessage(service);
|
||||
email.Subject = TextConstants.MailCartMailSubject;
|
||||
|
||||
if (attachmentFlag)
|
||||
{
|
||||
email.Body = new MessageBody(TextConstants.MailCartMailBody);
|
||||
foreach (KeyValuePair<string, Stream> mailAttachment in collectionOfAttachments)
|
||||
{
|
||||
if (null != mailAttachment.Value)
|
||||
{
|
||||
// Remove the date time string before adding the file as an attachment
|
||||
email.Attachments.AddFileAttachment(mailAttachment.Key.Split('$')[0], mailAttachment.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int index = 0;
|
||||
foreach (string currentURL in documentUrls)
|
||||
{
|
||||
if (null != currentURL && 0 < currentURL.Length)
|
||||
{
|
||||
string[] currentAssets = currentURL.Split('$');
|
||||
string documentURL = ServiceConstantStrings.SiteURL + currentAssets[1];
|
||||
string documentName = currentAssets[2];
|
||||
|
||||
documentUrl = string.Concat(documentUrl, string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.SendAsEmailFormat, ++index, documentName, documentURL));
|
||||
}
|
||||
}
|
||||
documentUrl = string.Format(CultureInfo.InvariantCulture, ServiceConstantStrings.SendAsEmailFontStyle, documentUrl);
|
||||
email.Body = new MessageBody(documentUrl);
|
||||
}
|
||||
//// This header allows us to open the .eml in compose mode in outlook
|
||||
email.SetExtendedProperty(new ExtendedPropertyDefinition(DefaultExtendedPropertySet.InternetHeaders, "X-Unsent", MapiPropertyType.String), "1");
|
||||
email.Save(WellKnownFolderName.Drafts); // must save draft in order to get MimeContent
|
||||
email.Load(new PropertySet(EmailMessageSchema.MimeContent));
|
||||
MimeContent mimcon = email.MimeContent;
|
||||
//// Do not make the StylCop fixes for MemoryStream here
|
||||
MemoryStream fileContents = new MemoryStream();
|
||||
fileContents.Write(mimcon.Content, 0, mimcon.Content.Length);
|
||||
fileContents.Position = 0;
|
||||
result = fileContents;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
|
||||
MemoryStream fileContents = new MemoryStream();
|
||||
result = fileContents;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// Gets the file content type based on specified extensions.
|
||||
/// </summary>
|
||||
/// <param name="fileExtension">Extension of the file</param>
|
||||
/// <returns>File content type</returns>
|
||||
internal static string ReturnExtension(string fileExtension)
|
||||
{
|
||||
string result = string.Empty;
|
||||
switch (fileExtension)
|
||||
{
|
||||
case ".txt":
|
||||
result = "text/plain";
|
||||
break;
|
||||
case ".doc":
|
||||
result = "application/ms-word";
|
||||
break;
|
||||
case ".xls":
|
||||
result = "application/vnd.ms-excel";
|
||||
break;
|
||||
case ".gif":
|
||||
result = "image/gif";
|
||||
break;
|
||||
case ".jpg":
|
||||
case "jpeg":
|
||||
result = "image/jpeg";
|
||||
break;
|
||||
case ".bmp":
|
||||
result = "image/bmp";
|
||||
break;
|
||||
case ".wav":
|
||||
result = "audio/wav";
|
||||
break;
|
||||
case ".ppt":
|
||||
result = "application/mspowerpoint";
|
||||
break;
|
||||
case ".dwg":
|
||||
result = "image/vnd.dwg";
|
||||
break;
|
||||
default:
|
||||
result = "application/octet-stream";
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче