/// <inheritdoc/>
        public override int GetHashCode()
        {
            var hashCode = 2038336081;

            hashCode = hashCode *
                       -1521134295 + Handle.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + SymbolicName.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + NodeId.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + NodeClass.GetHashCode();
            hashCode = hashCode *
                       -1521134295 + BrowseName.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + DisplayName.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + Description.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + WriteMask.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + UserWriteMask.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + AccessRestrictions.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + RolePermissions.GetHashSafe();
            hashCode = hashCode *
                       -1521134295 + UserRolePermissions.GetHashSafe();
            return(hashCode);
        }
 /// <inheritdoc/>
 public override bool Equals(object obj)
 {
     if (!(obj is BaseNodeModel model))
     {
         return(false);
     }
     if (!Handle.EqualsSafe(model.Handle))
     {
         return(false);
     }
     if (SymbolicName != model.SymbolicName)
     {
         return(false);
     }
     if (!Utils.IsEqual(NodeId, model.NodeId))
     {
         return(false);
     }
     if (NodeClass != model.NodeClass)
     {
         return(false);
     }
     if (!Utils.IsEqual(BrowseName, model.BrowseName))
     {
         return(false);
     }
     if (!Utils.IsEqual(DisplayName, model.DisplayName))
     {
         return(false);
     }
     if (!Utils.IsEqual(Description, model.Description))
     {
         return(false);
     }
     if (WriteMask != model.WriteMask)
     {
         return(false);
     }
     if (UserWriteMask != model.UserWriteMask)
     {
         return(false);
     }
     if (AccessRestrictions != model.AccessRestrictions)
     {
         return(false);
     }
     if (RolePermissions.SetEqualsSafe(model.RolePermissions, Utils.IsEqual))
     {
         return(false);
     }
     if (UserRolePermissions.SetEqualsSafe(model.UserRolePermissions, Utils.IsEqual))
     {
         return(false);
     }
     return(true);
 }
示例#3
0
 /// <summary>
 /// Convert back to service model
 /// </summary>
 /// <returns></returns>
 public NodeModel ToServiceModel()
 {
     return(new NodeModel {
         NodeId = NodeId,
         Children = Children,
         BrowseName = BrowseName,
         DisplayName = DisplayName,
         Description = Description,
         NodeClass = NodeClass,
         IsAbstract = IsAbstract,
         AccessLevel = AccessLevel,
         EventNotifier = EventNotifier,
         Executable = Executable,
         DataType = DataType,
         ValueRank = ValueRank,
         AccessRestrictions = AccessRestrictions,
         ArrayDimensions = ArrayDimensions,
         ContainsNoLoops = ContainsNoLoops,
         DataTypeDefinition = DataTypeDefinition,
         Value = Value,
         Historizing = Historizing,
         InverseName = InverseName,
         MinimumSamplingInterval = MinimumSamplingInterval,
         Symmetric = Symmetric,
         UserAccessLevel = UserAccessLevel,
         UserExecutable = UserExecutable,
         UserWriteMask = UserWriteMask,
         WriteMask = WriteMask,
         RolePermissions = RolePermissions?
                           .Select(p => p.ToServiceModel())
                           .ToList(),
         UserRolePermissions = UserRolePermissions?
                               .Select(p => p.ToServiceModel())
                               .ToList(),
         TypeDefinitionId = TypeDefinitionId
     });
 }