public Dictionary <string, double> GetPositiveAnswersPercentageByFOType(int type, int?country_id, int?state_id, int?region_id) { IQueryable <Evaluation> Evaluations = GetEvaluationsByUbication(country_id, state_id, region_id); if (Evaluations.Count() > 0) { Dictionary <string, double> results = new Dictionary <string, double>(); var groups = new EvaluationsFOServices().GetByFunctionalOrganizationTypeAndUbication(Evaluations.Select(i => i.Id).ToList(), type).Select(fo => fo.FunctionalOrganization).OrderBy(fo => fo.Name).GroupBy(fo => fo.Id); if (groups.Count() > 0) { List <double> data = new List <double>(); foreach (var group in groups) { IQueryable <EvaluationFO> evaluationsFO = Evaluations.SelectMany(efo => efo.EvaluationFOs).Where(fo => fo.FunctionalOrganization_Id == group.First().Id).AsQueryable(); //int totalAnswers = GetAnswersCountByTypeByEvaluationFO(data, "Positivas", evaluationsFO); IQueryable <Evaluation> evaluations = evaluationsFO.Select(e => e.Evaluation).AsQueryable(); GetAnswersCountByAnswerType(evaluations, null, null, data, "Positivas"); results.Add(group.First().Name, data != null ? data.Average() : 0); //results.Add(group.First().Name, data.Sum() * 100 / totalAnswers/**/); } } return(results); } return(null); }
//public ActionResult RedirectToFeedback() //{ // Session["Type"] = 2; // System.Threading.Thread.Sleep(5000); // return RedirectToAction("SendFeedback", "Feedbacks"); //} public void InsertFunctionalOrganizations(Evaluation evaluation) { EvaluationsFOServices _evaluationsFOServices = new EvaluationsFOServices(); for (int i = 0; i < Selected_FO[0].Count(); i++) { EvaluationFO evaluationFO_object = new EvaluationFO(); evaluationFO_object.Evaluation_Id = evaluation.Id; evaluationFO_object.FunctionalOrganization_Id = Selected_FO[1][i]; _evaluationsFOServices.Add(evaluationFO_object); } }