You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Digitalisation_EPA_Serveur/ModelCollaborateur/Collaborateur.cs

457 lines
18 KiB

/*
* 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.2
* 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
{
/// <summary>
/// Collaborateur
/// </summary>
[DataContract]
public partial class Collaborateur : IEquatable<Collaborateur>, IValidatableObject
{
/// <summary>
/// Gets or Sets Genre
/// </summary>
[DataMember(Name="genre", EmitDefaultValue=false)]
public Genre? Genre { get; set; }
/// <summary>
/// Gets or Sets Statut
/// </summary>
[DataMember(Name="statut", EmitDefaultValue=false)]
public Statut? Statut { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="Collaborateur" /> class.
/// </summary>
/// <param name="id">id (required).</param>
/// <param name="nom">nom (required).</param>
/// <param name="prenom">prenom (required).</param>
/// <param name="genre">genre.</param>
/// <param name="dateNaissance">dateNaissance.</param>
/// <param name="nbEnfants">nbEnfants.</param>
/// <param name="adresse">adresse.</param>
/// <param name="telephone">telephone.</param>
/// <param name="mailPerso">mailPerso.</param>
/// <param name="mailApside">mailApside.</param>
/// <param name="statut">statut.</param>
/// <param name="fonctions">fonctions.</param>
/// <param name="businessUnit">businessUnit.</param>
/// <param name="referent">referent.</param>
/// <param name="parrain">parrain.</param>
/// <param name="projets">projets.</param>
/// <param name="technologiesPref">technologiesPref.</param>
/// <param name="periodeEssai">periodeEssai.</param>
/// <param name="dateArrivee">dateArrivee.</param>
/// <param name="dateDepart">dateDepart.</param>
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<Fonction> fonctions = default(List<Fonction>), BU businessUnit = default(BU), Collaborateur referent = default(Collaborateur), Collaborateur parrain = default(Collaborateur), List<Projet> projets = default(List<Projet>), List<Technologie> technologiesPref = default(List<Technologie>), List<PeriodeEssai> periodeEssai = default(List<PeriodeEssai>), 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;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name="id", EmitDefaultValue=false)]
public Guid? Id { get; set; }
/// <summary>
/// Gets or Sets Nom
/// </summary>
[DataMember(Name="nom", EmitDefaultValue=false)]
public string Nom { get; set; }
/// <summary>
/// Gets or Sets Prenom
/// </summary>
[DataMember(Name="prenom", EmitDefaultValue=false)]
public string Prenom { get; set; }
/// <summary>
/// Gets or Sets DateNaissance
/// </summary>
[DataMember(Name="dateNaissance", EmitDefaultValue=false)]
[JsonConverter(typeof(SwaggerDateConverter))]
public DateTime? DateNaissance { get; set; }
/// <summary>
/// Gets or Sets NbEnfants
/// </summary>
[DataMember(Name="nbEnfants", EmitDefaultValue=false)]
public int? NbEnfants { get; set; }
/// <summary>
/// Gets or Sets Adresse
/// </summary>
[DataMember(Name="adresse", EmitDefaultValue=false)]
public Adresse Adresse { get; set; }
/// <summary>
/// Gets or Sets Telephone
/// </summary>
[DataMember(Name="telephone", EmitDefaultValue=false)]
public string Telephone { get; set; }
/// <summary>
/// Gets or Sets MailPerso
/// </summary>
[DataMember(Name="mailPerso", EmitDefaultValue=false)]
public string MailPerso { get; set; }
/// <summary>
/// Gets or Sets MailApside
/// </summary>
[DataMember(Name="mailApside", EmitDefaultValue=false)]
public string MailApside { get; set; }
/// <summary>
/// Gets or Sets Fonctions
/// </summary>
[DataMember(Name="fonctions", EmitDefaultValue=false)]
public List<Fonction> Fonctions { get; set; }
/// <summary>
/// Gets or Sets BusinessUnit
/// </summary>
[DataMember(Name="businessUnit", EmitDefaultValue=false)]
public BU BusinessUnit { get; set; }
/// <summary>
/// Gets or Sets Referent
/// </summary>
[DataMember(Name="referent", EmitDefaultValue=false)]
public Collaborateur Referent { get; set; }
/// <summary>
/// Gets or Sets Parrain
/// </summary>
[DataMember(Name="parrain", EmitDefaultValue=false)]
public Collaborateur Parrain { get; set; }
/// <summary>
/// Gets or Sets Projets
/// </summary>
[DataMember(Name="projets", EmitDefaultValue=false)]
public List<Projet> Projets { get; set; }
/// <summary>
/// Gets or Sets TechnologiesPref
/// </summary>
[DataMember(Name="technologiesPref", EmitDefaultValue=false)]
public List<Technologie> TechnologiesPref { get; set; }
/// <summary>
/// Gets or Sets PeriodeEssai
/// </summary>
[DataMember(Name="periodeEssai", EmitDefaultValue=false)]
public List<PeriodeEssai> PeriodeEssai { get; set; }
/// <summary>
/// Gets or Sets DateArrivee
/// </summary>
[DataMember(Name="dateArrivee", EmitDefaultValue=false)]
[JsonConverter(typeof(SwaggerDateConverter))]
public DateTime? DateArrivee { get; set; }
/// <summary>
/// Gets or Sets DateDepart
/// </summary>
[DataMember(Name="dateDepart", EmitDefaultValue=false)]
[JsonConverter(typeof(SwaggerDateConverter))]
public DateTime? DateDepart { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
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();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return JsonConvert.SerializeObject(this, Formatting.Indented);
}
/// <summary>
/// Returns true if objects are equal
/// </summary>
/// <param name="input">Object to be compared</param>
/// <returns>Boolean</returns>
public override bool Equals(object input)
{
return this.Equals(input as Collaborateur);
}
/// <summary>
/// Returns true if Collaborateur instances are equal
/// </summary>
/// <param name="input">Instance of Collaborateur to be compared</param>
/// <returns>Boolean</returns>
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))
);
}
/// <summary>
/// Gets the hash code
/// </summary>
/// <returns>Hash code</returns>
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;
}
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}