private void UpdateSHData(MaterialProperty[] props, Material m)
    {
        SHData data = null;

        switch (_embientType)
        {
        case EmbientType.SkyBox:
            MaterialProperty _SkyBox    = FindProperty("_SkyBox", props);
            MaterialProperty _EnvRotate = FindProperty("_EnvRotate", props);
            data = SHLightGeneratorLib.GenSHBySkyBox(_SkyBox.textureValue, _EnvRotate.floatValue);
            break;

        case EmbientType.Gradient:
            MaterialProperty _AmbientSky     = FindProperty("_AmbientSky", props);
            MaterialProperty _AmbientEquator = FindProperty("_AmbientEquator", props);
            MaterialProperty _AmbientGround  = FindProperty("_AmbientGround", props);
            data = SHLightGeneratorLib.GenSHByTriLight(_AmbientSky.colorValue, _AmbientEquator.colorValue,
                                                       _AmbientGround.colorValue);
            break;
        }

        if (data != null)
        {
            m.SetVector("my_SHAr", data.SHAr);
            m.SetVector("my_SHAg", data.SHAg);
            m.SetVector("my_SHAb", data.SHAb);
            m.SetVector("my_SHBr", data.SHBr);
            m.SetVector("my_SHBg", data.SHBg);
            m.SetVector("my_SHBb", data.SHBb);
            m.SetVector("my_SHC", data.SHC);
        }
    }
    void Start()
    {
        LastMousePosition = Input.mousePosition;
        InputSH();
        shData = new SHData[AllCoffeeSH.Length];
        uvData = new Vector2[AllCoffeeSH.Length];
        for (int i = 0; i < uvData.Length; i++)
        {
            uvData [i].x        = i;
            shData [i]          = new SHData();
            shData [i].mat0.m00 = AllCoffeeSH [i].coffeeSHResult [0];
            shData [i].mat0.m01 = AllCoffeeSH [i].coffeeSHResult [1];
            shData [i].mat0.m02 = AllCoffeeSH [i].coffeeSHResult [2];
            shData [i].mat0.m03 = AllCoffeeSH [i].coffeeSHResult [3];

            shData [i].mat0.m10 = AllCoffeeSH [i].coffeeSHResult [4];
            shData [i].mat0.m11 = AllCoffeeSH [i].coffeeSHResult [5];
            shData [i].mat0.m12 = AllCoffeeSH [i].coffeeSHResult [6];
            shData [i].mat0.m13 = AllCoffeeSH [i].coffeeSHResult [7];

            shData [i].mat0.m20 = AllCoffeeSH [i].coffeeSHResult [8];
            shData [i].mat0.m21 = AllCoffeeSH [i].coffeeSHResult [9];
            shData [i].mat0.m22 = AllCoffeeSH [i].coffeeSHResult [10];
            shData [i].mat0.m23 = AllCoffeeSH [i].coffeeSHResult [11];

            shData [i].mat0.m30 = AllCoffeeSH [i].coffeeSHResult [12];
            shData [i].mat0.m31 = AllCoffeeSH [i].coffeeSHResult [13];
            shData [i].mat0.m32 = AllCoffeeSH [i].coffeeSHResult [14];
            shData [i].mat0.m33 = AllCoffeeSH [i].coffeeSHResult [15];
        }

        mBuffer = new ComputeBuffer(shData.Length, 64);

        mBuffer.SetData(shData);

        mSHMat.SetBuffer("shDataBuffer", mBuffer);
        mMesh.uv = uvData;
    }
        public List <clsProjectDetails> GetProjectDetails()
        {
            List <clsProjectDetails> listProjectDetail = new List <clsProjectDetails>();

            try
            {
                string AppUrl     = HttpContext.Request.Headers["appurl"];
                string SpUserId   = HttpContext.Request.Headers["LoggedInUserSPUserId"];
                string SchemaName = "";
                if (!string.IsNullOrEmpty(AppUrl))
                {
                    SchemaName = new clsUatClient(_context).GetClientSchema(AppUrl);
                }
                else
                {
                    return(null);
                }
                List <DetailAnalysis> listDetailAnalysis = new List <DetailAnalysis>();

                using (var cmd = _context.Database.GetDbConnection().CreateCommand())
                {
                    cmd.CommandText = "UAT.spProjectSelect";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@UserID", SqlDbType.VarChar, 500)
                    {
                        Value = SpUserId
                    });
                    cmd.Parameters.Add(new SqlParameter("@SchemaName", SqlDbType.VarChar, 500)
                    {
                        Value = SchemaName
                    });
                    cmd.Parameters.Add(new SqlParameter("@Ret_Parameter", SqlDbType.VarChar, 500)
                    {
                        Direction = ParameterDirection.Output
                    });

                    if (cmd.Connection.State != ConnectionState.Open)
                    {
                        cmd.Connection.Open();
                    }

                    var retObject = new List <dynamic>();

                    using (var dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            List <ProjectUser> listProjectUsers = new List <ProjectUser>();

                            #region 'New Iteration'
                            string lead         = Convert.ToString(dr["Project_Lead"]);
                            string stakeholders = Convert.ToString(dr["Project_SH"]);
                            //lead
                            if (!string.IsNullOrEmpty(lead))
                            {
                                string[] leadDetail = lead.Split(',');
                                listProjectUsers.Add(new ProjectUser()
                                {
                                    spUserId   = !string.IsNullOrEmpty(leadDetail[0]) ? Convert.ToString(leadDetail[0]) : string.Empty,
                                    userName   = !string.IsNullOrEmpty(leadDetail[1]) ? Convert.ToString(leadDetail[1]) : string.Empty,
                                    alias      = !string.IsNullOrEmpty(leadDetail[2]) ? Convert.ToString(leadDetail[2]) : string.Empty,
                                    email      = !string.IsNullOrEmpty(leadDetail[3]) ? Convert.ToString(leadDetail[3]) : string.Empty,
                                    securityId = !string.IsNullOrEmpty(leadDetail[4]) ? Convert.ToString(leadDetail[4]) : string.Empty,
                                });
                            }
                            //multiple stakeholder
                            if (!string.IsNullOrEmpty(stakeholders))
                            {
                                string[] SH = stakeholders.Split('~');
                                if (SH != null && SH.Length > 0)
                                {
                                    foreach (string SHData in SH)
                                    {
                                        if (!string.IsNullOrEmpty(SHData))
                                        {
                                            string[] SHDetail = SHData.Split(',');

                                            listProjectUsers.Add(new ProjectUser()
                                            {
                                                spUserId   = !string.IsNullOrEmpty(SHDetail[0]) ? Convert.ToString(SHDetail[0]) : string.Empty,
                                                userName   = !string.IsNullOrEmpty(SHDetail[1]) ? Convert.ToString(SHDetail[1]) : string.Empty,
                                                alias      = !string.IsNullOrEmpty(SHDetail[2]) ? Convert.ToString(SHDetail[2]) : string.Empty,
                                                email      = !string.IsNullOrEmpty(SHDetail[3]) ? Convert.ToString(SHDetail[3]) : string.Empty,
                                                securityId = !string.IsNullOrEmpty(SHDetail[4]) ? Convert.ToString(SHDetail[4]) : string.Empty,
                                            });
                                        }
                                    }
                                }
                            }



                            listProjectDetail.Add(new clsProjectDetails()
                            {
                                groupId          = Convert.ToString(dr["Group_Id"]),
                                portfolioId      = Convert.ToString(dr["Portfolio_Id"]),
                                projectId        = Convert.ToString(dr["Project_Id"]),
                                projectName      = Convert.ToString(dr["Project_Name"]),
                                projectVersion   = Convert.ToString(dr["Project_Version"]),
                                projectStatus    = Convert.ToString(dr["Project_Status"]),
                                startDate        = Convert.ToString(dr["Start_Date"]) == "" ? "" : Convert.ToDateTime(Convert.ToString(dr["Start_Date"])).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture),
                                endDate          = Convert.ToString(dr["End_Date"]) == "" ? "" : Convert.ToDateTime(Convert.ToString(dr["End_Date"])).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture),
                                description      = Convert.ToString(dr["Project_Description"]),
                                aliasAppUrl      = Convert.ToString(dr["AppAlias_Url"]),
                                appUrl           = Convert.ToString(dr["App_Url"]),
                                projectUrl       = Convert.ToString(dr["Project_Url"]),
                                projectAliasUrl  = Convert.ToString(dr["ProjectAlias_Url"]),
                                testpass_Count   = Convert.ToString(dr["tp_Count"]),
                                testpass_MinDate = Convert.ToString(dr["tp_MinDate"]) == "" ? "" : Convert.ToDateTime(Convert.ToString(dr["tp_MinDate"])).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture),
                                testpass_MaxDate = Convert.ToString(dr["tp_MaxDate"]) == "" ? "" : Convert.ToDateTime(Convert.ToString(dr["tp_MaxDate"])).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture),
                                listProjectUsers = listProjectUsers
                            });
                            #endregion
                        }
                    }


                    return(listProjectDetail.ToList());
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
        }