private List <double> GetNegControlValues()
        {
            List <double> list = new List <double>();

            foreach (DX_GetPrimaryPlateControl_Result item in PrimaryPlateControl.Where(p => p.SubstanceID == "NegControl"))
            {
                list.Add(item.Value.ParseDouble());
            }

            return(list);
        }
        public void GetOrderInfo()
        {
            order = CBIS_DiscoveRx_Orders_ctx.Orders.Where(o => o.AmbitOrderID.Contains(orderID)).FirstOrDefault();
            if (order != null)
            {
                orderID      = order.AmbitOrderID;
                commonID     = order.AmbitOrderID.Left(order.AmbitOrderID.NthIndexOf("-", 2));
                contractList = CBIS_HTSContracts_ctx.Contracts.Where(c => c.ContractID.Contains(commonID)).ToList();

                targetList         = string.Empty;
                assayModeList      = string.Empty;
                targetClassList    = string.Empty;
                assayTypeList      = string.Empty;
                targetAssayList    = string.Empty;
                quoteIDList        = string.Empty;
                primaryPlateID     = string.Empty;
                numberOfDatapoints = 0;
                numberOfCompounds  = order.NumberOfCompounds.ParseInt();
                numberOfAssays     = 0;



                if (contractList.Count > 0)
                {
                    this.contract = contractList[0];
                    GetServiceType(this.contract);

                    foreach (Contract contract in contractList)
                    {
                        quoteID      = contract.QuoteID;
                        quoteIDList += (quoteIDList == string.Empty) ? quoteID : "/ " + quoteID;
                        Dx_Request request = CBIS_KinomeScan_RequestManager_ctx.Dx_Request.Where(d => d.QuoteNumber == quoteID).FirstOrDefault();
                        if (request != null)
                        {
                            requestID       = request.Dx_RequestID;
                            assaySelectList = CBIS_KinomeScan_RequestManager_ctx.mtp_Dx_RequestAssaysSelect(requestID).ToList();
                            if (assaySelectList.Count > 0)
                            {
                                for (int i = 0; i < assaySelectList.Count; i++)
                                {
                                    if (!targetList.Contains(assaySelectList[i].Target))
                                    {
                                        targetList += assaySelectList[i].Target + ", ";
                                    }

                                    if (!assayModeList.Contains(assaySelectList[i].Mode))
                                    {
                                        assayModeList += assaySelectList[i].Mode + ", ";
                                    }

                                    if (!targetClassList.Contains(assaySelectList[i].Class))
                                    {
                                        targetClassList += assaySelectList[i].Class + ", ";
                                    }

                                    if (!assayTypeList.Contains(assaySelectList[i].Type))
                                    {
                                        assayTypeList += assaySelectList[i].Type.ToLower() + ", ";
                                    }

                                    targetAssayList += string.Format("{0} - {1} - {2}", assaySelectList[i].Target, assaySelectList[i].Type, assaySelectList[i].Mode) + "<br />";
                                    numberOfAssays  += 1;
                                }
                            }
                        }

                        Redundancies redundancies = 0;

                        if (Enum.TryParse(contract.Redundancy, out redundancies))
                        {
                            numberOfRedundancy = (int)redundancies;
                        }
                    }

                    targetList      = targetList.Left(targetList.Length - 2);
                    targetClassList = targetClassList.Left(targetClassList.Length - 2).ReplaceLastOccurrence(", ", " and ");
                    assayModeList   = assayModeList.Left(assayModeList.Length - 2).ReplaceLastOccurrence(", ", " and ");

                    if (order.AmbitOrderID.Contains("-d-"))
                    {
                        isPrimaryScreen = false;
                        Objective       = string.Format("{0} {1}", assayModeList, "Secondary Screen");
                    }
                    else if (order.AmbitOrderID.Contains("-c-"))
                    {
                        isPrimaryScreen = true;
                        Objective       = string.Format("{0} {1}", assayModeList, "Primary Screen");
                        //PrimaryAssayData = CBIS_DiscoveRx_Orders_ctx.DX_GetPrimaryAssayData(commonID).OrderBy(m => m.CompoundName).ThenBy(m => m.AssayTarget).ThenBy(m => m.AssayType).ThenBy(m => m.AssayFormat).ThenByDescending(m=>m.Concentration).ToList();
                        PrimaryAssayData = CBIS_DiscoveRx_Orders_ctx.DX_GetPrimaryAssayData(commonID).OrderBy(m => m.CompoundName).ThenBy(m => m.AssayTarget).ThenBy(m => m.ContainerID).ToList();

                        foreach (DX_GetPrimaryAssayData_Result data in PrimaryAssayData)
                        {
                            if (data.AssayTarget == "Various")
                            {
                                //data.AssayTarget = PrimaryAssayData.Where(p => p.CompoundName == data.CompoundName && p.AssayTarget != "Various").Count() > 0 ? PrimaryAssayData.Where(p => p.CompoundName == data.CompoundName && p.AssayTarget != "Various").First().AssayTarget : data.AssayTarget;
                            }

                            DX_GetPrimaryAssayData_Result NegControlData = PrimaryAssayData.Where(p => p.ContainerID == data.ContainerID && p.SubstanceID == "NegControl").Count() > 0 ? PrimaryAssayData.Where(p => p.ContainerID == data.ContainerID && p.SubstanceID == "NegControl").First(): null;
                            DX_GetPrimaryAssayData_Result PosControlData = PrimaryAssayData.Where(p => p.ContainerID == data.ContainerID && p.SubstanceID == "PosControl").Count() > 0 ? PrimaryAssayData.Where(p => p.ContainerID == data.ContainerID && p.SubstanceID == "PosControl").First(): null;

                            if (NegControlData != null)
                            {
                                data.NegControl          = NegControlData.AvgValue;
                                data.NegControlDeviation = NegControlData.SD;
                            }

                            if (PosControlData != null)
                            {
                                data.PosControl          = PosControlData.AvgValue;
                                data.PosControlDeviation = PosControlData.SD;
                            }
                        }

                        PrimaryPlateControl = CBIS_DiscoveRx_Orders_ctx.DX_GetPrimaryPlateControl(commonID).ToList();

                        if (PrimaryPlateControl.Count > 0)
                        {
                            primaryPlateID = PrimaryPlateControl.First().ContainerID;
                        }
                    }

                    if (contractList.Count > 1)
                    {
                        string noGreekSymbol = targetList.ReplaceGreekSymbol();
                        AssayReportSummary = CBIS_DiscoveRx_Orders_ctx.DX_GetAssayReportSummary(commonID).Where(m => (targetList.ToLower().Contains(m.AssayTarget.ToLower()) || (targetList.ReplaceGreekSymbol().ToLower().Contains(m.AssayTarget.ToLower())))).OrderBy(m => m.CompoundName).ThenBy(m => m.AssayTarget).ThenBy(m => m.AssayName).ThenBy(m => m.AssayFormat).ToList();
                        //AssayReportSummary = CBIS_DiscoveRx_Orders_ctx.DX_GetAssayReportSummary(commonID).OrderBy(m => m.CompoundName).ThenBy(m => m.AssayTarget).ThenBy(m => m.AssayName).ThenBy(m => m.AssayFormat).ToList();
                    }
                    else
                    {
                        AssayReportSummary = CBIS_DiscoveRx_Orders_ctx.DX_GetAssayReportSummary(orderID.Left(17)).Where(m => (targetList.ToLower().Contains(m.AssayTarget.ToLower()) || (targetList.ReplaceGreekSymbol().ToLower().Contains(m.AssayTarget.ToLower())))).OrderBy(m => m.CompoundName).ThenBy(m => m.AssayTarget).ThenBy(m => m.AssayName).ThenBy(m => m.AssayFormat).ToList();
                    }

                    if (isPrimaryScreen)
                    {
                        //numberOfCompounds += PrimaryAssayData.Where(a => a.CompoundName!=null).Select(a => a.CompoundName).Distinct().Count();
                        numberOfDatapoints += numberOfAssays * numberOfCompounds * numberOfRedundancy;
                    }
                    else
                    {
                        //numberOfCompounds += AssayReportSummary.Where(a => !a.AssayID.Contains("REF-")).Select(a=>a.CompoundName).Distinct().Count();
                        numberOfDatapoints += numberOfAssays * numberOfCompounds * 20;
                    }


                    if (!isExportPDF)
                    {
                        buildFigureLegend();
                    }
                }
            }
        }