Advertisement
yuvarajupadhyaya

Multiple resultset from proc to ado.net

Aug 11th, 2022
2,146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.22 KB | None | 0 0
  1.  public List<Dictionary<string, string>> GetAllLeadStudent()
  2.         {
  3.             List<Dictionary<string, string>> finalData = NEW List<Dictionary<string, string>>();
  4.             USING (var db = NEW EduConnectDbEntities())
  5.             {
  6.                 try
  7.                 {
  8.                     var leadQuestionId = _formService.GET(x => x.Title == "Lead Qualification Form").Id;
  9.                     var cmd = db.DATABASE.Connection.CreateCommand();
  10.                     cmd.CommandText = "[dbo].[sp_API_Lead_Qualification]";
  11.                     cmd.CommandType = CommandType.StoredProcedure;
  12.                     cmd.Parameters.ADD(NEW SqlParameter("@title", "Lead Qualification Form"));
  13.                     cmd.Parameters.ADD(NEW SqlParameter("@leadQuestionId", leadQuestionId));
  14.                     db.DATABASE.Connection.OPEN();
  15.                     var reader = cmd.ExecuteReader();
  16.                     var Studentdata = ((IObjectContextAdapter)db)
  17.                                      .ObjectContext
  18.                                      .Translate<SPStudentDetails>(reader)
  19.                                      .ToList();
  20.  
  21.                     reader.NextResult();
  22.                     var Answersdata = ((IObjectContextAdapter)db)
  23.                                      .ObjectContext
  24.                                      .Translate<SPAnswersDetails>(reader)
  25.                                      .ToList();
  26.  
  27.                     reader.NextResult();
  28.                     var Questionsdata = ((IObjectContextAdapter)db)
  29.                                      .ObjectContext
  30.                                      .Translate<SPQuestionDetail>(reader)
  31.                                      .ToList();
  32.  
  33.                     IF(Questionsdata !=NULL && Questionsdata.COUNT > 0)
  34.                     {
  35.                         foreach (var item IN Questionsdata)
  36.                         {
  37.                             item.Title = item.Title.REPLACE("{StudentName}", "");
  38.                             item.Title = item.Title.REPLACE("<b>", "");
  39.                             item.Title = item.Title.REPLACE("</b>", "");
  40.                             item.Title = item.Title.TRIM(',');
  41.                             item.Title = item.Title.TRIM();
  42.                         }
  43.                     }
  44.                     IF (Answersdata != NULL)
  45.                     {
  46.                         foreach (var item IN Answersdata)
  47.                         {
  48.                             IF (string.IsNullOrEmpty(item.FormEntryValueList))
  49.                             {
  50.                                 item.Answer = item.FormEntryValueList;
  51.                             }
  52.                             ELSE IF (!string.IsNullOrEmpty(item.FormEntryValueList))
  53.                             {
  54.                                 string[] answers = item.FormEntryValueList.Split(',');
  55.                                 List<string> answerList = NEW List<string>();
  56.                                 IF (answers != NULL && INT.TryParse(answers[0], OUT _))
  57.                                 {
  58.                                     foreach (var ans IN answers)
  59.                                     {
  60.                                         var checkSupportiveText = (FROM a IN _formEntryService.GetAll()
  61.                                                                    JOIN b IN _formEntryValueService.GetAll() ON a.Id equals b.FormEntryId
  62.                                                                    JOIN c IN _formEntryValueOptionService.GetAll() ON b.VALUE equals c.FormEntityOptionId.ToString()
  63.                                                                    WHERE a.UserId == item.UserId && a.Id == item.FormEntryId && c.FormEntityOptionId.ToString() == ans
  64.                                                                    SELECT c.SupportiveText).ToList();
  65.                                         IF (checkSupportiveText.COUNT() == 0)
  66.                                             answerList.ADD(ans);
  67.                                         IF (checkSupportiveText.COUNT() != 0 && checkSupportiveText[0] == NULL)
  68.                                             answerList.ADD(_formEntityOptionService.GET(INT.Parse(ans)).Title);
  69.                                         ELSE
  70.                                             answerList.ADD(string.JOIN(",", checkSupportiveText.ToArray()));
  71.                                     }
  72.                                     item.Answer = String.JOIN(", ", answerList.ToArray());
  73.                                     item.Answer = item.Answer.TrimEnd(' ').TrimEnd(',');
  74.                                 }
  75.                                 ELSE
  76.                                 {
  77.                                     item.Answer = item.FormEntryValueList;
  78.                                 }
  79.                             }
  80.                         }
  81.                     }
  82.                     foreach (var item IN Studentdata)
  83.                     {
  84.                         Dictionary<string, string> keyValuePairs = NEW Dictionary<string, string>();
  85.                         keyValuePairs.ADD("Id", item.Id);
  86.                         keyValuePairs.ADD("FullName", item.FullName);
  87.                         keyValuePairs.ADD("Country", item.CountryName);
  88.                         foreach (var question IN Questionsdata)
  89.                         {
  90.                             var answerTemp = Answersdata.WHERE(x=>x.UserId == item.Id && x.FormId == question.FormId).FirstOrDefault();
  91.                             keyValuePairs.ADD(question.Step.ToString() + ". " +question.Title, answerTemp !=NULL ? answerTemp.Answer : NULL);
  92.                         }
  93.                         finalData.ADD(keyValuePairs);
  94.                         keyValuePairs.ADD("Total Score", item.TotalScore.ToString());
  95.                         keyValuePairs.ADD("TimeStamp", item.TIMESTAMP != NULL ? item.TIMESTAMP.VALUE.ToString("yyyy/MM/dd HH:mm:ss") : item.CreateDate.ToString("yyyy/MM/dd HH:mm:ss"));
  96.                     }
  97.                     RETURN finalData;
  98.                 }
  99.                 catch (Exception ex)
  100.                 {
  101.  
  102.                     throw ex;
  103.                 }
  104.                 finally
  105.                 {
  106.                     db.DATABASE.Connection.Close();
  107.                 }
  108.             }
  109.  
  110.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement