public ActionResult ScorecardResult(int ResultID) { ScorecardModel model = new ScorecardModel(); dsScorecard ScorecardDataset = new dsScorecard(); ResultTableAdapter ResultTA = new ResultTableAdapter(); ResultGroupTableAdapter ResultGroupTA = new ResultGroupTableAdapter(); ResultItemTableAdapter ResultItemTA = new ResultItemTableAdapter(); ScorecardTableAdapter ScorecardTA = new ScorecardTableAdapter(); ScorecardItemGroupTableAdapter ScorecardGroupTA = new ScorecardItemGroupTableAdapter(); ScorecardItemTableAdapter ScorecardItemTA = new ScorecardItemTableAdapter(); ResultTA.Fill(ScorecardDataset.Result, null, ResultID); ResultGroupTA.Fill(ScorecardDataset.ResultGroup, ResultID); ResultItemTA.Fill(ScorecardDataset.ResultItem, ResultID); dsScorecard.ResultRow ResultRow = ((dsScorecard.ResultRow)ScorecardDataset.Result.Rows[0]); UserTableAdapter UserTA = new UserTableAdapter(); UserTA.Fill(ScorecardDataset.User); dsScorecard.UserRow AgentScoredRow = ScorecardDataset.User.FindByUserID(ResultRow.AgentID); dsScorecard.UserRow ScoredByRow = ScorecardDataset.User.FindByUserID(ResultRow.ScorerID); ScorecardTA.Fill(ScorecardDataset.Scorecard, ResultRow.ScorecardID); ScorecardGroupTA.Fill(ScorecardDataset.ScorecardItemGroup, ResultRow.ScorecardID); dsScorecard.ScorecardRow ScorecardRow = ((dsScorecard.ScorecardRow)ScorecardDataset.Scorecard.Rows[0]); model.scorecardname = ScorecardRow.ScorecardName; model.scorecarddescription = ScorecardRow.ScorecardDescription; model.scorecardgroups = new List <ScorecardGroup>(); model.agentscored = new User { emailaddress = AgentScoredRow.EmailAddress, firstname = AgentScoredRow.FirstName, surname = AgentScoredRow.Surname }; model.scoredby = new User { emailaddress = ScoredByRow.EmailAddress, firstname = ScoredByRow.FirstName, surname = ScoredByRow.Surname }; model.comment = ResultRow.Comment; model.datescored = ResultRow.DateScored; model.callreference = ResultRow.CallReference; model.score = ResultRow.Score; foreach (dsScorecard.ScorecardItemGroupRow GroupRow in ScorecardDataset.ScorecardItemGroup) { DataRow[] ResultGroupRows = ScorecardDataset.ResultGroup.Select("ScorecardItemGroupID=" + GroupRow.ScorecardItemGroupID.ToString()); ScorecardGroup GroupItem = new ScorecardGroup { groupname = GroupRow.GroupName, pasmark = GroupRow.PassScore, groupdescription = GroupRow.Description, comment = ((dsScorecard.ResultGroupRow)ResultGroupRows[0]).Comment, score = ((dsScorecard.ResultGroupRow)ResultGroupRows[0]).Score }; GroupItem.scorecarditems = new List <ScorecardItem>(); ScorecardDataset.ScorecardItem.Clear(); ScorecardItemTA.Fill(ScorecardDataset.ScorecardItem, ResultRow.ScorecardID, GroupRow.ScorecardItemGroupID); foreach (dsScorecard.ScorecardItemRow ItemRow in ScorecardDataset.ScorecardItem) { DataRow[] ResultItemRows = ScorecardDataset.ResultItem.Select("QuestionID=" + ItemRow.ScorecardItemID.ToString()); ScorecardItem Item = new ScorecardItem { question = ItemRow.Question, autofail = ItemRow.AutoFail.ToString(), questiontype = ItemRow.QuestionType, scoremodifier = ItemRow.ScoreModifier, answer = ((dsScorecard.ResultItemRow)ResultItemRows[0]).Answer, comment = ((dsScorecard.ResultItemRow)ResultItemRows[0]).Comment, score = ((dsScorecard.ResultItemRow)ResultItemRows[0]).Score }; GroupItem.scorecarditems.Add(Item); } model.scorecardgroups.Add(GroupItem); } return(View(model)); }
public ActionResult Score(ScorecardModel model, string submit) { dsScorecard ScorecardDataset = new dsScorecard(); ScorecardTableAdapter ScorecardTA = new ScorecardTableAdapter(); ScorecardTA.Fill(ScorecardDataset.Scorecard, model.scorecardid); dsScorecard.ScorecardRow ScoreCardRow = ScorecardDataset.Scorecard.FindByScorecardID(model.scorecardid); model.scorecardname = ScoreCardRow.ScorecardName; if (submit == "Load") { RecordingSelectCommandTableAdapter RecordingTA = new RecordingSelectCommandTableAdapter(); RecordingTA.Fill(ScorecardDataset.RecordingSelectCommand, model.callreference.ToString()); model.Callrecordinglist = new List <SelectListItem>(); foreach (dsScorecard.RecordingSelectCommandRow row in ScorecardDataset.RecordingSelectCommand.Rows) { SelectListItem item = new SelectListItem(); item.Text = row.Description; item.Value = row.CallDate.ToString("ddMMyyyy") + "\\" + row.FileName; model.Callrecordinglist.Add(item); } } if (submit == "Load Call") { string recordingpath = ScorecardApplication.Properties.Settings.Default.CallRecordingPath + model.recording; model.recordingfilename = recordingpath.Replace(".vox", ".mp3"); ScorecardItemGroupTableAdapter SCGroupTA = new ScorecardItemGroupTableAdapter(); SCGroupTA.Fill(ScorecardDataset.ScorecardItemGroup, model.scorecardid); ScorecardItemTableAdapter SCItemTA = new ScorecardItemTableAdapter(); if (ScorecardDataset.ScorecardItemGroup.Rows.Count > 0) { model.scorecardgroups = new List <ScorecardGroup>(); } foreach (dsScorecard.ScorecardItemGroupRow GroupRow in ScorecardDataset.ScorecardItemGroup.Rows) { ScorecardGroup NewGroup = new ScorecardGroup() { groupid = GroupRow.ScorecardItemGroupID, groupdescription = GroupRow.Description, groupname = GroupRow.GroupName, pasmark = GroupRow.PassScore }; SCItemTA.Fill(ScorecardDataset.ScorecardItem, model.scorecardid, GroupRow.ScorecardItemGroupID); if (ScorecardDataset.ScorecardItem.Rows.Count > 0) { NewGroup.scorecarditems = new List <ScorecardItem>(); } foreach (dsScorecard.ScorecardItemRow ItemRow in ScorecardDataset.ScorecardItem.Rows) { ScorecardItem NewItem = new ScorecardItem(); NewItem.autofail = ItemRow.AutoFail.ToString(); String[] PossibleAnswerArray = ItemRow.PossibleAnswers.Split("|".ToCharArray()); NewItem.possibleanswerslist = new List <SelectListItem>(); foreach (String possibleanswer in PossibleAnswerArray) { SelectListItem SelectItem = new SelectListItem { Text = possibleanswer, Value = possibleanswer }; NewItem.possibleanswerslist.Add(SelectItem); } ; NewItem.question = ItemRow.Question; NewItem.questiontype = ItemRow.QuestionType; NewItem.itemid = ItemRow.ScorecardItemID; NewGroup.scorecarditems.Add(NewItem); } model.scorecardgroups.Add(NewGroup); } } if (submit == "Save Scorecard") { ResultTableAdapter ResultTA = new ResultTableAdapter(); ResultItemTableAdapter ResultItemTA = new ResultItemTableAdapter(); ResultGroupTableAdapter ResultGroupTA = new ResultGroupTableAdapter(); UserTableAdapter UserTA = new UserTableAdapter(); UserTA.Fill(ScorecardDataset.User); int ScorerID = 0; foreach (dsScorecard.UserRow row in ScorecardDataset.User) { if (row.Username.ToLower() == User.Identity.Name.ToLower()) { ScorerID = row.UserID; } } ScorecardItemGroupTableAdapter SCGroupTA = new ScorecardItemGroupTableAdapter(); SCGroupTA.Fill(ScorecardDataset.ScorecardItemGroup, model.scorecardid); ScorecardItemTableAdapter SCItemTA = new ScorecardItemTableAdapter(); SCItemTA.Fill(ScorecardDataset.ScorecardItem, model.scorecardid, null); model.score = 0; bool AutoFail = false; foreach (ScorecardGroup Group in model.scorecardgroups) { Group.score = 0; foreach (ScorecardItem Item in Group.scorecarditems) { dsScorecard.ScorecardItemRow ItemRow = ScorecardDataset.ScorecardItem.FindByScorecardItemID(Item.itemid); if (Item.answer.ToLower() == ItemRow.Answer.ToLower()) { Item.score = ItemRow.ScoreModifier; Group.score += ItemRow.ScoreModifier; model.score += ItemRow.ScoreModifier; } else { Item.score = 0; if (Item.autofail.ToLower() == "true") { AutoFail = true; } } } } if (AutoFail) { model.score = 0; } // Save Results int ResultID = Convert.ToInt32(ResultTA.ResultInsertCommand(model.agentscored.userid, ScorerID, model.scorecardid, DateTime.Now, model.callreference, model.score, model.comment)); foreach (ScorecardGroup Group in model.scorecardgroups) { int GroupID = 0; GroupID = Convert.ToInt32(ResultGroupTA.ResultGroupInsertCommand(ResultID, Group.groupid, Group.comment, Group.score)); foreach (ScorecardItem Item in Group.scorecarditems) { ResultItemTA.ResultItemInsertCommand(ResultID, Item.itemid, Item.answer, Item.score, Item.comment, GroupID); } } return(Redirect("/home/index")); } return(View(model)); }
public ActionResult NewScorecard(Models.ScorecardModel model, string submit) { System.Collections.Specialized.NameObjectCollectionBase.KeysCollection keys = Request.Form.Keys; foreach (string item in keys) { if (item.Contains("delete")) { int groupid = Convert.ToInt32(item.Substring(18, item.IndexOf("]") - 18)); int questionid = Convert.ToInt32(item.Replace(item.Substring(0, item.IndexOf("]") + 1), "").Replace(".scorecarditems[", "").Replace("].delete", "")); ScorecardItem SCItem = model.scorecardgroups[groupid].scorecarditems[questionid]; model.scorecardgroups[groupid].scorecarditems.Remove(SCItem); //return View(model); } if (item.Contains("addpf")) { int groupid = Convert.ToInt32(item.Substring(18, item.IndexOf("]") - 18)); List <SelectListItem> PossibleAnswersList = new List <SelectListItem>(); PossibleAnswersList.Add(new SelectListItem { Text = "Pass", Value = "Pass" }); PossibleAnswersList.Add(new SelectListItem { Text = "Fail", Value = "Fail" }); if (model.scorecardgroups[groupid].scorecarditems == null) { model.scorecardgroups[groupid].scorecarditems = new List <ScorecardItem>(); } ScorecardItem SCitem = new ScorecardItem() { questiontype = "Pass/Fail", possibleanswers = "Pass|Fail", possibleanswerslist = PossibleAnswersList }; model.scorecardgroups[groupid].scorecarditems.Add(SCitem); ViewData[$"m.scorecardgroups[{groupid}].scorecarditems[{(model.scorecardgroups[groupid].scorecarditems.Count-1).ToString()}].possibleanswers"] = "Pass|Fail"; //return View(model); } if (item.Contains("addmc")) { int groupid = Convert.ToInt32(item.Substring(18, item.IndexOf("]") - 18)); if (model.scorecardgroups[groupid].scorecarditems == null) { model.scorecardgroups[groupid].scorecarditems = new List <ScorecardItem>(); } model.scorecardgroups[groupid].scorecarditems.Add(new ScorecardItem() { questiontype = "Multiple Choice" }); //return View(model); } if (item.Contains("newitem")) { string key = item.Replace("newitem", "itemvalue"); string[] value = Request.Form.GetValues(key); int groupid = Convert.ToInt32(item.Substring(18, item.IndexOf("]") - 18)); int questionid = Convert.ToInt32(item.Replace(item.Substring(0, item.IndexOf("]") + 1), "").Replace(".scorecarditems[", "").Replace("].newitem", "")); string[] existinganswers = new String[] { }; string existinganswer = Request.Form.GetValues($"m.scorecardgroups[{groupid}].scorecarditems[{questionid}].possibleanswers")[0]; if (existinganswer != "") { existinganswers = existinganswer.Split(Convert.ToChar("|")); } if (model.scorecardgroups[groupid].scorecarditems[questionid].possibleanswerslist == null) { model.scorecardgroups[groupid].scorecarditems[questionid].possibleanswerslist = new List <SelectListItem>(); if (existinganswers != null) { foreach (string answer in existinganswers) { model.scorecardgroups[groupid].scorecarditems[questionid].possibleanswerslist.Add(new SelectListItem { Text = answer, Value = answer }); } } } model.scorecardgroups[groupid].scorecarditems[questionid].possibleanswerslist.Add(new SelectListItem { Text = value[0], Value = value[0] }); String possibleanswers = ""; foreach (SelectListItem answer in model.scorecardgroups[groupid].scorecarditems[questionid].possibleanswerslist) { if (possibleanswers != "") { possibleanswers = possibleanswers + "|"; } possibleanswers = possibleanswers + answer.Text; } model.scorecardgroups[groupid].scorecarditems[questionid].possibleanswers = possibleanswers; ViewData[$"m.scorecardgroups[{groupid}].scorecarditems[{questionid}].possibleanswers"] = possibleanswers; // return View(model); } } if (submit == "Add Group") { if (model.scorecardgroups == null) { model.scorecardgroups = new List <ScorecardGroup>(); } model.scorecardgroups.Add(new ScorecardGroup { groupname = "New Group" }); model.scorecardgroups[model.scorecardgroups.Count - 1].scorecarditems = new List <ScorecardItem>(); // return View(model); } for (int j = 0; j < model.scorecardgroups.Count; j++) { ScorecardGroup Group = model.scorecardgroups[j]; for (int i = 0; i < model.scorecardgroups[j].scorecarditems.Count; i++) { ScorecardItem Item = model.scorecardgroups[j].scorecarditems[i]; String PreviousAnswers = ""; PreviousAnswers = Item.possibleanswers; if (PreviousAnswers == null || PreviousAnswers == "") { try { PreviousAnswers = Request.Form.GetValues($"m.scorecardgroups[{j}].scorecarditems[{i}].possibleanswers")[0]; } catch (Exception e) { PreviousAnswers = Item.possibleanswers; } } if (PreviousAnswers != null) { String[] PossibleAnswers = PreviousAnswers.Split(Convert.ToChar("|")); ViewData[$"m.scorecardgroups[{j}].scorecarditems[{i}].possibleanswers"] = PreviousAnswers; Item.possibleanswerslist = new List <SelectListItem>(); foreach (String Answer in PossibleAnswers) { Item.possibleanswerslist.Add(new SelectListItem { Text = Answer, Value = Answer }); } } } } if (submit == "Save") { dsScorecard ScorecardDataset = new dsScorecard(); ScorecardTableAdapter ScorecardTA = new ScorecardTableAdapter(); ScorecardItemGroupTableAdapter ScorecardGroupTA = new ScorecardItemGroupTableAdapter(); ScorecardItemTableAdapter ScorecardItemTA = new ScorecardItemTableAdapter(); int ScorecardID = Convert.ToInt32(ScorecardTA.ScorecardInsertCommand(model.scorecardname, model.scorecarddescription, model.passmark)); for (int j = 0; j < model.scorecardgroups.Count; j++) { ScorecardGroup group = model.scorecardgroups[j]; int GroupID = Convert.ToInt32(ScorecardGroupTA.ScorecardItemGroupInsertCommand(ScorecardID, group.groupname, group.groupdescription, group.pasmark)); for (int i = 0; i < model.scorecardgroups[j].scorecarditems.Count; i++) { ScorecardItem item = model.scorecardgroups[j].scorecarditems[i]; bool autofail; if (item.autofail == "Yes") { autofail = true; } else { autofail = false; } string existinganswer = Request.Form.GetValues($"m.scorecardgroups[{j}].scorecarditems[{i}].possibleanswers")[0]; ScorecardItemTA.Insert(ScorecardID, item.question, item.questiontype, existinganswer, item.scoremodifier, autofail, GroupID, item.answer); } } return(Redirect("/home/index")); } return(View(model)); }