//Load Raters' information from the datatable public static Dictionary <string, List <Rater> > GetLoadRaters(DataTable dt) { var questionList = new Dictionary <string, List <Rater> >(); var raterObject = new Rater(); var question = string.Empty; var questionRaterList = new List <Rater>(); for (int i = 0; i < dt.Rows.Count; i++) { //Get a question from datatable row and store it to a question variable question = !string.IsNullOrWhiteSpace(dt.Rows[i].ItemArray[0].ToString()) ? dt.Rows[i].ItemArray[0].ToString() : string.Empty; //Go through all the PA Upload template spreadsheet columns except first column (Question) to get all the raters for (int j = 1; j < dt.Columns.Count; j++) { //get raters' information raterObject.Name = !string.IsNullOrWhiteSpace(dt.Rows[i].ItemArray[i].ToString()) ? dt.Rows[i].ItemArray[i].ToString() : string.Empty; if (!string.IsNullOrWhiteSpace(raterObject.Name)) { questionRaterList.Add(new Rater() { Name = raterObject.Name }); } } //Add a question and its associated rater in the disctinery list questionList.Add(question, questionRaterList); } return(questionList); }
//A method to return a list of survey questions from the database public static List <Survey> GetSurveyQuestions(DataTable dt) { var surveyList = new List <Survey>(); //Get a list of raters var employeeSurvey = GetLoadRaters(dt); foreach (var questionLineItem in employeeSurvey) { var surveyObject = new Survey(); List <Rater> ratersInformation = new List <Rater>(); var raterCounter = 0; //Loop through a list of raters and add each name to raters' list foreach (var rater in employeeSurvey) { if (!string.IsNullOrWhiteSpace(rater.Value[raterCounter].Name)) { var raterObject = new Rater(); raterObject.Name = rater.Value[raterCounter].Name; ratersInformation.Add(raterObject); } } raterCounter++; //Store a question to a question object surveyObject.Question = questionLineItem.Key; surveyObject.RaterList = new List <Rater>(ratersInformation); surveyList.Add(surveyObject); ratersInformation.Clear(); } return(surveyList); }