public SummaryDetailsForm(DataRow Person, SummaryDetails summaryDetails) : base(summaryDetails, Person) { this.summaryDetails = summaryDetails; this.Person = Person; Tab_SummaryDetail_Comp(); Tab_Summary_Comp(); }
public MainProgram() { try { data_Import = Data_Import.Singleton(); if (!data_Import.CheckConnectionToDataBase()) { Environment.Exit(0); } //Widocznoś Maina dla Wszystkich. Self = this; //Pobranie danych z bazy dla dostępów osób logujących się do programy Access = data_Import.Load_Access(); //Tworzenie Użytkowanika CreateUsers NewUsers = new CreateUsers(Access); //Inicjalizowanie programu InitializeComponent(); action = new Action(this, data_Import); admin = new Admin(); summaryDetails = new SummaryDetails(); //Budowanie Formsa w zależności od uprawnień buildForm.Tab_Control_Add(Access, this, action, summaryDetails, admin, data_Import); if (ApplicationDeployment.IsNetworkDeployed) { toolStripStatusLabel1.Text = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString() + " Beta Version"; } else { toolStripStatusLabel1.Text = "0.5.0.40 Beta Portable Version"; } if (Environment.UserName.ToString() == "BartkKon") { string Link = data_Import.CheckLink(); toolStripStatusLabel1.Text = toolStripStatusLabel1.Text + " " + Link; } } catch (Exception ex) { LogSingleton.Instance.SaveLog(ex.Message); } }
public List <SummaryDetails> GetQRFSummaryDetails(QRFSummaryGetRes qrfSummaryGetRes, string token) { List <SummaryDetails> summaryDetails = new List <SummaryDetails>(); try { var totalSummaryDetails = qrfSummaryGetRes.SummaryDetailsInfo.Count; if (qrfSummaryGetRes.ResponseStatus.Status == "Success" && totalSummaryDetails > 0) { int counter = 0; foreach (var summary in qrfSummaryGetRes.SummaryDetailsInfo) { var objSummary = new SummaryDetails(); objSummary.Day = summary.Day; objSummary.OriginalItineraryDate = DateTime.Parse(summary.OriginalItineraryDate.ToString()).ToString("dd MMM yy"); objSummary.OriginalItineraryDay = summary.OriginalItineraryDay; objSummary.PlaceOfService = summary.PlaceOfService; objSummary.OriginalItineraryName = summary.OriginalItineraryName; //if (counter == 0) //{ // objSummary.OriginalItineraryName = "ARRIVE AT " + summary.OriginalItineraryName.Split('-')[0]; //} //else if (counter == totalSummaryDetails - 1) //{ // objSummary.OriginalItineraryName = "DEPART FROM " + summary.OriginalItineraryName.Split('-')[0]; //} //else //{ // objSummary.OriginalItineraryName = summary.OriginalItineraryName; //} foreach (var itinerary in summary.OriginalItineraryDetails) { var objOriginal = new OriginalItineraryDetails(); objOriginal.PositionId = itinerary.PositionId; objOriginal.Allocation = itinerary.Allocation; objOriginal.NumberOfPax = itinerary.NumberOfPax; objOriginal.Supplier = itinerary.Supplier; objOriginal.OriginalItineraryDescription = itinerary.OriginalItineraryDescription; objOriginal.ProductType = itinerary.ProductType; objOriginal.TLRemarks = itinerary.TLRemarks; objOriginal.OPSRemarks = itinerary.OPSRemarks; objOriginal.IsDeleted = itinerary.IsDeleted; objOriginal.KeepAs = itinerary.KeepAs; objOriginal.ProductCategoryId = itinerary.ProductCategoryId; objOriginal.ProductCategory = itinerary.ProductCategory; objOriginal.ProductTypeChargeBasis = itinerary.ProductTypeChargeBasis; objOriginal.BuyCurrency = itinerary.BuyCurrency; objOriginal.StartTime = itinerary.StartTime; objOriginal.EndTime = itinerary.EndTime; objSummary.OriginalItineraryDetails.Add(objOriginal); } summaryDetails.Add(objSummary); counter++; } //model.SummaryDetails = summaryDetails; } } catch (Exception ex) { } return(summaryDetails); }
public Solution(string id) { this.ID_DARP = id; SummaryDetails = new SummaryDetails(); }
public void ExecuteMetaheuristic(ref Solution bestSolution) { int bestIteration = 0; Solution partialSolution = GenericCopier <Solution> .DeepCopy(bestSolution); int control_Diversify = 0; SummaryDetails summary = new SummaryDetails(); Splash.SplashGlobalData.SetSplashData(Constants.SPLASH_BEST_SOLUTION, bestSolution.Fitness); double pertCost = 0, vnsCost = 0; int iterations = 0; //Guardar coste inicial. summary.ILSSummary.InitCost = bestSolution.Parc_Cost; for (int i = 0; iterations < _ilsSettings.MaxILSIterations && i < _ilsSettings.MaxILSNoImprovement; i++) { //Control de intensificación-diversificación. if (i % _DIVERSIFY_MAX == 0) { _diversify--; } _diversify = _diversify < 3 ? 3 : _diversify; if (i % 100 == 0) { _diversify = _DIVERSIFY_MAX; } //Guardar valores estadísticos. var initCost = partialSolution.Parc_Cost; var initFitness = partialSolution.Fitness; Splash.SplashGlobalData.SetSplashData(Constants.SPLASH_ILS_TOTAL_ITERATIONS, iterations + 1); //Apply VNS local search. _vns.ExecuteMetaheuristic(ref partialSolution); //Validator.ValidateSolution(ref partialSolution, _problem); bool feasible = partialSolution.Feasible; //Guardar valores estadísticos. vnsCost = Costs.ParcialCostSolution(partialSolution, _problem); // partialSolution.Parc_Cost; var vnsFitness = partialSolution.Fitness; if (vnsFitness < initFitness) { summary.ILSSummary.TotalImpPrevious++; //Incrementar el número de veces que se mejora la solución previa (perturbada). } if (bestSolution.Feasible) { if (partialSolution.Feasible && (Math.Round(partialSolution.Fitness, 2) < Math.Round(bestSolution.Fitness, 2))) { bestSolution = GenericCopier <Solution> .DeepCopy(partialSolution); //Actualizar la mejor solución con los nuevos parámetros. control_Diversify = 0; bestIteration = i; i = 0; _diversify = _DIVERSIFY_MAX; summary.ILSSummary.BestIteration = iterations + 1; //Guardar mejor iteración encontrada. summary.ILSSummary.TotalImpBest++; //Incrementar el número de veces que se mejora la mejor solución. Singleton.Instance.UpdatePenaltyTerms(partialSolution); Splash.SplashGlobalData.SetSplashData(Constants.SPLASH_ILS_IMPROVEMENTS, summary.ILSSummary.TotalImpBest); Splash.SplashGlobalData.SetSplashData(Constants.SPLASH_BEST_SOLUTION, Math.Round(bestSolution.Fitness, 2)); } else { control_Diversify++; } } else { if (partialSolution.Feasible || Math.Round(partialSolution.Fitness, 2) < Math.Round(bestSolution.Fitness, 2)) { if (partialSolution.Feasible && summary.ILSSummary.FirstItFeasible == null) { summary.ILSSummary.FirstItFeasible = iterations + 1; //Guardar primera iteración factible. } bestSolution = GenericCopier <Solution> .DeepCopy(partialSolution); control_Diversify = 0; i = 0; _diversify = _DIVERSIFY_MAX; summary.ILSSummary.BestIteration = iterations + 1; //Guardar mejor iteración encontrada. summary.ILSSummary.TotalImpBest++; //Incrementar el número de veces que se mejora la mejor solución. Singleton.Instance.UpdatePenaltyTerms(partialSolution); //bestSolution.Fitness = Costs.EvaluationSolution(bestSolution, _problem); Splash.SplashGlobalData.SetSplashData(Constants.SPLASH_ILS_IMPROVEMENTS, summary.ILSSummary.TotalImpBest); Splash.SplashGlobalData.SetSplashData(Constants.SPLASH_BEST_SOLUTION, bestSolution.Fitness); } else { control_Diversify++; } } if (control_Diversify > _diversify) { partialSolution = GenericCopier <Solution> .DeepCopy(bestSolution); control_Diversify = 0; } var perturbation = _perturbations.ExecutePerturbation(ref partialSolution); //Guardar valores estadísticos. pertCost = partialSolution.Parc_Cost; var pertFitness = partialSolution.Fitness; //Añadir resumen de la iteración. summary.VNSOperators.Add(new VNSOperators(iterations, _vns.ShiftInter, 0, _vns.WRI_IntraOP, _vns.IntraRouteInsertionOP, _vns.IntraSwap)); summary.ILSEvolution.Add(new ILSEvolution(iterations, Math.Round(initCost, 2), Math.Round(initFitness, 2), Math.Round(vnsCost, 2), Math.Round(vnsFitness, 2), perturbation, Math.Round(pertFitness, 2), Math.Round(pertCost, 2), feasible)); Splash.SplashGlobalData.SetSplashData(Constants.SPLASH_PROGRESS, Convert.ToDouble(Splash.SplashGlobalData.GetSplashData <double>(Constants.SPLASH_PROGRESS)) + _coef_Updater_Splash); //Guardar cambios de cada operador. iterations++; } //Recalcular con el proceso de 8 pasos y actualizar el coste. foreach (var vehicle in bestSolution.Vehicles) { DARPAlgorithms.EightStepsEvaluationProcedure(ref bestSolution, vehicle, _problem); } bestSolution.TotalDuration = bestSolution.Vehicles.Sum(t => t.VehicleDuration); bestSolution.TimeWindowViolation = bestSolution.Vehicles.Sum(t => t.TotalTimeWindowViolation); bestSolution.RideTimeViolation = bestSolution.Vehicles.Sum(r => r.TotalRideTimeViolation); bestSolution.DurationViolation = bestSolution.Vehicles.Sum(d => d.TotalDurationViolation); bestSolution.LoadViolation = bestSolution.Vehicles.Sum(l => l.TotalLoadViolation); bestSolution.TotalWaitingTime = bestSolution.Vehicles.Sum(t => t.TotalWaitingTime); DARPAlgorithms.UpdateConstraintsSolution(ref bestSolution, _problem); bestSolution.Fitness = Costs.EvaluationSolution(bestSolution, _problem); bestSolution.Parc_Cost = Costs.ParcialCostSolution(bestSolution, _problem); summary.ILSSummary.TotalIterations = iterations + 1; summary.ILSSummary.FinalCost = bestSolution.Parc_Cost; bestSolution.SummaryDetails = summary; }
public void Tab_Control_Add(DataTable Access, MainProgram mainProgram, Action action, SummaryDetails summaryDetails, Admin admin, Data_Import ImportData) { Person = Access.Rows[0]; Users User = Users.Singleton(); // // Tab_Action // if (User.ActionTab) { TabPage tab_Action = new TabPage(); mainProgram.TabControl.Controls.Add(tab_Action); tab_Action.Location = new System.Drawing.Point(4, 22); tab_Action.Name = "tab_Action"; tab_Action.Padding = new Padding(3); tab_Action.Size = new System.Drawing.Size(1826, 877); tab_Action.TabIndex = 0; tab_Action.Text = "Action"; tab_Action.UseVisualStyleBackColor = true; //Tab_Action_Comp(); _ = new ActionForm(action); action.Action_NoChangeInAction(); } // // tab_SummaryDetail // if (User.SummaryTab) { TabPage tab_SummaryDetail = new TabPage { Location = new System.Drawing.Point(4, 22), Name = "tab_Summary", Size = new System.Drawing.Size(1826, 877), TabIndex = 1, Text = "Summary Detail", UseVisualStyleBackColor = true }; mainProgram.TabControl.Controls.Add(tab_SummaryDetail); TabPage tab_Summary = new TabPage { Location = new System.Drawing.Point(4, 22), Name = "tab_SummaryS", Size = new System.Drawing.Size(1826, 877), TabIndex = 2, Text = "Summary", UseVisualStyleBackColor = true }; mainProgram.TabControl.Controls.Add(tab_Summary); _ = new SummaryDetailsForm(Person, summaryDetails); } // // Tab Statistic- dane statystyczne // if (User.StatisticTab) { _ = new StatisticTabGenerator(); } // // Tab Platform Savings - dane statystyczne // if (User.PlatformTab) { _ = new PlatformTabGenerator(); } // // tab_STK // if (User.STKTab) { TabPage tab_STK = new TabPage { Location = new System.Drawing.Point(4, 22), Name = "tab_STK", Size = new System.Drawing.Size(1826, 877), TabIndex = 5, Text = "STK3", UseVisualStyleBackColor = true }; mainProgram.TabControl.Controls.Add(tab_STK); Tab_STK_Comp(); } // // tab_Quantity // if (User.QuantityTab) { TabPage tab_Quantity = new TabPage { Location = new System.Drawing.Point(4, 22), Name = "tab_Quantity", Size = new System.Drawing.Size(1826, 877), TabIndex = 6, Text = "Quantity", UseVisualStyleBackColor = true }; mainProgram.TabControl.Controls.Add(tab_Quantity); Tab_Quantity_Comp(); } // // tab_Admin // if (User.AdminTab) { TabPage tab_Admin = new TabPage { Location = new System.Drawing.Point(4, 22), Name = "tab_Admin", Size = new System.Drawing.Size(1826, 877), TabIndex = 7, Text = "Administration ", UseVisualStyleBackColor = true }; mainProgram.TabControl.Controls.Add(tab_Admin); _ = new AdminForm(mainProgram, action, admin, ImportData); TabPage tab_AdminAction = new TabPage { Location = new System.Drawing.Point(4, 22), Name = "tab_AdminAction", Size = new System.Drawing.Size(1826, 877), TabIndex = 8, Text = "Action Admin", UseVisualStyleBackColor = true, }; mainProgram.TabControl.Controls.Add(tab_AdminAction); _ = new ModifiActionForm(tab_AdminAction); } }
public async Task <IActionResult> GetData() { SummaryDetails quiz = new SummaryDetails(); XmlDetails xmldtl = new XmlDetails(); XmlDocument doc = new XmlDocument(); using (var transaction = _context.Database.BeginTransaction()) { string Qtytype = ""; string XmlContent = ""; try { XmlContent = Request.Form["dr"]; quiz.UserName = Request.Form["USER_NAME"]; quiz.UserEmail = Request.Form["USER_EMAIL"]; quiz.UserId = Request.Form["USER_ID"]; quiz.Title = Request.Form["qt"]; if (XmlContent != "") { doc.LoadXml(XmlContent); XmlNodeList NodeList = doc.GetElementsByTagName("quizReport"); if (NodeList.Count > 0 && NodeList != null) { List <QuestionDetails> QuestionDetail = new List <QuestionDetails>(); foreach (XmlNode node in NodeList) { if (node.ChildNodes != null && node.ChildNodes.Count > 0) { quiz.Score = Convert.ToInt32(Request.Form["tp"]); quiz.PassingPercent = Convert.ToDecimal(Request.Form["psp"]); quiz.PassingScore = Convert.ToDecimal(Request.Form["ps"]); quiz.IsPassed = Convert.ToBoolean(node.ChildNodes[1].Attributes["passed"].Value); quiz.TimeTaken = Convert.ToInt32(node.ChildNodes[1].Attributes["time"].Value); quiz.Date = Convert.ToDateTime(node.ChildNodes[1].Attributes["finishTimestamp"].Value); if (node.ChildNodes[3].ChildNodes.Count > 0) { quiz.TotalQuestion = Convert.ToInt32(node.ChildNodes[3].ChildNodes[0].Attributes["totalQuestions"].Value); quiz.AnsweredQuestion = Convert.ToInt32(node.ChildNodes[3].ChildNodes[0].Attributes["answeredQuestions"].Value); } else { quiz.TotalQuestion = 0; quiz.AnsweredQuestion = 0; } quiz.Percentage = Convert.ToDecimal(node.ChildNodes[1].Attributes["percent"].Value); quiz.CreatedDate = DateTime.Now; _context.SummaryDetails.Add(quiz); _context.SaveChanges(); xmldtl.SummaryDetailId = (quiz.Id == null ? 0 : quiz.Id); xmldtl.XmlDetail = Convert.ToString(XmlContent); xmldtl.CreatedDate = DateTime.Now; _context.XmlDetails.Add(xmldtl); _context.SaveChanges(); if (node.ChildNodes[2].ChildNodes.Count > 0) { foreach (XmlNode Qtnlst in node.ChildNodes[2].ChildNodes) { Qtytype = ""; if (Qtnlst.LocalName == "multipleChoiceQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); int crtansid = Convert.ToInt32(Qtnlst.ChildNodes[2].Attributes["correctAnswerIndex"].Value); int useransid = Convert.ToInt32(Qtnlst.ChildNodes[2].Attributes["userAnswerIndex"].Value); que.CorrectAnswer = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[crtansid].InnerText); que.UserSelection = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[useransid].InnerText); QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "multipleResponseQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; string crtans = "", uselect = ""; foreach (XmlNode item in Qtnlst.ChildNodes[2]) { bool crtansid = Convert.ToBoolean(item.Attributes["correct"].Value); bool useransid = Convert.ToBoolean(item.Attributes["selected"].Value); if (crtansid == true) { crtans += item.InnerText + ","; } if (useransid == true) { uselect += item.InnerText + ","; } } crtans = crtans.Trim(','); uselect = uselect.Trim(','); que.CorrectAnswer = crtans; que.UserSelection = uselect; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "trueFalseQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; int crtansid = Convert.ToInt32(Qtnlst.ChildNodes[2].Attributes["correctAnswerIndex"].Value); int useransid = Convert.ToInt32(Qtnlst.ChildNodes[2].Attributes["userAnswerIndex"].Value); que.CorrectAnswer = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[crtansid].InnerText); que.UserSelection = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[useransid].InnerText); QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "typeInQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; que.UserSelection = Convert.ToString(Qtnlst.Attributes["userAnswer"].Value); string accpAns = ""; foreach (XmlNode item in Qtnlst.ChildNodes[2]) { accpAns += item.InnerText + ","; } accpAns = accpAns.Trim(','); que.CorrectAnswer = accpAns; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "numericQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; que.UserSelection = Convert.ToString(Qtnlst.Attributes["userAnswer"].Value); string accpAns = ""; foreach (XmlNode item in Qtnlst.ChildNodes[2]) { accpAns += item.InnerText + ","; } accpAns = accpAns.Trim(','); que.CorrectAnswer = accpAns; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "sequenceQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; Dictionary <int, string> crtans = new Dictionary <int, string>(); string uselect = ""; string correctAns = ""; foreach (XmlNode item in Qtnlst.ChildNodes[2]) { uselect += item.InnerText + ","; int i = Convert.ToInt32(item.Attributes["originalIndex"].Value); string value = Convert.ToString(item.InnerText); crtans.Add(i, value); } if (crtans.Count > 0 && crtans != null) { foreach (var i in crtans.OrderBy(m => m.Key)) { correctAns += i.Value + ","; } } correctAns = correctAns.Trim(','); uselect = uselect.Trim(','); que.UserSelection = uselect; que.CorrectAnswer = correctAns; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "matchingQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; string uselect = ""; string correctAns = ""; foreach (XmlNode item in Qtnlst.ChildNodes[4].ChildNodes) { int perid = Convert.ToInt32(item.Attributes["premiseIndex"].Value); int repid = Convert.ToInt32(item.Attributes["responseIndex"].Value); string pertext = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[perid].InnerText); string matchtext = Convert.ToString(Qtnlst.ChildNodes[3].ChildNodes[repid].InnerText); correctAns += (pertext + " - " + matchtext) + ","; } foreach (XmlNode item in Qtnlst.ChildNodes[5].ChildNodes) { int perid = Convert.ToInt32(item.Attributes["premiseIndex"].Value); int repid = Convert.ToInt32(item.Attributes["responseIndex"].Value); string pertext = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[perid].InnerText); string matchtext = Convert.ToString(Qtnlst.ChildNodes[3].ChildNodes[repid].InnerText); uselect += (pertext + " - " + matchtext) + ","; } correctAns = correctAns.Trim(','); uselect = uselect.Trim(','); que.CorrectAnswer = correctAns; que.UserSelection = uselect; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "fillInTheBlankQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; que.UserSelection = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[1].Attributes["userAnswer"].Value); string correctAns = ""; foreach (XmlNode item in Qtnlst.ChildNodes[2].ChildNodes[1].ChildNodes) { correctAns += item.InnerText + ","; } correctAns = correctAns.Trim(','); que.CorrectAnswer = correctAns; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "multipleChoiceTextQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; foreach (XmlNode item in Qtnlst.ChildNodes[2]) { if (item.LocalName == "blank") { int uid = Convert.ToInt32(item.Attributes["userAnswerIndex"].Value); int cid = Convert.ToInt32(item.Attributes["correctAnswerIndex"].Value); que.UserSelection = Convert.ToString(item.ChildNodes[uid].InnerText); que.CorrectAnswer = Convert.ToString(item.ChildNodes[cid].InnerText); } } //int uid = Convert.ToInt32(Qtnlst.ChildNodes[2].ChildNodes[1].Attributes["userAnswerIndex"].Value); //int cid = Convert.ToInt32(Qtnlst.ChildNodes[2].ChildNodes[1].Attributes["correctAnswerIndex"].Value); //que.UserSelection = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[1].ChildNodes[uid].InnerText); //que.CorrectAnswer = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[1].ChildNodes[cid].InnerText); QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "wordBankQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; string correctAns = ""; string uselect = ""; foreach (XmlNode item in Qtnlst.ChildNodes[2].ChildNodes) { if (item.LocalName == "blank") { correctAns += item.Attributes["userAnswer"].Value + ","; uselect += item.InnerText + ","; } } correctAns = correctAns.Trim(','); uselect = uselect.Trim(','); que.CorrectAnswer = correctAns; que.UserSelection = uselect; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "hotspotQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; //string userx = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[0].Attributes["x"].Value); //string usery = Convert.ToString(Qtnlst.ChildNodes[2].ChildNodes[0].Attributes["y"].Value); string uselect = ""; foreach (XmlNode item in Qtnlst.ChildNodes[2].ChildNodes) { uselect += "x=" + item.Attributes["x"].Value + " y=" + item.Attributes["y"].Value + ","; } string corx = Convert.ToString(Qtnlst.ChildNodes[3].ChildNodes[0].Attributes["x"].Value); string cory = Convert.ToString(Qtnlst.ChildNodes[3].ChildNodes[0].Attributes["y"].Value); bool ismarked = Convert.ToBoolean(Qtnlst.ChildNodes[3].ChildNodes[0].Attributes["marked"].Value); que.CorrectAnswer = "x=" + corx + " y=" + cory; uselect = uselect.Trim(','); que.UserSelection = uselect; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "dndQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = Convert.ToInt32(Qtnlst.Attributes["awardedPoints"].Value); que.MaxPoints = Convert.ToInt32(Qtnlst.Attributes["maxPoints"].Value); que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; Dictionary <int, string> crtans = new Dictionary <int, string>(); string uselect = ""; string correctAns = ""; foreach (XmlNode item in Qtnlst.ChildNodes[4].ChildNodes) { int objinx = Convert.ToInt32(item.Attributes["objectIndex"].Value); int desinx = Convert.ToInt32(item.Attributes["destinationIndex"].Value); string objtxt = "", destxt = ""; if (objinx < 0 && desinx >= 0) { objtxt = "No Match"; destxt = Qtnlst.ChildNodes[3].ChildNodes[desinx].InnerText; } else if (desinx < 0 && objinx >= 0) { objtxt = Qtnlst.ChildNodes[2].ChildNodes[objinx].InnerText; destxt = "No Match"; } else { objtxt = Qtnlst.ChildNodes[2].ChildNodes[objinx].InnerText; destxt = Qtnlst.ChildNodes[3].ChildNodes[desinx].InnerText; } //string value = Convert.ToString(item.InnerText); //crtans.Add(i, value); correctAns += (objtxt + " - " + destxt) + ","; } foreach (XmlNode item in Qtnlst.ChildNodes[5].ChildNodes) { int objinx = Convert.ToInt32(item.Attributes["objectIndex"].Value); int desinx = Convert.ToInt32(item.Attributes["destinationIndex"].Value); string objtxt = "", destxt = ""; if (objinx < 0 && desinx >= 0) { objtxt = "No Match"; destxt = Qtnlst.ChildNodes[3].ChildNodes[desinx].InnerText; } else if (desinx < 0 && objinx >= 0) { objtxt = Qtnlst.ChildNodes[2].ChildNodes[objinx].InnerText; destxt = "No Match"; } else { objtxt = Qtnlst.ChildNodes[2].ChildNodes[objinx].InnerText; destxt = Qtnlst.ChildNodes[3].ChildNodes[desinx].InnerText; } uselect += (objtxt + " - " + destxt) + ","; } correctAns = correctAns.Trim(','); uselect = uselect.Trim(','); que.CorrectAnswer = correctAns; que.UserSelection = uselect; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "likertScaleQuestion")// NEED TO DISCUSSTION , WHAT ANS TO STORED { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.AwardedPoints = 0; que.MaxPoints = 0; que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; string uselect = ""; foreach (XmlNode item in Qtnlst.ChildNodes[3].ChildNodes) { int stminx = Convert.ToInt32(item.Attributes["statementIndex"].Value); int lblinx = Convert.ToInt32(item.Attributes["labelIndex"].Value); string stmtxt = Qtnlst.ChildNodes[1].ChildNodes[stminx].InnerText; string lbltxt = Qtnlst.ChildNodes[2].ChildNodes[lblinx].InnerText; uselect += (stmtxt + " - " + lbltxt) + ","; } uselect = uselect.Trim(','); que.CorrectAnswer = ""; que.UserSelection = uselect; QuestionDetail.Add(que); } else if (Qtnlst.LocalName == "essayQuestion") { QuestionDetails que = new QuestionDetails(); Qtytype = Qtnlst.LocalName; que.QuestionType = Qtnlst.LocalName; que.QuizQuestion = Qtnlst.ChildNodes[0].InnerText; que.CorrectAnswer = ""; que.AwardedPoints = 0; que.MaxPoints = 0; que.UserSelection = Qtnlst.ChildNodes[1].InnerText; QuestionDetail.Add(que); } } } } } if (QuestionDetail != null) { if (QuestionDetail.Count > 0) { string type = ""; try { foreach (var item in QuestionDetail) { type = ""; try { type = item.QuestionType; item.SummaryDetailId = quiz.Id; item.CreatedDate = DateTime.Now; _context.QuestionDetails.Add(item); _context.SaveChanges(); var data = _context.XmlDetails.Where(x => x.SummaryDetailId == quiz.Id).FirstOrDefault(); if (data != null) { data.IsSuccess = true; _context.XmlDetails.Update(data); _context.SaveChanges(); } } catch (Exception ex) { throw ex; } } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); string email = Request.Form["USER_EMAIL"]; GenerateExcel(quiz.UserName == null ? "" : quiz.UserName, XmlContent); if (email != "" && email != null) { string bodyTemplate = System.IO.File.ReadAllText(Path.Combine("EmailTemplate/ErrorTemplate.html")); bodyTemplate = bodyTemplate.Replace("[UserName]", quiz.UserName == null ? "" : quiz.UserName); bodyTemplate = bodyTemplate.Replace("[Message]", ex.InnerException + " " + ex.Message); bool objReturn = _emailSender.SendEmailAsyncWithBody(email, "Error Message", bodyTemplate, true); } WriteToFile(ex.InnerException + " " + ex.Message, quiz.UserName == null ? "" : quiz.UserName, type); } } } } } } catch (Exception ex) { transaction.Rollback(); string email = Request.Form["USER_EMAIL"]; GenerateExcel(quiz.UserName == null ? "" : quiz.UserName, XmlContent); if (email != "" && email != null) { string bodyTemplate = System.IO.File.ReadAllText(Path.Combine("EmailTemplate/ErrorTemplate.html")); bodyTemplate = bodyTemplate.Replace("[UserName]", quiz.UserName == null ? "" : quiz.UserName); bodyTemplate = bodyTemplate.Replace("[Message]", ex.InnerException + " " + ex.Message); bool Issuccess = _emailSender.SendEmailAsyncWithBody(email, "Error Message", bodyTemplate, true); } WriteToFile(ex.InnerException + " " + ex.Message, quiz.UserName == null ? "" : quiz.UserName, Qtytype); return(Ok()); } } //var result = new GenericResult<dynamic>(); //result.Success = true; //return Ok(result); return(Ok()); }
public SummaryDetailsFormHendler(SummaryDetails summaryDetails, DataRow Person) { this.summaryDetails = summaryDetails; this.Person = Person; charts = new Charts(MainProgram.Self); }