Changelog 6.1.1 - 6.1.2

From Sense/Net Wiki
Jump to: navigation, search

This page contains the changes in Sense/Net between versions 6.1.1.3829 and 6.1.2.4073

Download Sense/Net ECM 6.1.2 Community Edition: http://www.sensenet.com/download

Features

  • Workflows can be configured to start automatically in a content list
  • Office protocol auto checkout: webdav can be configured in web.config to checkout files automatically upon open, and checkin automatically on close.
  • Resource editing mode is now determined by a cookie and can be switched on using the PRC
  • Content list view: if there is no Name or DisplayName field among the selected columns, the first column will contain the action menu in the grid
  • Main scenario can be provided for a content list view
  • Client dialog button feature and its first implementation: Reject button
  • Commandbuttons: button captions can be set/overridden via control properties
  • Survey is able to jump to specific pages according to a selected option even if it is an extra (user defined) value
  • CSV export in content list: content type fields are displayed first than list fields at the end; all ordered by FieldIndex
  • Currency field allows using negative values and provides cleaner values when the user adds new currency field to a list
  • Simple service content for handling client scenarios where only a light content info is needed
  • Edit view links are added to the content picker editor part control. This lets the user navigate directly to the edit page of the selected view
  • Demo
    • Expense claim workflows start automatically
    • Expense claim and approval demo workflows expect a reject reason if the admin wants to reject the content

Configuration changes

  • Handlers and modules configuration settings are merged to system.webserver configuration section of the web.config
  • Client cache max age is raised to one week in case of image and flash file types
  • Default values added for maxAllowedContentLength / maxRequestLength to allow upload of 100MB files via webdav
  • Actions and Scenarios are not registered in the web.config anymore

Resolved bugs

  • Office protocol fix: xlsx files are editable after checkout, just like docx files
  • JS/CSS file cache fix: explore showed outdated content for js and css files. now explore frame is always refreshed for js, css, png, jpg, jpeg, gif and swf files
  • Application end: Nullreference exception eliminated in Global.asax
  • WorkflowNotificationObserver can run even if indexing is switched off
  • Date picker control: valid datetime format description is corrected
  • Resource editor: if client based culture is enabled, resource editor will always display the current UI culture language plus any culture that is in the resource files
  • Results from ResourceHandler are now cacheable
  • Bundling works together correctly with the resource script
  • Checkin comments are sanitized in verision history view
  • CommandButtons: save button visibility corrected in case of rejected and draft content (CheckOutSaveCheckin button is displayed)
  • Application.ActionTypeName property can be overridden in the content repository using an ApplicationOverride content
  • Content delete portlet: only removes the name of the deleted content from the end of the original url
  • Content list loading during content initialization is executed with an administrator to ensure that the content gets all the necessary fields defined on the list
  • Reference and longtext field values are removed prior to list field deletion
  • Content Explorer search works even if ExploreFrame returns lowercase content path
  • ContentList: Nullreference exception was thrown on Forms after a CTD has been modified if the form was already filled previously once
  • Delete method for deleting multiple nodes in one round by id list is fixed
  • ShortText field default regular expression, mind/max length, and Number field min/max value settings are empty by default
  • Number field control returns null value instead of 0 when the control is left empty
  • Hyperlink field link mode works in list and browse views
  • Site.StartPage can be any kind of content under the Site
  • Lifespan management: when the ValidTill field is empty (the datetime min value), the content item will appear at the ValidFrom date and will never disappear
  • Multiple actions and un-encoded backurl parameter fix: in case of comma separated actions in the url, we use the first one.
  • We are able to handle empty files that are uploaded or added through webdav
  • After a content was deleted using the Delete action invoked from itself, redirect to the parent (with Explore action if needed)
  • Demo
    • Public registration approval task views created to enable approving the registration task without related content
    • Expense claim workflow task can be approved or rejected on the browse page
    • Expense claim workflow creates an approve task that is in an active state
    • Draft expense claims view displays the locked claims too
    • Expense claim rejection time frame set to 10 minutes from 1 minute
    • Permissions granted for demo users
    • Expense claim workspace list and info views display only the necessary links

Breaking changes

  • If you developed a custom Scenario class before, please check the Scenario article about how to upgrade the code to the latest version.
  • Currency field: we use specific cultures to format currency values in lists. This affects previously defined currency content list fields
  • Image field: we removed the setting on the UI that allowed users to save the image to the repository. Previously added images are preserved and will be moved to the binary field when the content is edited.

Content and File changes

Content Repository

Add

  • /Root/(apps)/Survey/
    • Explore.aspx
    • Explore.Content
    • Explore.PersonalizationSettings
  • /Root/ContentTemplates/CustomList/CustomList/
    • Views.Content
  • /Root/ContentTemplates/CustomList/CustomList/Views/
    • Default.ascx
    • Default.ascx.Content
    • Flat.ascx
    • Flat.ascx.Content
    • Recent.ascx
    • Recent.ascx.Content
  • /Root/ContentTemplates/DocumentWorkspace/Document_Workspace/Tasks/Views/
    • MyTasks.Content
  • /Root/ContentTemplates/ProjectWorkspace/Project_Workspace/Tasks/Views/
    • MyTasks.Content
  • /Root/ContentTemplates/SalesWorkspace/Sales_Workspace/Tasks/Views/
    • MyTasks.Content
  • /Root/ContentTemplates/TaskList/Tasks/Views/
    • MyTasks.Content
  • /Root/Global/celltemplates/
    • AssignedTo.ascx
    • CurrencyField.ascx
    • HyperLinkField.ascx
  • /Root/Global/contentviews/
    • ExpenseClaim.Content
    • ExpenseClaimItem.Content
  • /Root/Global/contentviews/ApprovalWorkflowTask/
    • InlineEdit.ascx
    • InlineEdit.ascx.Content
    • RegistrationBrowse.ascx
    • RegistrationBrowse.ascx.Content
    • RegistrationEdit.ascx
    • RegistrationEdit.ascx.Content
  • /Root/Global/contentviews/ExpenseClaim/
    • BrowseSimple.ascx
    • BrowseSimple.ascx.Content
    • InlineEdit.ascx
    • InlineEdit.ascx.Content
    • InlineNew.ascx
    • InlineNew.ascx.Content
  • /Root/Global/contentviews/ExpenseClaimItem/
    • Browse.ascx
    • Browse.ascx.Content
    • InlineEdit.ascx
    • InlineEdit.ascx.Content
    • InlineNew.ascx
    • InlineNew.ascx.Content
  • /Root/Global/contentviews/ExpenseClaimWorkflowTask/
    • InlineEdit.ascx
    • InlineEdit.ascx.Content
  • /Root/Global/images/icons/32/
    • sn-prc-resource-editor.png
  • /Root/Localization/
    • ExpenseClaimResources.Content
    • ExpenseClaimResources.xml
  • /Root/Sites/Default_Site/infos/
    • expenseclaiminfo.Content
  • /Root/Sites/Default_Site/Publicregistration/Tasks
    • (apps).Content
  • /Root/Sites/Default_Site/Publicregistration/Tasks/(apps)/ApprovalWorkflowTask/
    • Browse.aspx
    • Browse.Content
    • Browse.PersonalizationSettings
    • Edit.aspx
    • Edit.Content
    • Edit.PersonalizationSettings
  • /Root/Sites/Default_Site/workspaces/Document/londondocumentworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Document/losangelesdocumentworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Document/romedocumentworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/(apps)/ExpenseClaim/
    • Publish.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Expense-Claims/
    • CellTemplates.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Expense-Claims/CellTemplates/
    • Amount.ascx
    • Sum.ascx
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Project/budapestprojectworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Project/madridprojectworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Project/pragueprojectworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Sales/chicagosalesworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Sales/dubaisalesworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/Sites/Default_Site/workspaces/Sales/tokiosalesworkspace/Tasks/Views/
    • MyTasks.Content
  • /Root/System/Schema/ContentTypes/
    • CustomListItemCtd.xml
  • /Root/System/SystemPlugins/Controls/
    • RejectDialog.ascx
  • /Root/System/SystemPlugins/ListView/
    • ExpenseClaimItemViewFrame.ascx

Edit

  • /Root/(apps)/ContentList/
    • ManageViews.Content
    • Settings.Content
  • /Root/(apps)/GenericContent/
    • Approve.Content
    • Browse.Content
    • CheckIn.Content
    • Delete.Content
    • Edit.Content
    • Publish.Content
  • /Root/(apps)/Survey/
    • edit_templates.Content
    • manage_questions.Content
  • /Root/ContentTemplates/CustomList/
    • CustomList.Content
  • /Root/ContentTemplates/DocumentWorkspace/Document_Workspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/ContentTemplates/ProjectWorkspace/Project_Workspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/ContentTemplates/SalesWorkspace/Sales_Workspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/ContentTemplates/TaskList/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Global/celltemplates/
    • ContentToApprove.ascx
    • CreatedBy.ascx
    • ModifiedBy.ascx
  • /Root/Global/contentviews/ApprovalWorkflow/
    • AssignWorkflow.ascx
  • /Root/Global/contentviews/ApprovalWorkflowTask/
    • Browse.ascx
  • /Root/Global/contentviews/Article/
    • InlineEdit.ascx
    • InlineNew.ascx
  • /Root/Global/contentviews/ExpenseClaimWorkflow/
    • AssignWorkflow.ascx
    • StartWorkflow.ascx
  • /Root/Global/contentviews/ExpenseClaimWorkflowTask/
    • Browse.ascx
  • /Root/Global/contentviews/User/
    • InlineEdit.ascx
    • InLineNew.ascx
  • /Root/Global/fieldcontroltemplates/HyperLink/
    • BrowseTemplate.ascx
    • EditTemplate.ascx
  • /Root/Global/fieldcontroltemplates/Image/
    • EditTemplate.ascx
  • /Root/Global/fieldcontroltemplates/Name/
    • EditTemplate.ascx
  • /Root/Global/pagetemplates
    • sn-layout-intra-blog.html
    • sn-layout-intra-blog.html.Content
  • /Root/Global/renderers/
    • NewVersions.ascx
  • /Root/Global/scripts/sn/
    • SN.ContentName.js
    • SN.ExploreTree.js
    • SN.Picker.js
    • SN.Rating.js
    • SN.WebDav.js
  • /Root/Global/styles/
    • widgets.css
  • /Root/Localization/
    • ActionResources.xml
    • FieldEditorResources.xml
    • PortalRemoteControlResources.xml
    • PortalResources.xml
    • SurveyResources.xml
  • /Root/Sites/Default_Site/(apps)/DiscussionForum/
    • Add.Content
  • /Root/Sites/Default_Site/(apps)/ExpenseClaim/
    • Browse.Content
    • Browse.PersonalizationSettings
  • /Root/Sites/Default_Site/features/
    • discussion-area.Content
  • /Root/Sites/Default_Site/features/(apps)/DiscussionForum/
    • Add.Content
  • /Root/Sites/Default_Site/NewsDemo/(apps)/Article/
    • Edit.Content
  • /Root/Sites/Default_Site/workspaces/
    • Other.Content
  • /Root/Sites/Default_Site/workspaces/Document/londondocumentworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Document/losangelesdocumentworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Document/romedocumentworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Other/
    • expenseclaimworkspace.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/(apps)/TaskList/
    • Browse.Content
    • Browse.PersonalizationSettings
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/(apps)/This/
    • Browse.Content
    • Browse.PersonalizationSettings
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Expense-Claims/(apps)/This/
    • Browse.aspx
    • Browse.Content
    • Browse.PersonalizationSettings
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Expense-Claims/Amsterdam-Trip/
    • Flight-Bills.Content
    • Hotel-Bills.Content
    • Phone-Bills.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Expense-Claims/London-Trip/
    • Drink-Bills.Content
    • Food-Bills.Content
    • Taxi-Bills.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Expense-Claims/Views/
    • Approved.ascx.Content
    • Drafts.ascx.Content
    • ExpenceClaimItemView.ascx.Content
    • Pending.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Expense-Claims/WorkflowTemplates/
    • MyExpenseClaimWorkflow.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Groups/
    • Owners.Content
  • /Root/Sites/Default_Site/workspaces/Other/expenseclaimworkspace/Tasks/Views/
    • Approvable.ascx.Content
    • Completed.ascx.Content
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Project/budapestprojectworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Project/madridprojectworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Project/pragueprojectworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Sales/chicagosalesworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Sales/dubaisalesworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Sites/Default_Site/workspaces/Sales/tokiosalesworkspace/Tasks/Views/
    • Deadlines.ascx.Content
    • Default.ascx.Content
  • /Root/Skins/sensenet/styles/
    • skin.css
  • /Root/System/Schema/ContentTypes/
    • ApprovalWorkflowTaskCtd.xml
    • ExpenseClaimCtd.xml
    • ExpenseClaimItemCtd.xml
    • ExpenseClaimWorkflowTaskCtd.xml
    • GenericContentCtd.xml
    • ListViewCtd.xml
    • SiteCtd.xml
    • WorkflowCtd.xml
  • /Root/System/SystemPlugins/Controls/
    • PermissionEditor.ascx
  • /Root/System/SystemPlugins/ListView/
    • ManageFields.ascx
    • ManageSurvey.ascx
    • SurveyViewFrame.ascx
  • /Root/System/SystemPlugins/ListView/Templates/
    • ListView.xslt
  • /Root/System/SystemPlugins/Portlets/ContentApproval/
    • Approval.ascx
  • /Root/System/SystemPlugins/Portlets/ContentHistory/
    • History.ascx
  • /Root/System/SystemPlugins/Rating/
    • RatingHoverPanel.ascx
  • /Root/System/WebRoot/
    • prc.ascx
  • /Root/System/Workflows/
    • ApprovalWorkflow.xaml
    • ExpenseClaimWorkflow.xaml
  • /Root/YourContents/
    • features.Content
    • footer-links.Content

Delete

  • /Root/ContentTemplates/CustomList/
    • Views.Content
  • /Root/ContentTemplates/CustomList/Views/
    • Default.ascx
    • Default.ascx.Content
    • Flat.ascx
    • Flat.ascx.Content
    • Recent.ascx
    • Recent.ascx.Content
  • /Root/System/WebRoot/
    • Resources.ashx
    • Resources.ashx.Content

Source code

Add

  • /References
    • Microsoft.Data.Edm.dll
    • Microsoft.Data.OData.dll
    • Microsoft.Data.Services.Client.dll
    • Microsoft.Data.Services.dll
    • System.Spatial.dll
  • /Source/SenseNet/ContentRepository/
    • ContentRepository.cd
    • ExpenseClaimItem.cs
  • /Source/SenseNet/Portal/ApplicationModel/
    • ExpenseClaimPublishAction.cs
    • ScenarioAttribute.cs
  • /Source/SenseNet/Portal/OData/
    • DSPDataService.cs
    • DSPLinqQuery.cs
    • DSPLinqQueryProvider.cs
    • DSPMetadata.cs
    • DSPMethodTranslatingVisitor.cs
    • DSPResourceQueryProvider.cs
    • JSONPSupportBehavior.cs
    • OData.cs
    • ODataContent.cs
    • ODataContext.cs
    • ODataService.cs
    • ResourcePropertyAnnotation.cs
    • ResourceTypeAnnotation.cs
    • TypeSystem.cs
  • /Source/SenseNet/Portal/Resources/
    • ResourceScripter.cs
  • /Source/SenseNet/Portal/UI/Controls/
    • ClientDialogButton.cs
    • RejectButton.cs
    • VersioningActionEventArgs.cs
  • /Source/SenseNet/Services/ContentStore/
    • SimpleServiceContent.cs
  • /Source/SenseNet/WebSite/
    • OData.svc

Edit

  • /Source/SenseNet/
    • sensenet.vsmdi
  • /Source/SenseNet/ContentRepository/
    • Content.cs
    • ContentList.cs
    • ContentRepository.csproj
    • Field.cs
  • /Source/SenseNet/ContentRepository/ApplicationModel/
    • ActionFactory.cs
    • Application.cs
    • ApplicationStorage.cs
  • /Source/SenseNet/ContentRepository/Fields/
    • CurrencyField.cs
    • CurrencyFieldSetting.cs
    • HyperLinkFieldSetting.cs
    • RatingField.cs
    • ShortTextFieldSetting.cs
    • SurveyRule.cs
    • TextFieldSetting.cs
  • /Source/SenseNet/ContentRepository/i18n/
    • SenseNetResourceManager.cs
  • /Source/SenseNet/ContentRepository/Schema/
    • FieldSetting.cs
    • FieldSettingContent.cs
  • /Source/SenseNet/ContentRepository/Search/
    • LucQuery.cs
  • /Source/SenseNet/ContentRepository/Search/Indexing/
    • PerFieldIndexingInfo.cs
  • /Source/SenseNet/Messaging/
    • Configuration.cs
    • NotificationHandler.cs
  • /Source/SenseNet/Portal/
    • Global.cs
    • Portal.csproj
    • Site.cs
  • /Source/SenseNet/DirectoryServices
    • ADProvider.cs
  • /Source/SenseNet/Portal/ApplicationModel/
    • AddFieldScenario.cs
    • GenericScenario.cs
    • HttpActionManager.cs
    • ListActionsScenario.cs
    • ListItemScenario.cs
    • NewsApprovingScenario.cs
    • NewScenario.cs
    • ScenarioManager.cs
    • SettingsScenario.cs
    • SurveyScenario.cs
    • SurveySettingsScenario.cs
    • ViewsScenario.cs
    • VotingAddFieldScenario.cs
    • VotingSettingsScenario.cs
    • WorkspaceActionsScenario.cs
  • /Source/SenseNet/Portal/Dws/
    • FppHandler.cs
  • /Source/SenseNet/Portal/Handlers/
    • ExportToCSVApplication.cs
  • /Source/SenseNet/Portal/PortletFramework/
    • ContentPickerEditorPartField.cs
    • PortalActionLinkResolver.cs
    • SNWebPartChrome.cs
    • ViewPickerEditorPartField.cs
  • /Source/SenseNet/Portal/Resources/
    • ResourceEditorController.cs
    • ResourceHandler.cs
  • /Source/SenseNet/Portal/UI/
    • ContentView.cs
    • SNScriptDependencyCache.cs
  • /Source/SenseNet/Portal/UI/Bundling/
    • Bundle.cs
    • BundleCacheInvalidator.cs
    • BundleHandler.cs
  • /Source/SenseNet/Portal/UI/ContentListViews/
    • ViewManager.cs
  • /Source/SenseNet/Portal/UI/ContentListViews/Handlers/
    • ListView.cs
  • /Source/SenseNet/Portal/UI/Controls/
    • ActionButton.cs
    • CommandButtons.cs
    • GenericFieldControl.cs
    • RateControl.cs
    • RateControl.js
    • Upload.js
  • /Source/SenseNet/Portal/UI/Controls/Captcha/
    • CaptchaControl.cs
  • /Source/SenseNet/Portal/UI/Controls/FieldControls/
    • Currency.cs
    • DatePicker.cs
    • HyperLink.cs
    • Image.cs
    • Number.cs
    • SurveyRuleEditor.cs
    • SurveyRuleUserControl.cs
  • /Source/SenseNet/Portal/Virtualization/
    • PortalContext.cs
    • PortalContextModule.cs
  • /Source/SenseNet/Portal/WebDAV/
    • Config.cs
    • Get.cs
    • Lock.cs
    • Options.cs
    • Put.cs
    • UnLock.cs
    • WebDavHandler.cs
  • /Source/SenseNet/Portlets/CorePortlets/
    • FieldDeletePortlet.cs
  • /Source/SenseNet/Portlets/CorePortlets/ContentOperations/
    • AssignWorkflowPortlet.cs
    • ContentApprovalPortlet.cs
    • ContentDeletePortlet.cs
  • /Source/SenseNet/Portlets/CorePortlets/Notification/
    • NotificationDeletePortlet.cs
    • NotificationEditorPortlet.cs
  • /Source/SenseNet/Portlets/CorePortlets/Workflow/
    • ApprovePortlet.cs
  • /Source/SenseNet/Services/
    • Services.csproj
  • /Source/SenseNet/Services/ContentStore/
    • ContentStoreController.cs
  • /Source/SenseNet/Storage/
    • DataBackingStore.cs
    • Node.cs
    • NodeData.cs
    • Storage.csproj
  • /Source/SenseNet/Storage/Events/
    • NodeEvent.cs
  • /Source/SenseNet/Storage/Schema/
    • NodeType.cs
  • /Source/SenseNet/Tests/
    • NodeTest.cs
  • /Source/SenseNet/Tests/Schema/
    • ContentInstallTest.cs
    • FieldSettingTest.cs
  • /Source/SenseNet/Tests/Search/
    • LuceneTests.cs
  • /Source/SenseNet/Tools/TestPad/
    • App.config
  • /Source/SenseNet/WebSite/
    • Web.config
    • WebSite.csproj
  • /Source/SenseNet/WF/
    • ApprovalWorkflow.xaml
    • ExpenseClaimWorkflow.xaml
  • /Source/SenseNet/WFD/
    • RejectContentDesigner.xaml
  • /Source/SenseNet/Workflow/
    • RegistrationWorkflow.cs
    • WorkflowHandlerBase.cs
    • WorkflowNotificationObserver.cs
  • /Source/SenseNet/Workflow/Activities/
    • RejectContent.cs

Delete

  • /Source/SenseNet/Storage/Events/
    • CancellableNodeEvent.cs

Related links