コード例 #1
0
        /// <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());
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
ファイル: RuminantTypeCohort.cs プロジェクト: RobZys/ApsimX
        /// <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);
        }
コード例 #4
0
ファイル: RuminantTypeCohort.cs プロジェクト: her123/ApsimX
        /// <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());
            }
        }