From 4689672a3c9b062cfdcf6fc2f5f1383dbe90c8ab Mon Sep 17 00:00:00 2001 From: binod Date: Thu, 2 Mar 2017 00:34:35 +0545 Subject: [PATCH] Refactoring. --- Controllers/Reports/ShiftController.cs | 1 - Controllers/Services/AttachmentController.cs | 6 + Controllers/Setup/EducationLevelController.cs | 1 - Controllers/Setup/EmployeeTypeController.cs | 1 - .../Setup/EmploymentStatusController.cs | 1 - Controllers/Setup/ExitTypeController.cs | 1 - .../Setup/IdentificationTypeController.cs | 1 - Controllers/Setup/JobTitleController.cs | 1 - Controllers/Setup/LeaveBenefitController.cs | 1 - Controllers/Setup/LeaveTypeController.cs | 1 - Controllers/Setup/MaritalStatusController.cs | 1 - Controllers/Setup/NationalityController.cs | 1 - Controllers/Setup/OfficeHourController.cs | 1 - Controllers/Setup/PayGradeController.cs | 1 - Controllers/Setup/ShiftController.cs | 1 - Controllers/Setup/SocialNetworkController.cs | 1 - Controllers/Tasks/AttendanceController.cs | 1 - Controllers/Tasks/ContractController.cs | 1 - Controllers/Tasks/EmployeesController.cs | 7 - Controllers/Tasks/ExitController.cs | 1 - .../Tasks/LeaveApplicationController.cs | 1 - Controllers/Tasks/ResignationController.cs | 1 - Controllers/Tasks/TerminationController.cs | 1 - .../ContractVerificationController.cs | 2 - .../ExitVerificationController.cs | 2 - .../LeaveApplicationVerificationController.cs | 2 - .../ResignationVerificationController.cs | 2 - .../TerminationVerificationController.cs | 2 - MixERP.HRM.csproj | 4 + Views/web.config | 2 +- packages.config | 1 + .../MvcDonutCaching.1.3.0.nupkg | Bin 0 -> 42959 bytes .../DevTrends.MvcDonutCaching.README.txt | 6 + .../content/Views/web.config.transform | 9 + .../lib/net40/DevTrends.MvcDonutCaching.XML | 917 ++++++++++++++++++ .../lib/net40/DevTrends.MvcDonutCaching.dll | Bin 0 -> 35840 bytes .../lib/net40/DevTrends.MvcDonutCaching.pdb | Bin 0 -> 95744 bytes web.config | 22 +- 38 files changed, 955 insertions(+), 50 deletions(-) create mode 100644 packages/MvcDonutCaching.1.3.0/MvcDonutCaching.1.3.0.nupkg create mode 100644 packages/MvcDonutCaching.1.3.0/content/DevTrends.MvcDonutCaching.README.txt create mode 100644 packages/MvcDonutCaching.1.3.0/content/Views/web.config.transform create mode 100644 packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.XML create mode 100644 packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.dll create mode 100644 packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.pdb diff --git a/Controllers/Reports/ShiftController.cs b/Controllers/Reports/ShiftController.cs index 8e42831..1f21d17 100644 --- a/Controllers/Reports/ShiftController.cs +++ b/Controllers/Reports/ShiftController.cs @@ -8,7 +8,6 @@ namespace MixERP.HRM.Controllers.Reports public class AttendanceReportController : DashboardController { [Route("dashboard/hrm/reports/attendances")] - [RestrictAnonymous] [MenuPolicy] public ActionResult Index() { diff --git a/Controllers/Services/AttachmentController.cs b/Controllers/Services/AttachmentController.cs index a93c133..3bc8c16 100644 --- a/Controllers/Services/AttachmentController.cs +++ b/Controllers/Services/AttachmentController.cs @@ -1,17 +1,21 @@ using System.Net; using System.Web.Mvc; +using System.Web.UI; using Frapid.Areas; +using Frapid.Areas.Authorization; using Frapid.Areas.Conventions.Attachments; using Frapid.Framework.Extensions; using Frapid.WebsiteBuilder; using Serilog; using Frapid.Areas.CSRF; +using Frapid.Areas.Caching; namespace MixERP.HRM.Controllers.Services { [AntiForgery] public class AttachmentController : FrapidController { + [RestrictAnonymous] [Route("dashboard/hrm/services/attachments")] [HttpPost] public ActionResult Post() @@ -35,7 +39,9 @@ public ActionResult Post() } } + [RestrictAnonymous] [Route("dashboard/hrm/services/attachments/{*path}")] + [FrapidOutputCache(ProfileName = "StaticFile.xml", Location = OutputCacheLocation.Client)] public ActionResult AttachmentResult(string path) { int width = this.Request.QueryString["width"].To(); diff --git a/Controllers/Setup/EducationLevelController.cs b/Controllers/Setup/EducationLevelController.cs index 51e9e9a..87f9720 100644 --- a/Controllers/Setup/EducationLevelController.cs +++ b/Controllers/Setup/EducationLevelController.cs @@ -8,7 +8,6 @@ namespace MixERP.HRM.Controllers.Setup { public class EducationLevelController : DashboardController { - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] [Route("dashboard/hrm/setup/education-levels")] diff --git a/Controllers/Setup/EmployeeTypeController.cs b/Controllers/Setup/EmployeeTypeController.cs index e7a66d7..d85d9a7 100644 --- a/Controllers/Setup/EmployeeTypeController.cs +++ b/Controllers/Setup/EmployeeTypeController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class EmployeeTypeController : DashboardController { [Route("dashboard/hrm/setup/employee-types")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/EmploymentStatusController.cs b/Controllers/Setup/EmploymentStatusController.cs index 231699b..2b80723 100644 --- a/Controllers/Setup/EmploymentStatusController.cs +++ b/Controllers/Setup/EmploymentStatusController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class EmploymentStatusController : DashboardController { [Route("dashboard/hrm/setup/employment-statuses")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/ExitTypeController.cs b/Controllers/Setup/ExitTypeController.cs index 1adfc2a..8b26466 100644 --- a/Controllers/Setup/ExitTypeController.cs +++ b/Controllers/Setup/ExitTypeController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class ExitTypeController : DashboardController { [Route("dashboard/hrm/setup/exit-types")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/IdentificationTypeController.cs b/Controllers/Setup/IdentificationTypeController.cs index 3a10d35..c2fae08 100644 --- a/Controllers/Setup/IdentificationTypeController.cs +++ b/Controllers/Setup/IdentificationTypeController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class IdentificationTypeController : DashboardController { [Route("dashboard/hrm/setup/identification-types")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/JobTitleController.cs b/Controllers/Setup/JobTitleController.cs index 2ee7d81..2adf2e8 100644 --- a/Controllers/Setup/JobTitleController.cs +++ b/Controllers/Setup/JobTitleController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class JobTitleController : DashboardController { [Route("dashboard/hrm/setup/job-titles")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/LeaveBenefitController.cs b/Controllers/Setup/LeaveBenefitController.cs index 028fcc8..50897fc 100644 --- a/Controllers/Setup/LeaveBenefitController.cs +++ b/Controllers/Setup/LeaveBenefitController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class LeaveBenefitController : DashboardController { [Route("dashboard/hrm/setup/leave-benefits")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/LeaveTypeController.cs b/Controllers/Setup/LeaveTypeController.cs index 2d725cb..5f2cf27 100644 --- a/Controllers/Setup/LeaveTypeController.cs +++ b/Controllers/Setup/LeaveTypeController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class LeaveTypeController : DashboardController { [Route("dashboard/hrm/setup/leave-types")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/MaritalStatusController.cs b/Controllers/Setup/MaritalStatusController.cs index 4666623..78cef88 100644 --- a/Controllers/Setup/MaritalStatusController.cs +++ b/Controllers/Setup/MaritalStatusController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class MaritalStatusController : DashboardController { [Route("dashboard/hrm/setup/marital-statuses")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/NationalityController.cs b/Controllers/Setup/NationalityController.cs index 9b22886..33a0187 100644 --- a/Controllers/Setup/NationalityController.cs +++ b/Controllers/Setup/NationalityController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class NationalityController : DashboardController { [Route("dashboard/hrm/setup/nationalities")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/OfficeHourController.cs b/Controllers/Setup/OfficeHourController.cs index 7e10aab..2a0487e 100644 --- a/Controllers/Setup/OfficeHourController.cs +++ b/Controllers/Setup/OfficeHourController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class OfficeHourController : DashboardController { [Route("dashboard/hrm/setup/office-hours")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/PayGradeController.cs b/Controllers/Setup/PayGradeController.cs index 3acc748..495389b 100644 --- a/Controllers/Setup/PayGradeController.cs +++ b/Controllers/Setup/PayGradeController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class PayGradeController : DashboardController { [Route("dashboard/hrm/setup/pay-grades")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/ShiftController.cs b/Controllers/Setup/ShiftController.cs index 5c53dba..20d11df 100644 --- a/Controllers/Setup/ShiftController.cs +++ b/Controllers/Setup/ShiftController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class ShiftController : DashboardController { [Route("dashboard/hrm/setup/shifts")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Setup/SocialNetworkController.cs b/Controllers/Setup/SocialNetworkController.cs index cfd905f..8deb8e2 100644 --- a/Controllers/Setup/SocialNetworkController.cs +++ b/Controllers/Setup/SocialNetworkController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Setup public class SocialNetworkController : DashboardController { [Route("dashboard/hrm/setup/social-networks")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Tasks/AttendanceController.cs b/Controllers/Tasks/AttendanceController.cs index 5755b97..e6ac34a 100644 --- a/Controllers/Tasks/AttendanceController.cs +++ b/Controllers/Tasks/AttendanceController.cs @@ -15,7 +15,6 @@ namespace MixERP.HRM.Controllers.Tasks public class AttendanceController : DashboardController { [Route("dashboard/hrm/tasks/attendance")] - [RestrictAnonymous] [MenuPolicy] public async Task IndexAsync() { diff --git a/Controllers/Tasks/ContractController.cs b/Controllers/Tasks/ContractController.cs index ed764f9..f0aad29 100644 --- a/Controllers/Tasks/ContractController.cs +++ b/Controllers/Tasks/ContractController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Tasks public class ContractController : DashboardController { [Route("dashboard/hrm/tasks/contracts")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Tasks/EmployeesController.cs b/Controllers/Tasks/EmployeesController.cs index 22d1bc6..eccf226 100644 --- a/Controllers/Tasks/EmployeesController.cs +++ b/Controllers/Tasks/EmployeesController.cs @@ -12,7 +12,6 @@ namespace MixERP.HRM.Controllers.Tasks public class EmployeeController: DashboardController { [Route("dashboard/hrm/tasks/employees")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() @@ -21,7 +20,6 @@ public ActionResult Index() } [Route("dashboard/hrm/tasks/employees/experiences")] - [RestrictAnonymous] [MenuPolicy(OverridePath = "/dashboard/hrm/tasks/employees")] [ScrudFactory] public ActionResult DisplayExpriences() @@ -30,7 +28,6 @@ public ActionResult DisplayExpriences() } [Route("dashboard/hrm/tasks/employees/identification-details")] - [RestrictAnonymous] [MenuPolicy(OverridePath = "/dashboard/hrm/tasks/employees")] [ScrudFactory] public ActionResult DisplayIdentificationDetails() @@ -39,7 +36,6 @@ public ActionResult DisplayIdentificationDetails() } [Route("dashboard/hrm/tasks/employees/leave-application")] - [RestrictAnonymous] [MenuPolicy(OverridePath = "/dashboard/hrm/tasks/employees")] [ScrudFactory] public ActionResult DisplayLeaveApplication() @@ -48,7 +44,6 @@ public ActionResult DisplayLeaveApplication() } [Route("dashboard/hrm/tasks/employees/qualifications")] - [RestrictAnonymous] [MenuPolicy(OverridePath = "/dashboard/hrm/tasks/employees")] [ScrudFactory] public ActionResult DisplayQualifications() @@ -57,7 +52,6 @@ public ActionResult DisplayQualifications() } [Route("dashboard/hrm/tasks/employees/social-networks")] - [RestrictAnonymous] [MenuPolicy(OverridePath = "/dashboard/hrm/tasks/employees")] [ScrudFactory] public ActionResult DisplaySocialNetworks() @@ -66,7 +60,6 @@ public ActionResult DisplaySocialNetworks() } [Route("dashboard/hrm/tasks/employee-info/{employeeId}")] - [RestrictAnonymous] [MenuPolicy(OverridePath = "/dashboard/hrm/tasks/employees")] public async Task EmployeeInfoAsync(int employeeId) { diff --git a/Controllers/Tasks/ExitController.cs b/Controllers/Tasks/ExitController.cs index 5337ba0..e40b612 100644 --- a/Controllers/Tasks/ExitController.cs +++ b/Controllers/Tasks/ExitController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Tasks public class ExitController : DashboardController { [Route("dashboard/hrm/tasks/exits")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Tasks/LeaveApplicationController.cs b/Controllers/Tasks/LeaveApplicationController.cs index ce0a73a..fd60058 100644 --- a/Controllers/Tasks/LeaveApplicationController.cs +++ b/Controllers/Tasks/LeaveApplicationController.cs @@ -8,7 +8,6 @@ namespace MixERP.HRM.Controllers.Tasks public class LeaveApplicationController : DashboardController { [Route("dashboard/hrm/tasks/leave-applications")] - [RestrictAnonymous] [MenuPolicy] public ActionResult Index() { diff --git a/Controllers/Tasks/ResignationController.cs b/Controllers/Tasks/ResignationController.cs index c451f7e..c754d35 100644 --- a/Controllers/Tasks/ResignationController.cs +++ b/Controllers/Tasks/ResignationController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Tasks public class ResignationController : DashboardController { [Route("dashboard/hrm/tasks/resignations")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Tasks/TerminationController.cs b/Controllers/Tasks/TerminationController.cs index af7cd39..b656ba6 100644 --- a/Controllers/Tasks/TerminationController.cs +++ b/Controllers/Tasks/TerminationController.cs @@ -9,7 +9,6 @@ namespace MixERP.HRM.Controllers.Tasks public class TerminationController : DashboardController { [Route("dashboard/hrm/tasks/terminations")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() diff --git a/Controllers/Verifications/ContractVerificationController.cs b/Controllers/Verifications/ContractVerificationController.cs index ada13f6..151e8e9 100644 --- a/Controllers/Verifications/ContractVerificationController.cs +++ b/Controllers/Verifications/ContractVerificationController.cs @@ -17,7 +17,6 @@ namespace MixERP.HRM.Controllers.Verifications public class ContractVerificationController : DashboardController { [Route("dashboard/hrm/verification/contracts")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() @@ -26,7 +25,6 @@ public ActionResult Index() } [Route("dashboard/hrm/verification/contracts")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] [HttpPut] diff --git a/Controllers/Verifications/ExitVerificationController.cs b/Controllers/Verifications/ExitVerificationController.cs index 8f16c8d..6dfe4f7 100644 --- a/Controllers/Verifications/ExitVerificationController.cs +++ b/Controllers/Verifications/ExitVerificationController.cs @@ -17,7 +17,6 @@ namespace MixERP.HRM.Controllers.Verifications public class ExitVerificationController : DashboardController { [Route("dashboard/hrm/verification/exits")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() @@ -26,7 +25,6 @@ public ActionResult Index() } [Route("dashboard/hrm/verification/exits")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] [HttpPut] diff --git a/Controllers/Verifications/LeaveApplicationVerificationController.cs b/Controllers/Verifications/LeaveApplicationVerificationController.cs index 8c3aa1e..4da0562 100644 --- a/Controllers/Verifications/LeaveApplicationVerificationController.cs +++ b/Controllers/Verifications/LeaveApplicationVerificationController.cs @@ -17,7 +17,6 @@ namespace MixERP.HRM.Controllers.Verifications public class LeaveApplicationVerificationController : DashboardController { [Route("dashboard/hrm/verification/leave-applications")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() @@ -26,7 +25,6 @@ public ActionResult Index() } [Route("dashboard/hrm/verification/leave-applications")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] [HttpPut] diff --git a/Controllers/Verifications/ResignationVerificationController.cs b/Controllers/Verifications/ResignationVerificationController.cs index a26e6a8..9b1fdda 100644 --- a/Controllers/Verifications/ResignationVerificationController.cs +++ b/Controllers/Verifications/ResignationVerificationController.cs @@ -17,7 +17,6 @@ namespace MixERP.HRM.Controllers.Verifications public class ResignationVerificationController : DashboardController { [Route("dashboard/hrm/verification/resignations")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() @@ -26,7 +25,6 @@ public ActionResult Index() } [Route("dashboard/hrm/verification/resignations")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] [HttpPut] diff --git a/Controllers/Verifications/TerminationVerificationController.cs b/Controllers/Verifications/TerminationVerificationController.cs index ca8b9b1..3272aa3 100644 --- a/Controllers/Verifications/TerminationVerificationController.cs +++ b/Controllers/Verifications/TerminationVerificationController.cs @@ -17,7 +17,6 @@ namespace MixERP.HRM.Controllers.Verifications public class TerminationVerificationController : DashboardController { [Route("dashboard/hrm/verification/terminations")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] public ActionResult Index() @@ -26,7 +25,6 @@ public ActionResult Index() } [Route("dashboard/hrm/verification/terminations")] - [RestrictAnonymous] [MenuPolicy] [ScrudFactory] [HttpPut] diff --git a/MixERP.HRM.csproj b/MixERP.HRM.csproj index d885f3f..0c55e1d 100644 --- a/MixERP.HRM.csproj +++ b/MixERP.HRM.csproj @@ -43,6 +43,10 @@ 4 + + packages\MvcDonutCaching.1.3.0\lib\net40\DevTrends.MvcDonutCaching.dll + True + False ..\..\bin\Frapid.ApplicationState.dll diff --git a/Views/web.config b/Views/web.config index ce72ef0..e83b716 100644 --- a/Views/web.config +++ b/Views/web.config @@ -25,7 +25,7 @@ - + diff --git a/packages.config b/packages.config index 0e75e71..1a709f4 100644 --- a/packages.config +++ b/packages.config @@ -6,5 +6,6 @@ + \ No newline at end of file diff --git a/packages/MvcDonutCaching.1.3.0/MvcDonutCaching.1.3.0.nupkg b/packages/MvcDonutCaching.1.3.0/MvcDonutCaching.1.3.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..093f469ac84d08a4984de95ebf7951f6623204bd GIT binary patch literal 42959 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 V9|zqn0005{y@96VWWiPGe*nvBOAP=3 literal 0 HcmV?d00001 diff --git a/packages/MvcDonutCaching.1.3.0/content/DevTrends.MvcDonutCaching.README.txt b/packages/MvcDonutCaching.1.3.0/content/DevTrends.MvcDonutCaching.README.txt new file mode 100644 index 0000000..aff5999 --- /dev/null +++ b/packages/MvcDonutCaching.1.3.0/content/DevTrends.MvcDonutCaching.README.txt @@ -0,0 +1,6 @@ +Getting started with DevTrends.MvcDonutCaching +---------------------------------------------- + +Find out how to use DevTrends.MvcDonutCaching by visiting https://github.com/moonpyk/mvcdonutcaching + +Please report all bugs and feature requests on GitHub. diff --git a/packages/MvcDonutCaching.1.3.0/content/Views/web.config.transform b/packages/MvcDonutCaching.1.3.0/content/Views/web.config.transform new file mode 100644 index 0000000..51e0a64 --- /dev/null +++ b/packages/MvcDonutCaching.1.3.0/content/Views/web.config.transform @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.XML b/packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.XML new file mode 100644 index 0000000..16179b0 --- /dev/null +++ b/packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.XML @@ -0,0 +1,917 @@ + + + + DevTrends.MvcDonutCaching + + + + + Gets or sets the action name. + + + The action's name. + + + + + Gets or sets the controller name. + + + The the controller name. + + + + + Gets or sets the route values. + + + The route values. + + + + + Implementations should serialize as string the specified action settings. + + The action settings. + A string representing the given + + + + Implementations should deserializes the specified serialized action settings. + + The serialized action settings. + An object + + + + Implementations should set the cache headers for the HTTP response given . + + The HTTP response. + The cache settings. + + + + Sets the cache headers for the HTTP response given . + + The HTTP response. + The cache settings. + + + + Gets or sets content type. + + + The content type. + + + + + Gets or sets the content to be cached. + + + The content. + + + + + Gets or sets a value indicating whether the cache is enabled. + + + true if cache is enabled otherwise, false. + + + + + Gets or sets the cache duration. + + + The cache duration. + + + + + Gets or sets the VaryByParam cache parameter. + + + The VaryByParam cache parameter. + + + + + Gets or sets the VaryByCustom cache parameter. + + + The VaryByCustom cache parameter. + + + + + Gets or sets the output cache location. + + + The output cache location. + + + + + Gets or sets a value indicating whether store or not the result. + + + true if no store; otherwise, false. + + + + + Gets or sets the output cache options. + + + The output cache options. + + + + + Gets a value indicating whether the server caching is enabled. + + + true if the server caching enabled; otherwise, false. + + + + + Implementations should return the output cache provider settings. + + A instance. + + + + Implementation should return an output cache profile for the asked . + + Name of the cache profile. + A instance. + + + + Implementation should return a value indicating whether caching is globally enabled. + + + true if caching is globally enabled; otherwise, false. + + + + + Implementations should encrypt the specified plain text. + + The plain text. + An encrypted representation of + + + + Implementations should Decrypt the specified encrypted text. + + The encrypted text. + The original text + + + + Implementations should remove a single output cache entry for the specified controller and action. + + The name of the controller that contains the action method. + The name of the controller action method. + + + + Implementations should remove a single output cache entry for the specified controller, action and parameters. + + The name of the controller that contains the action method. + The name of the controller action method. + An object that contains the parameters for a route. + + + + Implementations should remove a single output cache entry for the specified controller, action and parameters. + + The name of the controller that contains the action method. + The name of the controller action method. + A dictionary that contains the parameters for a route. + + + + Implementations should remove all output cache entries. + + + + + Implementations should remove all output cache entries for the specified controller. + + The name of the controller. + + + + Implementations should remove all output cache entries for the specified controller and action. + + The name of the controller that contains the action method. + The name of the controller action method. + + + + Implementations should remove all output cache entries for the specified controller, action and parameters. + + The name of the controller that contains the action method. + The name of the controller action method. + A dictionary that contains the parameters for a route. + + + + Implementations should add the given in the cache. + + The cache key to add. + The cache item to add. + The cache item UTC expiry date and time. + + + + Implementations should retrieve a cache item the given the . + + The key. + A instance on cache hit, null otherwise. + + + + Implentations should remove the donut hole wrappers. + + The content. + The filter context. + The output cache options. + A donut hole wrapper free string + + + + Replaces the donut holes content of with fresh content. + + The content. + The filter context. + The output cache options. + A string containing the donut holes replaced by content. + + + + Implementations should generate a key given the and . + + The controller context. + The cache settings. + A string that can be used as an output cache key + + + + Called before an action method executes. + + The filter context. + + + + Called after an action result executes. + + The filter context. + + + + Builds the cache settings. + + + + The 'duration' attribute must have a value that is greater than or equal to zero. + + + + + Executes the callback. + + The context. + if set to true [has errors]. + + + + Gets or sets the cache duration, in seconds. + + + + + Gets or sets the vary-by-param value. + + + + + Gets or sets the vary-by-custom value. + + + + + Gets or sets the cache profile name. + + + + + Gets or sets the location. + + + + + Gets or sets a value that indicates whether to store the cache. + + + + + Get or sets the for this attributes. Specifying a value here will + make the value ignored. + + + + + Invokes the specified child action method and returns the result as an HTML string. + + The HTML helper instance that this method extends. + The name of the action method to invoke. + A flag that determines whether the action should be excluded from any parent cache. + The child action result as an HTML string. + + + + Invokes the specified child action method using the specified parameters and returns the result as an HTML string. + + The HTML helper instance that this method extends. + The name of the action method to invoke. + An object that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + The child action result as an HTML string. + + + + Invokes the specified child action method using the specified parameters and returns the result as an HTML string. + + The HTML helper instance that this method extends. + The name of the action method to invoke. + A dictionary that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + The child action result as an HTML string. + + + + Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string. + + The HTML helper instance that this method extends. + The name of the action method to invoke. + The name of the controller that contains the action method. + A flag that determines whether the action should be excluded from any parent cache. + The child action result as an HTML string. + + + + Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string. + + The HTML helper instance that this method extends. + The name of the action method to invoke. + The name of the controller that contains the action method. + An object that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + The child action result as an HTML string. + + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + + The HTML helper instance that this method extends. + The name of the child action method to invoke. + A flag that determines whether the action should be excluded from any parent cache. + + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + + The HTML helper instance that this method extends. + The name of the child action method to invoke. + A dictionary that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + + The HTML helper instance that this method extends. + The name of the child action method to invoke. + A dictionary that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + + The HTML helper instance that this method extends. + The name of the child action method to invoke. + The name of the controller that contains the action method. + A flag that determines whether the action should be excluded from any parent cache. + + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + + The HTML helper instance that this method extends. + The name of the child action method to invoke. + The name of the controller that contains the action method. + A dictionary that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + + + + Invokes the specified child action method using the specified parameters and controller name and renders the result inline in the parent view. + + The HTML helper instance that this method extends. + The name of the child action method to invoke. + The name of the controller that contains the action method. + A dictionary that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + + + + Invokes the specified child action method using the specified parameters and controller name and returns the result as an HTML string. + + The HTML helper instance that this method extends. + The name of the action method to invoke. + The name of the controller that contains the action method. + A dictionary that contains the parameters for a route. You can use routeValues to provide the parameters that are bound to the action method parameters. The routeValues parameter is merged with the original route values and overrides them. + A flag that determines whether the action should be excluded from any parent cache. + The child action result as an HTML string. + + + + Implementations should build a cache key given . + + Name of the controller. + + + + + Implementations should build a cache key given the and . + + Name of the controller. + Name of the action. + + + + Builds a cache key given the , and . + + Name of the controller. + Name of the action. + The route values. + + + + Implementations should build a cache key fragment for given . + + The route value to process. + + + + Specifies the default value for the + + + + + Removes a single output cache entry for the specified controller and action. + + The name of the controller that contains the action method. + The name of the controller action method. + + + + Removes a single output cache entry for the specified controller, action and parameters. + + The name of the controller that contains the action method. + The name of the controller action method. + An object that contains the parameters for a route. + + + + Removes a single output cache entry for the specified controller, action and parameters. + + The name of the controller that contains the action method. + The name of the controller action method. + A dictionary that contains the parameters for a route. + + + + Removes all output cache entries. + + + + + Removes all output cache entries for the specified controller. + + The name of the controller. + + + + Removes all output cache entries for the specified controller and action. + + The name of the controller that contains the action method. + The name of the controller action method. + + + + Removes all output cache entries for the specified controller, action and parameters. + + The name of the controller that contains the action method. + The name of the controller action method. + An object that contains the parameters for a route. + + + + Removes all output cache entries for the specified controller, action and parameters. + + The name of the controller that contains the action method. + The name of the controller action method. + A dictionary that contains the parameters for a route. + + + + No matter what, never use the query string parameters to generate the cache key name + + + + + No matter what, never use the POST data to generate the cache key name + + + + + If the request is a POST, don't lookup for a cached result, execute the the result normally, + caching it for subsequent GET (or any other non POST verb). + + + + + Replace donuts in child actions, may affect performance but needed if you intent to have nested + donut holes in child actions + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + public class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + public class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + public class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + +
+
diff --git a/packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.dll b/packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.dll new file mode 100644 index 0000000000000000000000000000000000000000..29d30be5cbab42ddca74f0049a855d41939a7c84 GIT binary patch literal 35840 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 L|2hBPkHG%|0M{zQ literal 0 HcmV?d00001 diff --git a/packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.pdb b/packages/MvcDonutCaching.1.3.0/lib/net40/DevTrends.MvcDonutCaching.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ec0bb593088f32ad96d8398480e875fff151867e GIT binary patch literal 95744 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 + - - + + - - + + - - + + - - + + - - + +