/// <inheritdoc/> public override string ModelSummary() { RuminantType rumType; bool specifyRuminantParent = false; using (StringWriter htmlWriter = new StringWriter()) { if (!FormatForParentControl) { rumType = FindAncestor <RuminantType>(); if (rumType is null) { // look for rum type in SpecifyRuminant var specParent = this.FindAllAncestors <SpecifyRuminant>().FirstOrDefault(); if (specParent != null) { var resHolder = this.FindAncestor <ZoneCLEM>().FindDescendant <ResourcesHolder>(); rumType = resHolder.FindResourceType <RuminantHerd, RuminantType>(this, specParent.RuminantTypeName, OnMissingResourceActionTypes.Ignore, OnMissingResourceActionTypes.Ignore); specifyRuminantParent = true; } } htmlWriter.Write("\r\n<div class=\"activityentry\">"); if (!specifyRuminantParent & Number <= 0) { htmlWriter.Write("<span class=\"errorlink\">" + Number.ToString() + "</span> x "); } else if (!specifyRuminantParent & Number > 1) { htmlWriter.Write("<span class=\"setvalue\">" + Number.ToString() + "</span> x "); } else { htmlWriter.Write("A "); } htmlWriter.Write($"<span class=\"setvalue\">{Age}</span> month old "); htmlWriter.Write("<span class=\"setvalue\">" + Sex.ToString() + "</span></div>"); if (Suckling) { htmlWriter.Write("\r\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals are suckling" : "This individual is a suckling") + "</div>"); } if (Sire) { htmlWriter.Write("\r\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals are breeding sires" : "This individual is a breeding sire") + "</div>"); } Ruminant newInd = null; string normWtString = "Unavailable"; if (rumType != null) { newInd = Ruminant.Create(Sex, rumType, Age); normWtString = newInd.NormalisedAnimalWeight.ToString("#,##0"); } if (WeightSD > 0) { htmlWriter.Write("\r\n<div class=\"activityentry\">Individuals will be randomly assigned a weight based on a mean " + ((Weight == 0) ? "(using the normalised weight) " : "") + "of <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg with a standard deviation of <span class=\"setvalue\">" + WeightSD.ToString() + "</span></div>"); if (newInd != null && Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { htmlWriter.Write("<div class=\"activityentry\">These individuals should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age</div>"); } } else { htmlWriter.Write("\r\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals " : "This individual ") + "weigh" + ((Number > 1) ? "" : "s") + ((Weight == 0) ? " the normalised weight of " : "") + " <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg"); if (newInd != null && Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { htmlWriter.Write(", but should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age"); } htmlWriter.Write("</div>"); } } else { if (this.Parent is CLEMActivityBase | this.Parent is SpecifyRuminant) { bool parentIsSpecify = (Parent is SpecifyRuminant); // when formatted for parent control. i.e. child fo trade htmlWriter.Write("\r\n<div class=\"resourcebanneralone clearfix\">"); if (!parentIsSpecify) { htmlWriter.Write("Buy "); if (Number > 0) { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Number.ToString()); } else { htmlWriter.Write("<span class=\"errorlink\">"); htmlWriter.Write("NOT SET"); } htmlWriter.Write("</span> x "); } if (Age > 0) { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Age.ToString()); } else { htmlWriter.Write("<span class=\"errorlink\">"); htmlWriter.Write("NOT SET"); } htmlWriter.Write("</span> month old "); htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Sex.ToString() + ((Number > 1 | parentIsSpecify) ? "s" : "")); htmlWriter.Write("</span> weighing "); if (Weight > 0) { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Weight.ToString()); htmlWriter.Write("</span> kg "); if (WeightSD > 0) { htmlWriter.Write("with a standard deviation of <span class=\"setvalue\">"); htmlWriter.Write(WeightSD.ToString()); htmlWriter.Write("</span>"); } } else { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write("Normalised weight"); htmlWriter.Write("</span>"); } if (Sire || Suckling) { htmlWriter.Write(" and "); htmlWriter.Write(Sire ? "<span class=\"setvalue\">Sires</span>" : ""); if (Suckling) { htmlWriter.Write($"<span class=\"{(Sire ? "errorlink":"setvalue")}\">Suckling</span>"); } } htmlWriter.Write("\r\n</div>"); } } return(htmlWriter.ToString()); } }
/// <summary> /// Provides the description of the model settings for summary (GetFullSummary) /// </summary> /// <param name="formatForParentControl">Use full verbose description</param> /// <returns></returns> public override string ModelSummary(bool formatForParentControl) { string html = ""; if (!formatForParentControl) { html += "\n<div class=\"activityentry\">"; if (Number <= 0) { html += "<span class=\"errorlink\">" + Number.ToString() + "</span> x "; } else if (Number > 1) { html += "<span class=\"setvalue\">" + Number.ToString() + "</span> x "; } else { html += "A "; } html += "<span class=\"setvalue\">"; html += Age.ToString("0") + "</span> month old "; html += "<span class=\"setvalue\">" + Gender.ToString() + "</span></div>"; if (Suckling) { html += "\n<div class=\"activityentry\">" + ((Number > 1)?"These individuals are suckling":"This individual is a suckling") + "</div>"; } if (Sire) { html += "\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals are breeding sires" : "This individual is a breeding sire") + "</div>"; } Ruminant newInd = new Ruminant(this.Age, this.Gender, 0, Apsim.Parent(this, typeof(RuminantType)) as RuminantType); string normWtString = newInd.NormalisedAnimalWeight.ToString("#,##0"); double weightToUse = newInd.Weight; if (WeightSD > 0) { html += "\n<div class=\"activityentry\">Individuals will be randomally assigned a weight based on a mean " + ((Weight == 0) ? "(using the normalised weight) " : "") + "of <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg with a standard deviation of <span class=\"setvalue\">" + WeightSD.ToString() + "</span></div>"; if (Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { html += "<div class=\"activityentry\">These individuals should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age</div>"; } } else { html += "\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals " : "This individual ") + "weigh" + ((Number > 1) ? "" : "s") + ((Weight == 0)?" the normalised weight of ":"") + " <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg"; if (Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { html += ", but should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age"; } html += "</div>"; } html += "</div>"; } return(html); }
/// <summary> /// Provides the description of the model settings for summary (GetFullSummary) /// </summary> /// <param name="formatForParentControl">Use full verbose description</param> /// <returns></returns> public override string ModelSummary(bool formatForParentControl) { string html = ""; if (!formatForParentControl) { html += "\n<div class=\"activityentry\">"; if (Number <= 0) { html += "<span class=\"errorlink\">" + Number.ToString() + "</span> x "; } else if (Number > 1) { html += "<span class=\"setvalue\">" + Number.ToString() + "</span> x "; } else { html += "A "; } html += "<span class=\"setvalue\">"; html += Age.ToString("0") + "</span> month old "; html += "<span class=\"setvalue\">" + Gender.ToString() + "</span></div>"; if (Suckling) { html += "\n<div class=\"activityentry\">" + ((Number > 1)?"These individuals are suckling":"This individual is a suckling") + "</div>"; } if (Sire) { html += "\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals are breeding sires" : "This individual is a breeding sire") + "</div>"; } RuminantType rumtype = FindAncestor <RuminantType>(); Ruminant newInd = null; string normWtString = "Unavailable"; if (rumtype != null) { newInd = new Ruminant(this.Age, this.Gender, 0, FindAncestor <RuminantType>()); normWtString = newInd.NormalisedAnimalWeight.ToString("#,##0"); } if (WeightSD > 0) { html += "\n<div class=\"activityentry\">Individuals will be randomally assigned a weight based on a mean " + ((Weight == 0) ? "(using the normalised weight) " : "") + "of <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg with a standard deviation of <span class=\"setvalue\">" + WeightSD.ToString() + "</span></div>"; if (newInd != null && Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { html += "<div class=\"activityentry\">These individuals should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age</div>"; } } else { html += "\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals " : "This individual ") + "weigh" + ((Number > 1) ? "" : "s") + ((Weight == 0)?" the normalised weight of ":"") + " <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg"; if (newInd != null && Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { html += ", but should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age"; } html += "</div>"; } html += "</div>"; } else { if (this.Parent is CLEMActivityBase) { // when formatted for parent control. i.e. child fo trade html += "\n<div class=\"resourcebanneralone clearfix\">"; html += "Buy "; if (Number > 0) { html += "<span class=\"setvalue\">"; html += Number.ToString(); } else { html += "<span class=\"errorlink\">"; html += "NOT SET"; } html += "</span> x "; if (Age > 0) { html += "<span class=\"setvalue\">"; html += Number.ToString(); } else { html += "<span class=\"errorlink\">"; html += "NOT SET"; } html += "</span> month old "; html += "<span class=\"setvalue\">"; html += Gender.ToString() + ((Number > 1) ? "s" : ""); html += "</span> weighing "; if (Weight > 0) { html += "<span class=\"setvalue\">"; html += Weight.ToString(); html += "</span> kg "; if (WeightSD > 0) { html += "with a standard deviation of <span class=\"setvalue\">"; html += WeightSD.ToString(); html += "</span>"; } } else { html += "<span class=\"setvalue\">"; html += "Normalised weight"; html += "</span>"; } html += "\n</div>"; } } return(html); }
/// <summary> /// Provides the description of the model settings for summary (GetFullSummary) /// </summary> /// <param name="formatForParentControl">Use full verbose description</param> /// <returns></returns> public override string ModelSummary(bool formatForParentControl) { RuminantType rumType; using (StringWriter htmlWriter = new StringWriter()) { if (!formatForParentControl) { rumType = FindAncestor <RuminantType>(); htmlWriter.Write("\r\n<div class=\"activityentry\">"); if (Number <= 0) { htmlWriter.Write("<span class=\"errorlink\">" + Number.ToString() + "</span> x "); } else if (Number > 1) { htmlWriter.Write("<span class=\"setvalue\">" + Number.ToString() + "</span> x "); } else { htmlWriter.Write("A "); } htmlWriter.Write($"<span class=\"setvalue\">{Age}</span> month old "); htmlWriter.Write("<span class=\"setvalue\">" + Gender.ToString() + "</span></div>"); if (Suckling) { htmlWriter.Write("\r\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals are suckling" : "This individual is a suckling") + "</div>"); } if (Sire) { htmlWriter.Write("\r\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals are breeding sires" : "This individual is a breeding sire") + "</div>"); } Ruminant newInd = null; string normWtString = "Unavailable"; if (rumType != null) { newInd = new Ruminant(this.Age, this.Gender, 0, rumType); normWtString = newInd.NormalisedAnimalWeight.ToString("#,##0"); } if (WeightSD > 0) { htmlWriter.Write("\r\n<div class=\"activityentry\">Individuals will be randomly assigned a weight based on a mean " + ((Weight == 0) ? "(using the normalised weight) " : "") + "of <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg with a standard deviation of <span class=\"setvalue\">" + WeightSD.ToString() + "</span></div>"); if (newInd != null && Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { htmlWriter.Write("<div class=\"activityentry\">These individuals should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age</div>"); } } else { htmlWriter.Write("\r\n<div class=\"activityentry\">" + ((Number > 1) ? "These individuals " : "This individual ") + "weigh" + ((Number > 1) ? "" : "s") + ((Weight == 0) ? " the normalised weight of " : "") + " <span class=\"setvalue\">" + Weight.ToString("#,##0") + "</span> kg"); if (newInd != null && Math.Abs(Weight - newInd.NormalisedAnimalWeight) / newInd.NormalisedAnimalWeight > 0.2) { htmlWriter.Write(", but should weigh close to the normalised weight of <span class=\"errorlink\">" + normWtString + "</span> kg for their age"); } htmlWriter.Write("</div>"); } htmlWriter.Write("</div>"); } else { if (this.Parent is CLEMActivityBase | this.Parent is SpecifyRuminant) { bool parentIsSpecify = (Parent is SpecifyRuminant); // when formatted for parent control. i.e. child fo trade htmlWriter.Write("\r\n<div class=\"resourcebanneralone clearfix\">"); if (!parentIsSpecify) { htmlWriter.Write("Buy "); if (Number > 0) { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Number.ToString()); } else { htmlWriter.Write("<span class=\"errorlink\">"); htmlWriter.Write("NOT SET"); } htmlWriter.Write("</span> x "); } if (Age > 0) { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Age.ToString()); } else { htmlWriter.Write("<span class=\"errorlink\">"); htmlWriter.Write("NOT SET"); } htmlWriter.Write("</span> month old "); htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Gender.ToString() + ((Number > 1 | parentIsSpecify) ? "s" : "")); htmlWriter.Write("</span> weighing "); if (Weight > 0) { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write(Weight.ToString()); htmlWriter.Write("</span> kg "); if (WeightSD > 0) { htmlWriter.Write("with a standard deviation of <span class=\"setvalue\">"); htmlWriter.Write(WeightSD.ToString()); htmlWriter.Write("</span>"); } } else { htmlWriter.Write("<span class=\"setvalue\">"); htmlWriter.Write("Normalised weight"); htmlWriter.Write("</span>"); } if (Sire || Suckling) { htmlWriter.Write(" and "); htmlWriter.Write(Sire ? "<span class=\"setvalue\">Sires</span>" : ""); if (Suckling) { htmlWriter.Write($"<span class=\"{(Sire ? "errorlink":"setvalue")}\">Suckling</span>"); } } htmlWriter.Write("\r\n</div>"); } } return(htmlWriter.ToString()); } }