/*
* Service Collaborateur API
*
* Api du service Collaborateur, utilisée pour récupérer les données des collaborateurs d'Apside
*
* OpenAPI spec version: 1.1.3
* Contact: lilian.gayet@apside-groupe.com
* Generated by: https://github.com/swagger-api/swagger-codegen.git
*/
using System;
using System.Linq;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.ComponentModel.DataAnnotations;
using SwaggerDateConverter = IO.Swagger.ClientCollaborateur.SwaggerDateConverter;
namespace IO.Swagger.ModelCollaborateur
{
///
/// Collaborateur
///
[DataContract]
public partial class Collaborateur : IEquatable, IValidatableObject
{
///
/// Initializes a new instance of the class.
///
/// id (required).
/// nom (required).
/// prenom (required).
/// genre.
/// dateNaissance.
/// nbEnfants.
/// adresse.
/// telephone.
/// mailPerso.
/// mailApside.
/// statut.
/// fonctions.
/// businessUnit.
/// referent.
/// parrain.
/// projets.
/// technologiesPref.
/// periodeEssai.
/// dateArrivee.
/// dateDepart.
public Collaborateur(Guid? id = default(Guid?), string nom = default(string), string prenom = default(string), Genre genre = default(Genre), DateTime? dateNaissance = default(DateTime?), int? nbEnfants = default(int?), Adresse adresse = default(Adresse), string telephone = default(string), string mailPerso = default(string), string mailApside = default(string), Statut statut = default(Statut), List fonctions = default(List), BU businessUnit = default(BU), Collaborateur referent = default(Collaborateur), Collaborateur parrain = default(Collaborateur), List projets = default(List), List technologiesPref = default(List), List periodeEssai = default(List), DateTime? dateArrivee = default(DateTime?), DateTime? dateDepart = default(DateTime?))
{
// to ensure "id" is required (not null)
if (id == null)
{
throw new InvalidDataException("id is a required property for Collaborateur and cannot be null");
}
else
{
this.Id = id;
}
// to ensure "nom" is required (not null)
if (nom == null)
{
throw new InvalidDataException("nom is a required property for Collaborateur and cannot be null");
}
else
{
this.Nom = nom;
}
// to ensure "prenom" is required (not null)
if (prenom == null)
{
throw new InvalidDataException("prenom is a required property for Collaborateur and cannot be null");
}
else
{
this.Prenom = prenom;
}
this.Genre = genre;
this.DateNaissance = dateNaissance;
this.NbEnfants = nbEnfants;
this.Adresse = adresse;
this.Telephone = telephone;
this.MailPerso = mailPerso;
this.MailApside = mailApside;
this.Statut = statut;
this.Fonctions = fonctions;
this.BusinessUnit = businessUnit;
this.Referent = referent;
this.Parrain = parrain;
this.Projets = projets;
this.TechnologiesPref = technologiesPref;
this.PeriodeEssai = periodeEssai;
this.DateArrivee = dateArrivee;
this.DateDepart = dateDepart;
}
///
/// Gets or Sets Id
///
[DataMember(Name="id", EmitDefaultValue=false)]
public Guid? Id { get; set; }
///
/// Gets or Sets Nom
///
[DataMember(Name="nom", EmitDefaultValue=false)]
public string Nom { get; set; }
///
/// Gets or Sets Prenom
///
[DataMember(Name="prenom", EmitDefaultValue=false)]
public string Prenom { get; set; }
///
/// Gets or Sets Genre
///
[DataMember(Name="genre", EmitDefaultValue=false)]
public Genre Genre { get; set; }
///
/// Gets or Sets DateNaissance
///
[DataMember(Name="dateNaissance", EmitDefaultValue=false)]
[JsonConverter(typeof(SwaggerDateConverter))]
public DateTime? DateNaissance { get; set; }
///
/// Gets or Sets NbEnfants
///
[DataMember(Name="nbEnfants", EmitDefaultValue=false)]
public int? NbEnfants { get; set; }
///
/// Gets or Sets Adresse
///
[DataMember(Name="adresse", EmitDefaultValue=false)]
public Adresse Adresse { get; set; }
///
/// Gets or Sets Telephone
///
[DataMember(Name="telephone", EmitDefaultValue=false)]
public string Telephone { get; set; }
///
/// Gets or Sets MailPerso
///
[DataMember(Name="mailPerso", EmitDefaultValue=false)]
public string MailPerso { get; set; }
///
/// Gets or Sets MailApside
///
[DataMember(Name="mailApside", EmitDefaultValue=false)]
public string MailApside { get; set; }
///
/// Gets or Sets Statut
///
[DataMember(Name="statut", EmitDefaultValue=false)]
public Statut Statut { get; set; }
///
/// Gets or Sets Fonctions
///
[DataMember(Name="fonctions", EmitDefaultValue=false)]
public List Fonctions { get; set; }
///
/// Gets or Sets BusinessUnit
///
[DataMember(Name="businessUnit", EmitDefaultValue=false)]
public BU BusinessUnit { get; set; }
///
/// Gets or Sets Referent
///
[DataMember(Name="referent", EmitDefaultValue=false)]
public Collaborateur Referent { get; set; }
///
/// Gets or Sets Parrain
///
[DataMember(Name="parrain", EmitDefaultValue=false)]
public Collaborateur Parrain { get; set; }
///
/// Gets or Sets Projets
///
[DataMember(Name="projets", EmitDefaultValue=false)]
public List Projets { get; set; }
///
/// Gets or Sets TechnologiesPref
///
[DataMember(Name="technologiesPref", EmitDefaultValue=false)]
public List TechnologiesPref { get; set; }
///
/// Gets or Sets PeriodeEssai
///
[DataMember(Name="periodeEssai", EmitDefaultValue=false)]
public List PeriodeEssai { get; set; }
///
/// Gets or Sets DateArrivee
///
[DataMember(Name="dateArrivee", EmitDefaultValue=false)]
[JsonConverter(typeof(SwaggerDateConverter))]
public DateTime? DateArrivee { get; set; }
///
/// Gets or Sets DateDepart
///
[DataMember(Name="dateDepart", EmitDefaultValue=false)]
[JsonConverter(typeof(SwaggerDateConverter))]
public DateTime? DateDepart { get; set; }
///
/// Returns the string presentation of the object
///
/// String presentation of the object
public override string ToString()
{
var sb = new StringBuilder();
sb.Append("class Collaborateur {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Nom: ").Append(Nom).Append("\n");
sb.Append(" Prenom: ").Append(Prenom).Append("\n");
sb.Append(" Genre: ").Append(Genre).Append("\n");
sb.Append(" DateNaissance: ").Append(DateNaissance).Append("\n");
sb.Append(" NbEnfants: ").Append(NbEnfants).Append("\n");
sb.Append(" Adresse: ").Append(Adresse).Append("\n");
sb.Append(" Telephone: ").Append(Telephone).Append("\n");
sb.Append(" MailPerso: ").Append(MailPerso).Append("\n");
sb.Append(" MailApside: ").Append(MailApside).Append("\n");
sb.Append(" Statut: ").Append(Statut).Append("\n");
sb.Append(" Fonctions: ").Append(Fonctions).Append("\n");
sb.Append(" BusinessUnit: ").Append(BusinessUnit).Append("\n");
sb.Append(" Referent: ").Append(Referent).Append("\n");
sb.Append(" Parrain: ").Append(Parrain).Append("\n");
sb.Append(" Projets: ").Append(Projets).Append("\n");
sb.Append(" TechnologiesPref: ").Append(TechnologiesPref).Append("\n");
sb.Append(" PeriodeEssai: ").Append(PeriodeEssai).Append("\n");
sb.Append(" DateArrivee: ").Append(DateArrivee).Append("\n");
sb.Append(" DateDepart: ").Append(DateDepart).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
///
/// Returns the JSON string presentation of the object
///
/// JSON string presentation of the object
public virtual string ToJson()
{
return JsonConvert.SerializeObject(this, Formatting.Indented);
}
///
/// Returns true if objects are equal
///
/// Object to be compared
/// Boolean
public override bool Equals(object input)
{
return this.Equals(input as Collaborateur);
}
///
/// Returns true if Collaborateur instances are equal
///
/// Instance of Collaborateur to be compared
/// Boolean
public bool Equals(Collaborateur input)
{
if (input == null)
return false;
return
(
this.Id == input.Id ||
(this.Id != null &&
this.Id.Equals(input.Id))
) &&
(
this.Nom == input.Nom ||
(this.Nom != null &&
this.Nom.Equals(input.Nom))
) &&
(
this.Prenom == input.Prenom ||
(this.Prenom != null &&
this.Prenom.Equals(input.Prenom))
) &&
(
this.Genre == input.Genre ||
(this.Genre != null &&
this.Genre.Equals(input.Genre))
) &&
(
this.DateNaissance == input.DateNaissance ||
(this.DateNaissance != null &&
this.DateNaissance.Equals(input.DateNaissance))
) &&
(
this.NbEnfants == input.NbEnfants ||
(this.NbEnfants != null &&
this.NbEnfants.Equals(input.NbEnfants))
) &&
(
this.Adresse == input.Adresse ||
(this.Adresse != null &&
this.Adresse.Equals(input.Adresse))
) &&
(
this.Telephone == input.Telephone ||
(this.Telephone != null &&
this.Telephone.Equals(input.Telephone))
) &&
(
this.MailPerso == input.MailPerso ||
(this.MailPerso != null &&
this.MailPerso.Equals(input.MailPerso))
) &&
(
this.MailApside == input.MailApside ||
(this.MailApside != null &&
this.MailApside.Equals(input.MailApside))
) &&
(
this.Statut == input.Statut ||
(this.Statut != null &&
this.Statut.Equals(input.Statut))
) &&
(
this.Fonctions == input.Fonctions ||
this.Fonctions != null &&
input.Fonctions != null &&
this.Fonctions.SequenceEqual(input.Fonctions)
) &&
(
this.BusinessUnit == input.BusinessUnit ||
(this.BusinessUnit != null &&
this.BusinessUnit.Equals(input.BusinessUnit))
) &&
(
this.Referent == input.Referent ||
(this.Referent != null &&
this.Referent.Equals(input.Referent))
) &&
(
this.Parrain == input.Parrain ||
(this.Parrain != null &&
this.Parrain.Equals(input.Parrain))
) &&
(
this.Projets == input.Projets ||
this.Projets != null &&
input.Projets != null &&
this.Projets.SequenceEqual(input.Projets)
) &&
(
this.TechnologiesPref == input.TechnologiesPref ||
this.TechnologiesPref != null &&
input.TechnologiesPref != null &&
this.TechnologiesPref.SequenceEqual(input.TechnologiesPref)
) &&
(
this.PeriodeEssai == input.PeriodeEssai ||
this.PeriodeEssai != null &&
input.PeriodeEssai != null &&
this.PeriodeEssai.SequenceEqual(input.PeriodeEssai)
) &&
(
this.DateArrivee == input.DateArrivee ||
(this.DateArrivee != null &&
this.DateArrivee.Equals(input.DateArrivee))
) &&
(
this.DateDepart == input.DateDepart ||
(this.DateDepart != null &&
this.DateDepart.Equals(input.DateDepart))
);
}
///
/// Gets the hash code
///
/// Hash code
public override int GetHashCode()
{
unchecked // Overflow is fine, just wrap
{
int hashCode = 41;
if (this.Id != null)
hashCode = hashCode * 59 + this.Id.GetHashCode();
if (this.Nom != null)
hashCode = hashCode * 59 + this.Nom.GetHashCode();
if (this.Prenom != null)
hashCode = hashCode * 59 + this.Prenom.GetHashCode();
if (this.Genre != null)
hashCode = hashCode * 59 + this.Genre.GetHashCode();
if (this.DateNaissance != null)
hashCode = hashCode * 59 + this.DateNaissance.GetHashCode();
if (this.NbEnfants != null)
hashCode = hashCode * 59 + this.NbEnfants.GetHashCode();
if (this.Adresse != null)
hashCode = hashCode * 59 + this.Adresse.GetHashCode();
if (this.Telephone != null)
hashCode = hashCode * 59 + this.Telephone.GetHashCode();
if (this.MailPerso != null)
hashCode = hashCode * 59 + this.MailPerso.GetHashCode();
if (this.MailApside != null)
hashCode = hashCode * 59 + this.MailApside.GetHashCode();
if (this.Statut != null)
hashCode = hashCode * 59 + this.Statut.GetHashCode();
if (this.Fonctions != null)
hashCode = hashCode * 59 + this.Fonctions.GetHashCode();
if (this.BusinessUnit != null)
hashCode = hashCode * 59 + this.BusinessUnit.GetHashCode();
if (this.Referent != null)
hashCode = hashCode * 59 + this.Referent.GetHashCode();
if (this.Parrain != null)
hashCode = hashCode * 59 + this.Parrain.GetHashCode();
if (this.Projets != null)
hashCode = hashCode * 59 + this.Projets.GetHashCode();
if (this.TechnologiesPref != null)
hashCode = hashCode * 59 + this.TechnologiesPref.GetHashCode();
if (this.PeriodeEssai != null)
hashCode = hashCode * 59 + this.PeriodeEssai.GetHashCode();
if (this.DateArrivee != null)
hashCode = hashCode * 59 + this.DateArrivee.GetHashCode();
if (this.DateDepart != null)
hashCode = hashCode * 59 + this.DateDepart.GetHashCode();
return hashCode;
}
}
///
/// To validate all properties of the instance
///
/// Validation context
/// Validation Result
IEnumerable IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}