public override IDeepCopyable CopyTo(IDeepCopyable other) { var dest = other as Account; if (dest == null) { throw new ArgumentException("Can only copy to an object of the same type", "other"); } base.CopyTo(dest); if (Identifier != null) { dest.Identifier = new List <Hl7.Fhir.Model.Identifier>(Identifier.DeepCopy()); } if (StatusElement != null) { dest.StatusElement = (Code <Hl7.Fhir.Model.Account.AccountStatus>)StatusElement.DeepCopy(); } if (Type != null) { dest.Type = (Hl7.Fhir.Model.CodeableConcept)Type.DeepCopy(); } if (NameElement != null) { dest.NameElement = (Hl7.Fhir.Model.FhirString)NameElement.DeepCopy(); } if (Subject != null) { dest.Subject = (Hl7.Fhir.Model.ResourceReference)Subject.DeepCopy(); } if (Period != null) { dest.Period = (Hl7.Fhir.Model.Period)Period.DeepCopy(); } if (Active != null) { dest.Active = (Hl7.Fhir.Model.Period)Active.DeepCopy(); } if (Balance != null) { dest.Balance = (Hl7.Fhir.Model.Money)Balance.DeepCopy(); } if (Coverage != null) { dest.Coverage = new List <Hl7.Fhir.Model.Account.CoverageComponent>(Coverage.DeepCopy()); } if (Owner != null) { dest.Owner = (Hl7.Fhir.Model.ResourceReference)Owner.DeepCopy(); } if (DescriptionElement != null) { dest.DescriptionElement = (Hl7.Fhir.Model.FhirString)DescriptionElement.DeepCopy(); } if (Guarantor != null) { dest.Guarantor = new List <Hl7.Fhir.Model.Account.GuarantorComponent>(Guarantor.DeepCopy()); } return(dest); }