//****************************************************************************************************** // InitialValueAttribute.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: // ---------------------------------------------------------------------------------------------------- // 01/30/2016 - J. Ritchie Carroll // Generated original version of source code. // //****************************************************************************************************** using System; using System.ComponentModel; namespace GSF.ComponentModel.DataAnnotations { /// /// Defines an attribute that will define an initial value script for a modeled table field /// that will get evaluated and assigned in the target use environment, e.g., Javascript. /// /// /// /// Example to set initial value to 30 days from now using a Javascript expression: /// [InitialValueScript("(new Date()).addDays(30)")] /// /// /// Note that the should be used to set any constant values /// for new modeled record instances and the should /// be used for applying any needed server-side run-time expression defaults, either of these will /// get assigned when using the function. /// The is used to initialize the property value using /// an expression that gets evaluated in the target environment. /// /// [AttributeUsage(AttributeTargets.Property)] public sealed class InitialValueScriptAttribute : Attribute { /// /// Gets the initial value expression for a modeled table field. /// /// /// Expression should be in target language, e.g., Javascript. /// public string InitialValueScript { get; } /// /// Creates a new / /// /// Initial value expression for a modeled table field. public InitialValueScriptAttribute(string initialValueScript) { InitialValueScript = initialValueScript; } } }