//******************************************************************************************************
// ApplicationRole.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/27/2016 - J. Ritchie Carroll
// Generated original version of source code.
//
//******************************************************************************************************
using System;
using System.ComponentModel.DataAnnotations;
using GSF.ComponentModel;
using GSF.ComponentModel.DataAnnotations;
using GSF.Data.Model;
namespace GSF.Security.Model
{
///
/// Model for ApplicationRole table.
///
[PrimaryLabel("Name")]
[GetRoles("Administrator")]
[ViewOnly]
public class ApplicationRole
{
///
/// Unique application role ID field.
///
[PrimaryKey(true)]
public Guid ID { get; set; }
///
/// Name field.
///
[Required]
[StringLength(200)]
public string Name { get; set; }
///
/// Description field.
///
public string Description { get; set; }
///
/// Node ID field.
///
public Guid NodeID { get; set; }
///
/// Created on field.
///
[DefaultValueExpression("DateTime.UtcNow")]
public DateTime CreatedOn { get; set; }
///
/// Created by field.
///
[Required]
[StringLength(200)]
[DefaultValueExpression("UserInfo.CurrentUserID")]
public string CreatedBy { get; set; }
///
/// Updated on field.
///
[DefaultValueExpression("this.CreatedOn", EvaluationOrder = 1)]
public DateTime UpdatedOn { get; set; }
///
/// Updated by field.
///
[Required]
[StringLength(200)]
[DefaultValueExpression("this.CreatedBy", EvaluationOrder = 1)]
public string UpdatedBy { get; set; }
}
}