/// <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); }
/// <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 }); }