public ActionResult RemoveMaterial(int materialId, int sourceMaterialId, int sourceId, int subgroupId)
        {
            ComparisonD comparison1 = _ComparisonDiagramBinder.GetComparisonDiagramModel();

            ElsevierMaterials.Models.Domain.Comparison.Comparison comparison = _materialBinder.RemoveMaterial(materialId, sourceMaterialId, sourceId, subgroupId);
            ComparisonD comparisonD = _ComparisonDiagramBinder.RemoveMaterial(materialId, sourceMaterialId, sourceId, subgroupId);

            comparison.ComparisonD = comparisonD;
            return(Json(ResponseStatus.Success, new { hasProperties = comparison.Properties.Count > 0 ? true : false, data = RenderPartialViewToString("PropertiesWithDiagrams", comparison), plot = RenderPartialViewToString("Plot", comparison), model = Newtonsoft.Json.JsonConvert.SerializeObject(comparison) }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ShowInterctiveDiagramForProperty(int diagramId)
        {
            ComparisonD comparison = _ComparisonDiagramBinder.GetComparisonDiagramModel();
            PropertyD   property   = comparison.Properties.Where(m => m.Id == diagramId).FirstOrDefault();

            property.MaxYValue = _ComparisonDiagramBinder.GetMaxYValueForAllSeries(property);
            property.MaxXValue = _ComparisonDiagramBinder.GetMaxXValueForAllSeries(property);
            property.MinYValue = _ComparisonDiagramBinder.GetMinYValueForAllSeries(property);
            property.MinXValue = _ComparisonDiagramBinder.GetMinXValueForAllSeries(property);

            return(Json(ResponseStatus.Success, new { data = RenderPartialViewToString("InteractiveDiagram", property) }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult RemoveInteractiveDiagram(int diagramId)
        {
            ComparisonD comparison1 = _ComparisonDiagramBinder.GetComparisonDiagramModel();

            comparison1.Properties.Remove(comparison1.Properties.Where(m => m.Id == diagramId).FirstOrDefault());
            Comparison comparison = _basicBinder.GetComparison();

            comparison.ComparisonD = comparison1;


            return(Json(ResponseStatus.Success, new {
                hasProperties = comparison.Properties.Count > 0 ? true : false,
                data = RenderPartialViewToString("PropertiesWithDiagrams", comparison),
                plot = RenderPartialViewToString("Plot", comparison),
                model = Newtonsoft.Json.JsonConvert.SerializeObject(comparison)
            }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult RemoveCurveFromInteractiveDiagram(int propertyid, int curveId)
        {
            ComparisonD comparison = _ComparisonDiagramBinder.GetComparisonDiagramModel();

            PropertyD property = comparison.Properties.Where(m => m.Id == propertyid).FirstOrDefault();

            int materialIdForRemoving = -1;

            foreach (var material in property.Materials)
            {
                string conditionIdForRemoving = null;

                foreach (var condition in material.Conditions)
                {
                    InterativeCurve curve = condition.Temperatures.Where(m => m.Id == curveId).FirstOrDefault();
                    if (curve != null)
                    {
                        condition.Temperatures.Remove(curve);
                        if (condition.Temperatures.Count == 0)
                        {
                            conditionIdForRemoving = condition.ConditionId;
                        }
                    }
                }
                if (conditionIdForRemoving != null)
                {
                    material.Conditions.Remove(material.Conditions.Where(m => m.ConditionId == conditionIdForRemoving).FirstOrDefault());
                }

                if (material.Conditions.Count == 0)
                {
                    materialIdForRemoving = material.MaterialId;
                }
            }


            property.Materials.Remove(property.Materials.Where(m => m.MaterialId == materialIdForRemoving).FirstOrDefault());


            if (property.Materials.Count == 0)
            {
                comparison.Properties.Remove(property);

                if (comparison.Properties.Count == 0)
                {
                    return(Json(ResponseStatus.Success, new { removedProperrty = true, comparisonHasPropeties = false }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    Comparison comparison1 = _basicBinder.GetComparison();
                    return(Json(ResponseStatus.Success, new
                    {
                        data = RenderPartialViewToString("PropertiesWithDiagrams", comparison1),
                        removedProperrty = true,
                        comparisonHasPropeties = true
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                int rowNumberDiagram = 0;
                foreach (var material1 in property.Materials)
                {
                    foreach (var condition1 in material1.Conditions)
                    {
                        foreach (var temperature1 in condition1.Temperatures)
                        {
                            rowNumberDiagram += 1;
                            temperature1.Id   = rowNumberDiagram;
                        }
                    }
                }
            }



            return(Json(ResponseStatus.Success, new { data = RenderPartialViewToString("InteractiveDiagram", property), removedProperrty = false, comparisonHasPropeties = true }, JsonRequestBehavior.AllowGet));
        }