//****************************************************************************************************** // RecordOperationAttribute.cs - Gbtc // // Copyright © 2016, Grid Protection Alliance. All Rights Reserved. // // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See // the NOTICE file distributed with this work for additional information regarding copyright ownership. // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may // not use this file except in compliance with the License. You may obtain a copy of the License at: // // http://opensource.org/licenses/MIT // // Unless agreed to in writing, the subject software distributed under the License is distributed on an // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the // License for the specific language governing permissions and limitations. // // Code Modification History: // ---------------------------------------------------------------------------------------------------- // 02/26/2016 - J. Ritchie Carroll // Generated original version of source code. // //****************************************************************************************************** using System; namespace GSF.Data.Model { /// /// Record operations for modeled tables. /// public enum RecordOperation { /// /// Operation for getting record count. /// QueryRecordCount, /// /// Operation for retrieving paged records. /// QueryRecords, /// /// Operation for deleting records. /// /// /// Delete rights should be derived from methods marked with this operation. /// DeleteRecord, /// /// Operation for creating a new record, i.e., instantiating a new modeled table record instance. /// CreateNewRecord, /// /// Operation for adding records. /// /// /// Add rights should be derived from methods marked with this operation. /// AddNewRecord, /// /// Operation for updating records. /// /// /// Update rights should be derived from methods marked with this operation. /// UpdateRecord } /// /// Defines an attribute that marks a method as a specific for a modeled table. /// [AttributeUsage(AttributeTargets.Method)] public sealed class RecordOperationAttribute : Attribute { /// /// Gets or sets of modeled table. /// public Type ModelType { get; } /// /// Gets or sets the method represents. /// public RecordOperation Operation { get; } /// /// Creates a new /// /// The of modeled table. /// The the method represents. public RecordOperationAttribute(Type modelType, RecordOperation operation) { ModelType = modelType; Operation = operation; } } }