/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { unchecked // Overflow is fine, just wrap { var hashCode = 41; // Suitable nullity checks etc, of course :) if (DutyId != null) { hashCode = hashCode * 59 + DutyId.GetHashCode(); } if (SlaveDutyId != null) { hashCode = hashCode * 59 + SlaveDutyId.GetHashCode(); } if (BlockId != null) { hashCode = hashCode * 59 + BlockId.GetHashCode(); } if (ClientDeptId != null) { hashCode = hashCode * 59 + ClientDeptId.GetHashCode(); } if (SubDiscipline != null) { hashCode = hashCode * 59 + SubDiscipline.GetHashCode(); } hashCode = hashCode * 59 + RequestGender.GetHashCode(); if (Grade != null) { hashCode = hashCode * 59 + Grade.GetHashCode(); } if (FallbackGrade != null) { hashCode = hashCode * 59 + FallbackGrade.GetHashCode(); } if (VacancyReason != null) { hashCode = hashCode * 59 + VacancyReason.GetHashCode(); } if (Date != null) { hashCode = hashCode * 59 + Date.GetHashCode(); } if (StartTime != null) { hashCode = hashCode * 59 + StartTime.GetHashCode(); } if (EndTime != null) { hashCode = hashCode * 59 + EndTime.GetHashCode(); } hashCode = hashCode * 59 + BreakDuration.GetHashCode(); hashCode = hashCode * 59 + PoNumber.GetHashCode(); hashCode = hashCode * 59 + UniqueNumber.GetHashCode(); if (Agency != null) { hashCode = hashCode * 59 + Agency.GetHashCode(); } if (Skill != null) { hashCode = hashCode * 59 + Skill.GetHashCode(); } if (Specialty != null) { hashCode = hashCode * 59 + Specialty.GetHashCode(); } if (FallbackSkill != null) { hashCode = hashCode * 59 + FallbackSkill.GetHashCode(); } if (FallbackSpeciality != null) { hashCode = hashCode * 59 + FallbackSpeciality.GetHashCode(); } hashCode = hashCode * 59 + Status.GetHashCode(); if (Rates != null) { hashCode = hashCode * 59 + Rates.GetHashCode(); } if (TimeIntervalRates != null) { hashCode = hashCode * 59 + TimeIntervalRates.GetHashCode(); } if (Person != null) { hashCode = hashCode * 59 + Person.GetHashCode(); } return(hashCode); } }
/// <summary> /// Initializes a new instance of the <see cref="Duty" /> class. /// </summary> /// <param name="dutyId">Trust identifier of the duty.</param> /// <param name="slaveDutyId">Identifier of the slave duty if duty is part of consolidated duties.</param> /// <param name="blockId">Identifier of block duties if duty is part of the block.</param> /// <param name="clientDeptId">BankStaff ward trust identifier.</param> /// <param name="subDiscipline">Staff group trust identifier.</param> /// <param name="requestGender">requestGender.</param> /// <param name="grade">Grade trust identifier of the request.</param> /// <param name="fallbackGrade">fallbackGrade.</param> /// <param name="vacancyReason">vacancyReason.</param> /// <param name="date">Date of the duty.</param> /// <param name="startTime">Start time of the shift.</param> /// <param name="endTime">End time of the shift.</param> /// <param name="breakDuration">Duration of break in minutes.</param> /// <param name="poNumber">Need to understand if needed from Trust/Agency.</param> /// <param name="uniqueNumber">BRN / Unique number.</param> /// <param name="agency">Supplying agency trust identifier.</param> /// <param name="skill">Stored as free text in DE Provider.</param> /// <param name="specialty">Stored as free text in DE Provider.</param> /// <param name="fallbackSkill">Stored as free text in DE Provider.</param> /// <param name="fallbackSpeciality">Stored as free text in DE Provider.</param> /// <param name="status">Will need to understand if duty is no longer required and cancel on DE Provider.</param> /// <param name="rates">Trust Pay Agency & Trust Pays DE provider - split rate between pay to worker and pay to agency.</param> /// <param name="timeIntervalRates">Array of rates and intervals for which the rate is applied.</param> /// <param name="person">person.</param> public Duty(string dutyId = default(string), string slaveDutyId = default(string), string blockId = default(string), string clientDeptId = default(string), string subDiscipline = default(string), RequestGender requestGender = default(RequestGender), string grade = default(string), string fallbackGrade = default(string), string vacancyReason = default(string), DateTime date = default(DateTime), string startTime = default(string), string endTime = default(string), int breakDuration = default(int), int poNumber = default(int), int uniqueNumber = default(int), string agency = default(string), string skill = default(string), string specialty = default(string), string fallbackSkill = default(string), string fallbackSpeciality = default(string), StatusEnum?status = default(StatusEnum?), List <Rates> rates = default(List <Rates>), List <TimeIntervalRates> timeIntervalRates = default(List <TimeIntervalRates>), Person person = default(Person)) { this.DutyId = dutyId; this.SlaveDutyId = slaveDutyId; this.BlockId = blockId; this.ClientDeptId = clientDeptId; this.SubDiscipline = subDiscipline; this.RequestGender = requestGender; this.Grade = grade; this.FallbackGrade = fallbackGrade; this.VacancyReason = vacancyReason; this.Date = date; this.StartTime = startTime; this.EndTime = endTime; this.BreakDuration = breakDuration; this.PoNumber = poNumber; this.UniqueNumber = uniqueNumber; this.Agency = agency; this.Skill = skill; this.Specialty = specialty; this.FallbackSkill = fallbackSkill; this.FallbackSpeciality = fallbackSpeciality; this.Status = status; this.Rates = rates; this.TimeIntervalRates = timeIntervalRates; this.Person = person; }
/// <summary> /// Returns true if Duty instances are equal /// </summary> /// <param name="other">Instance of Duty to be compared</param> /// <returns>Boolean</returns> public bool Equals(Duty other) { if (other is null) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return (( DutyId == other.DutyId || DutyId != null && DutyId.Equals(other.DutyId) ) && ( SlaveDutyId == other.SlaveDutyId || SlaveDutyId != null && SlaveDutyId.Equals(other.SlaveDutyId) ) && ( BlockId == other.BlockId || BlockId != null && BlockId.Equals(other.BlockId) ) && ( ClientDeptId == other.ClientDeptId || ClientDeptId != null && ClientDeptId.Equals(other.ClientDeptId) ) && ( SubDiscipline == other.SubDiscipline || SubDiscipline != null && SubDiscipline.Equals(other.SubDiscipline) ) && ( RequestGender == other.RequestGender || RequestGender.Equals(other.RequestGender) ) && ( Grade == other.Grade || Grade != null && Grade.Equals(other.Grade) ) && ( FallbackGrade == other.FallbackGrade || FallbackGrade != null && FallbackGrade.Equals(other.FallbackGrade) ) && ( VacancyReason == other.VacancyReason || VacancyReason != null && VacancyReason.Equals(other.VacancyReason) ) && ( Date == other.Date || Date != null && Date.Equals(other.Date) ) && ( StartTime == other.StartTime || StartTime != null && StartTime.Equals(other.StartTime) ) && ( EndTime == other.EndTime || EndTime != null && EndTime.Equals(other.EndTime) ) && ( BreakDuration == other.BreakDuration || BreakDuration.Equals(other.BreakDuration) ) && ( PoNumber == other.PoNumber || PoNumber.Equals(other.PoNumber) ) && ( UniqueNumber == other.UniqueNumber || UniqueNumber.Equals(other.UniqueNumber) ) && ( Agency == other.Agency || Agency != null && Agency.Equals(other.Agency) ) && ( Skill == other.Skill || Skill != null && Skill.Equals(other.Skill) ) && ( Specialty == other.Specialty || Specialty != null && Specialty.Equals(other.Specialty) ) && ( FallbackSkill == other.FallbackSkill || FallbackSkill != null && FallbackSkill.Equals(other.FallbackSkill) ) && ( FallbackSpeciality == other.FallbackSpeciality || FallbackSpeciality != null && FallbackSpeciality.Equals(other.FallbackSpeciality) ) && ( Status == other.Status || Status.Equals(other.Status) ) && ( Rates == other.Rates || Rates != null && other.Rates != null && Rates.SequenceEqual(other.Rates) ) && ( TimeIntervalRates == other.TimeIntervalRates || TimeIntervalRates != null && other.TimeIntervalRates != null && TimeIntervalRates.SequenceEqual(other.TimeIntervalRates) ) && ( Person == other.Person || Person != null && Person.Equals(other.Person) )); }