Ejemplo n.º 1
0
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (Bots == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Bots");
     }
     if (CacheTsVersion == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "CacheTsVersion");
     }
     if (Channels == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Channels");
     }
     if (Dnd == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Dnd");
     }
     if (Groups == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Groups");
     }
     if (Ims == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Ims");
     }
     if (LatestEventTs == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "LatestEventTs");
     }
     if (NonThreadableChannels == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "NonThreadableChannels");
     }
     if (ReadOnlyChannels == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "ReadOnlyChannels");
     }
     if (Self == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Self");
     }
     if (Subteams == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Subteams");
     }
     if (Team == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Team");
     }
     if (ThreadOnlyChannels == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "ThreadOnlyChannels");
     }
     if (Url == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Url");
     }
     if (Users == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Users");
     }
     if (Channels != null)
     {
         if (Channels.Count < 1)
         {
             throw new ValidationException(ValidationRules.MinItems, "Channels", 1);
         }
         if (Channels.Count != System.Linq.Enumerable.Count(System.Linq.Enumerable.Distinct(Channels)))
         {
             throw new ValidationException(ValidationRules.UniqueItems, "Channels");
         }
     }
     if (Dnd != null)
     {
         Dnd.Validate();
     }
     if (Groups != null)
     {
         if (Groups.Count != System.Linq.Enumerable.Count(System.Linq.Enumerable.Distinct(Groups)))
         {
             throw new ValidationException(ValidationRules.UniqueItems, "Groups");
         }
     }
     if (Ims != null)
     {
         if (Ims.Count < 1)
         {
             throw new ValidationException(ValidationRules.MinItems, "Ims", 1);
         }
         if (Ims.Count != System.Linq.Enumerable.Count(System.Linq.Enumerable.Distinct(Ims)))
         {
             throw new ValidationException(ValidationRules.UniqueItems, "Ims");
         }
     }
     if (Mpims != null)
     {
         if (Mpims.Count != System.Linq.Enumerable.Count(System.Linq.Enumerable.Distinct(Mpims)))
         {
             throw new ValidationException(ValidationRules.UniqueItems, "Mpims");
         }
     }
     if (Self != null)
     {
         Self.Validate();
     }
     if (Subteams != null)
     {
         Subteams.Validate();
     }
     if (Team != null)
     {
         Team.Validate();
     }
     if (Users != null)
     {
         if (Users.Count < 1)
         {
             throw new ValidationException(ValidationRules.MinItems, "Users", 1);
         }
         if (Users.Count != System.Linq.Enumerable.Count(System.Linq.Enumerable.Distinct(Users)))
         {
             throw new ValidationException(ValidationRules.UniqueItems, "Users");
         }
         foreach (var element in Users)
         {
             if (element != null)
             {
                 element.Validate();
             }
         }
     }
 }