private List<MSARecommendation> GetFormattedRecommendations(string recommendatons, String[] pattern1, String[] pattern2)
        {
            try
            {
                List<MSARecommendation> lstMSARecommendation = new List<MSARecommendation>();

                var lstRecommendation = recommendatons.Split(pattern1, StringSplitOptions.None);

                foreach (var item in lstRecommendation)
                {
                    if (!String.IsNullOrEmpty(item))
                    {
                        var recommendationStr = item.Split(pattern2, StringSplitOptions.None);
                        if (recommendationStr.Length > 0)
                        {
                            MSARecommendation recommendation = new MSARecommendation();

                            recommendation.RecommendationId = String.IsNullOrEmpty(recommendationStr[0]) ? 0 : Int32.Parse(recommendationStr[0]);
                            recommendation.Description = recommendationStr[1];
                            recommendation.TypeOfVoilation = recommendationStr[2];
                            recommendation.RPUsername = recommendationStr[3];
                            recommendation.RPEmail = recommendationStr[4];
                            recommendation.AssigneeUsername = recommendationStr[3];
                            recommendation.AssigneeEmail = recommendationStr[4];
                            recommendation.SectionId = String.IsNullOrEmpty(recommendationStr[5]) ? 0 : Int32.Parse(recommendationStr[5]);
                            recommendation.SectionName = recommendationStr[6];
                            recommendation.InjuryClass = recommendationStr[7];
                            recommendation.ObservationCategory = recommendationStr[8];
                            recommendation.ObservationSubcategory = recommendationStr[9];
                            recommendation.DepartmentId = String.IsNullOrEmpty(recommendationStr[10]) ? 0 : Int32.Parse(recommendationStr[10]);
                            recommendation.DepartmentName = recommendationStr[11];
                            recommendation.TargetDate = recommendationStr[12];
                            recommendation.ObservationSpot = recommendationStr[13].Equals("yes", StringComparison.OrdinalIgnoreCase) ? true : false;
                            recommendation.ConsentTaken = recommendationStr[14].Equals("yes", StringComparison.OrdinalIgnoreCase) ? true : false;
                            recommendation.Status = recommendationStr[15];
                            recommendation.RecommendationNo = recommendationStr[16];
                            recommendation.IsSavedAsDraft = recommendationStr[17].Equals("true", StringComparison.OrdinalIgnoreCase) ? true : false;
                            recommendation.ValidationStatus = 0;

                            lstMSARecommendation.Add(recommendation);
                        }
                    }
                }
                return lstMSARecommendation;
            }
            catch (Exception ex)
            {
                SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("SL.FG.FFL(MSAForm->GetFormattedRecommendations)", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace);

                message_div.InnerHtml = "Something went wrong!!! Please Contact the administrator.";
                DisableControls();
            }

            return null;
        }
        private List<MSARecommendation> GetFormattedRecommendationsByMSA(SPWeb oSPWeb, int msaId)
        {
            try
            {
                string listName = "MSARecommendation";
                // Fetch the List
                SPList splistMSARecommendation = oSPWeb.GetList(string.Format("{0}/Lists/{1}/AllItems.aspx", oSPWeb.Url, listName));

                List<MSARecommendation> lstMSARecommendation = new List<MSARecommendation>();

                if (splistMSARecommendation != null)
                {
                    SPQuery query = new SPQuery();
                    SPListItemCollection spListItems;
                    // Include only the fields you will use.
                    StringBuilder vf = new StringBuilder();
                    vf.Append("<FieldRef Name='ID'/>")
                        .Append("<FieldRef Name='RecommendationNo'/>")
                        .Append("<FieldRef Name='TargetDate'/>")
                        .Append("<FieldRef Name='MSARecommendationDescription'/>")
                        .Append("<FieldRef Name='TypeOfVoilation'/>")
                        .Append("<FieldRef Name='ResponsiblePerson'/>")
                        .Append("<FieldRef Name='AssigneeEmail'/>")
                        .Append("<FieldRef Name='Assignee'/>")
                        .Append("<FieldRef Name='ResponsibleSection'/>")
                        .Append("<FieldRef Name='ResponsibleDepartment'/>")
                        .Append("<FieldRef Name='InjuryClass'/>")
                        .Append("<FieldRef Name='ObservationCategory'/>")
                        .Append("<FieldRef Name='ObservationSubcategory'/>")
                        .Append("<FieldRef Name='ConsentTaken'/>")
                        .Append("<FieldRef Name='ObservationSpot'/>")
                        .Append("<FieldRef Name='Status'/>");

                    query.ViewFields = vf.ToString();
                    query.ViewFieldsOnly = true;
                    StringBuilder sb = new StringBuilder();
                    sb.Append("<Where>")
                         .Append("  <Eq>")
                         .Append("    <FieldRef Name='MSAID' />")
                         .Append("    <Value Type='Number'>" + msaId + "</Value>")
                         .Append("  </Eq>")
                         .Append("</Where>");

                    query.Query = sb.ToString();
                    spListItems = splistMSARecommendation.GetItems(query);

                    for (int i = 0; i < spListItems.Count; i++)
                    {
                        SPListItem listItem = spListItems[i];
                        MSARecommendation recommendation = new MSARecommendation();
                        recommendation.RecommendationId = Convert.ToInt32(listItem["ID"]);
                        recommendation.RecommendationNo = Convert.ToString(listItem["RecommendationNo"]);

                        string targetDateStr = Convert.ToString(listItem["TargetDate"]);

                        if (!String.IsNullOrEmpty(targetDateStr))
                        {
                            DateTime date;
                            bool bValid = DateTime.TryParse(targetDateStr, new CultureInfo("en-GB"), DateTimeStyles.AssumeLocal, out date);

                            if (bValid)
                            {
                                recommendation.TargetDate = date.ToShortDateString();
                            }
                            else
                            {
                                recommendation.TargetDate = Convert.ToDateTime(targetDateStr).ToShortDateString();
                            }
                        }

                        recommendation.Description = Convert.ToString(listItem["MSARecommendationDescription"]);
                        recommendation.TypeOfVoilation = Convert.ToString(listItem["TypeOfVoilation"]);
                        recommendation.RPUsername = Convert.ToString(listItem["ResponsiblePerson"]);
                        recommendation.RPEmail = Convert.ToString(listItem["AssigneeEmail"]);
                        recommendation.AssigneeUsername = Convert.ToString(listItem["Assignee"]);
                        recommendation.AssigneeEmail = Convert.ToString(listItem["AssigneeEmail"]);
                        recommendation.InjuryClass = Convert.ToString(listItem["InjuryClass"]);
                        recommendation.ObservationCategory = Convert.ToString(listItem["ObservationCategory"]);
                        recommendation.ObservationSubcategory = Convert.ToString(listItem["ObservationSubcategory"]);
                        recommendation.ConsentTaken = Convert.ToBoolean(listItem["ConsentTaken"]);
                        recommendation.ObservationSpot = Convert.ToBoolean(listItem["ObservationSpot"]);
                        recommendation.Status = Convert.ToString(listItem["Status"]);

                        if (listItem["ResponsibleSection"] != null)
                        {
                            recommendation.SectionId = Convert.ToInt32(listItem["ResponsibleSection"]);

                            //Section
                            listName = "Section";
                            // Fetch the List
                            SPList spList = oSPWeb.GetList(string.Format("{0}/Lists/{1}/AllItems.aspx", oSPWeb.Url, listName));

                            if (spList != null && recommendation.SectionId > 0)
                            {
                                SPListItem spListItem = spList.GetItemById(recommendation.SectionId);

                                if (spListItem != null)
                                {
                                    recommendation.SectionName = Convert.ToString(spListItem["Title"]);
                                }
                            }
                        }

                        if (listItem["ResponsibleDepartment"] != null)
                        {
                            recommendation.DepartmentId = Convert.ToInt32(listItem["ResponsibleDepartment"]);

                            //Department
                            listName = "Department";
                            // Fetch the List
                            SPList spList = oSPWeb.GetList(string.Format("{0}/Lists/{1}/AllItems.aspx", oSPWeb.Url, listName));

                            if (spList != null && recommendation.DepartmentId > 0)
                            {
                                SPListItem spListItem = spList.GetItemById(recommendation.DepartmentId);

                                if (spListItem != null)
                                {
                                    recommendation.DepartmentName = Convert.ToString(spListItem["Title"]);
                                }
                            }
                        }

                        lstMSARecommendation.Add(recommendation);
                    }
                }

                return lstMSARecommendation;
            }
            catch (Exception ex)
            {
                SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("SL.FG.FFL(MSAForm->GetFormattedRecommendationsByMSA)", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace);

                message_div.InnerHtml = "Something went wrong!!! Please Contact the administrator.";
                DisableControls();
            }

            return null;
        }