public static List<PMS.Model.DTO.Appraisal.KPI> GetKPIItemsToInsert(string[] result)
        {
            List<PMS.Model.DTO.Appraisal.KPI> lst_kpis = null;

            if (!Lib.Utility.Common.IsNullOrEmptyList(result))
            {
                lst_kpis = new List<Model.DTO.Appraisal.KPI>();
                string[] arr_values = new string[7];
                string[] arr_seperator = { "^&*" };

                foreach (string str_result in result.Where(sec => sec.Contains("NewKPI")))
                {
                    arr_values = Uri.UnescapeDataString(str_result).Split(arr_seperator, StringSplitOptions.None);

                    if (arr_values[4].Trim().Length != 0 && arr_values[5].Trim().Length != 0)
                    {
                        PMS.Model.DTO.Appraisal.KPI obj_kpi = new Model.DTO.Appraisal.KPI()
                        {
                            Appraisal = new Model.DTO.Appraisal.Appraisal() { Id = Convert.ToInt32(arr_values[1]) },
                            Section = new Model.DTO.Master.Section() { Id = Convert.ToInt32(arr_values[2]) },
                            Block = new Model.DTO.Master.Block() { Id = Convert.ToInt32(arr_values[3]) },
                            //Description = arr_values[4].Trim().TrimEnd('\r', '\n').Replace("\\n", Environment.NewLine),
                            //Target = arr_values[5].Trim().TrimEnd('\r', '\n').Replace("\\n", Environment.NewLine),
                            Description = Lib.Utility.Common.ReplaceLineBreaksForDatabase(arr_values[4].Trim()),
                            Target = Lib.Utility.Common.ReplaceLineBreaksForDatabase(arr_values[5].Trim()),
                            Priority = new Model.DTO.Master.Priority() { Id = Convert.ToInt32(arr_values[6]) }
                        };
                        lst_kpis.Add(obj_kpi);
                    }
                }
            }
            return lst_kpis;
        }
        public static List<PMS.Model.DTO.Appraisal.KPI> GetKPIProgressToUpdateForAjax(string[] result)
        {
            List<PMS.Model.DTO.Appraisal.KPI> lst_kpis = null;

            if (!Lib.Utility.Common.IsNullOrEmptyList(result))
            {
                lst_kpis = new List<Model.DTO.Appraisal.KPI>();
                string[] arr_values = new string[2];

                foreach (string str_result in result)
                {
                    string[] kparray = str_result.Replace("\"", "").Split(',');
                    //string tmp_comment = kparray[1].Split(':')[1].Replace("}]", "").Trim().TrimEnd('\r', '\n').Replace("\\n", Environment.NewLine).Trim();
                    string tmp_progress = Lib.Utility.Common.ReplaceLineBreaksForDatabase(kparray[1].Split(':')[1].Replace("}]", "").Trim());
                    //string tmp_comment_id = Lib.Utility.Common.ReplaceLineBreaksForDatabase(kparray[2].Split(':')[1].Replace("}]", "").Trim());
                    string tmp_comment_id = kparray[0].Split(':')[1].Trim().Substring(8);
                    PMS.Model.DTO.Appraisal.KPI obj_kpi = new Model.DTO.Appraisal.KPI()
                    {
                        Id = Convert.ToInt32(tmp_comment_id),
                        Progress = Lib.Utility.Common.ReplaceLineBreaksForDatabase(tmp_progress)
                    };
                    lst_kpis.Add(obj_kpi);
                }
            }
            return lst_kpis;
        }
        public static List<PMS.Model.DTO.Appraisal.KPI> GetKPIItemsToDelete(string[] result)
        {
            List<PMS.Model.DTO.Appraisal.KPI> lst_kpis = null;

            if (!Lib.Utility.Common.IsNullOrEmptyList(result))
            {
                lst_kpis = new List<Model.DTO.Appraisal.KPI>();

                foreach (string str_result in result)
                {
                    if (!string.IsNullOrEmpty(str_result))
                    {
                        PMS.Model.DTO.Appraisal.KPI obj_kpi = new Model.DTO.Appraisal.KPI() { Id = Int32.Parse(str_result) };
                        lst_kpis.Add(obj_kpi);
                    }
                }
            }
            return lst_kpis;
        }
        public static List<PMS.Model.DTO.Appraisal.KPI> GetKPIProgressToUpdate(string[] result)
        {
            List<PMS.Model.DTO.Appraisal.KPI> lst_kpis = null;

            if (!Lib.Utility.Common.IsNullOrEmptyList(result))
            {
                lst_kpis = new List<Model.DTO.Appraisal.KPI>();
                string[] arr_values = new string[2];
                string[] arr_seperator = { "^&*" };

                foreach (string str_result in result)
                {
                    arr_values = Uri.UnescapeDataString(str_result).Split(arr_seperator, StringSplitOptions.None);
                    PMS.Model.DTO.Appraisal.KPI obj_kpi = new Model.DTO.Appraisal.KPI()
                    {
                        Id = Convert.ToInt32(arr_values[1].Substring(8)),
                        Progress = Lib.Utility.Common.ReplaceLineBreaksForDatabase(arr_values[0])
                    };
                    lst_kpis.Add(obj_kpi);
                }
            }
            return lst_kpis;
        }