public void AddOrChangeAlternativesValuesForCriteria(Alternativa alternativa, Kriterij kriterij, string stvarnaVrijednost) { AHPEntities4 db = new AHPEntities4(); if (alternativa != null && kriterij != null) { AlternativaKriterij alternativaKriterij = db.AlternativaKriterijs.Where(x => (x.alternativa == alternativa.id && x.kriterij == kriterij.id)).SingleOrDefault(); if (alternativaKriterij != null) { alternativaKriterij.stvarnaVrijednost = stvarnaVrijednost; db.SaveChanges(); } else { AlternativaKriterij novaAlternativaKriterij = new AlternativaKriterij(); novaAlternativaKriterij.alternativa = alternativa.id; novaAlternativaKriterij.kriterij = kriterij.id; novaAlternativaKriterij.stvarnaVrijednost = stvarnaVrijednost; var alternativaKriterijList = db.Set <AlternativaKriterij>(); alternativaKriterijList.Add(novaAlternativaKriterij); int a = db.SaveChanges(); } } }
public static Tuple <bool, List <double?> > GetAlternativesConsistencyFactorAndValues(List <Alternativa> alternative, List <UsporedbaAlternativaPremaKriteriju> usporedbe, int kriterij) { AHPEntities4 db = new AHPEntities4(); Tuple <bool, List <double?> > aa = Executor.CreateAlternativeMatrix(alternative, usporedbe); return(aa); }
public static void AddNewCriteriaComparisons(int idProjekta) { AHPEntities4 db = new AHPEntities4(); List <Kriterij> kriteriji = db.Kriterijs.Where(x => (x.Projekt1.id == idProjekta && x.obrisan != true)).ToList(); List <UsporedbaKriterija> usporedbe = db.UsporedbaKriterijas.ToList(); for (int i = 0; i < kriteriji.Count; i++) { for (int j = 0; j < kriteriji.Count; j++) { int kriterij1 = kriteriji[i].id; int kriterij2 = kriteriji[j].id; if (kriterij1 != kriterij2 && kriteriji[i].idRoditelja == kriteriji[j].idRoditelja) { bool usporedbePostoje = (db.UsporedbaKriterijas.Any(x => (((x.kriterij1 == kriterij1 && x.kriterij2 == kriterij2) || (x.kriterij1 == kriterij2 && x.kriterij2 == kriterij1) && x.Kriterij.obrisan != true && x.Kriterij3.obrisan != true)))); if (!usporedbePostoje) { var usporedbaKriterija = db.Set <UsporedbaKriterija>(); usporedbaKriterija.Add(new UsporedbaKriterija { kriterij1 = kriteriji[i].id, kriterij2 = kriteriji[j].id, vrijednost = null }); db.SaveChanges(); } } } } }
public List <Kriterij> GetListOfCriteria(int id) { AHPEntities4 db = new AHPEntities4(); List <Kriterij> criteria = db.Kriterijs.Where(x => (x.projekt == id && x.Kriterij2 == null && x.obrisan != true)).ToList(); return(criteria); }
public static Tuple <bool, List <double?> > GetConsistencyFactorAndCriteriaValues(List <Kriterij> kriteriji, int roditelj, int projektId) { AHPEntities4 db = new AHPEntities4(); List <UsporedbaKriterija> listaUsporedaba = new List <UsporedbaKriterija>(); if (kriteriji.Count() >= 2) { if (kriteriji.Where(x => x.konzistentno != true).Count() != 0) { return(new Tuple <bool, List <double?> >(false, null)); } else { if (roditelj == 0) { listaUsporedaba = db.UsporedbaKriterijas.Where(x => ((x.Kriterij.Kriterij2 == null || x.Kriterij3.Kriterij2 == null) && (x.Kriterij.obrisan != true && x.Kriterij3.obrisan != true) && (x.Kriterij.projekt == projektId || x.Kriterij3.projekt == projektId))).ToList(); return(Executor.CreateCriteriaMatrix(kriteriji, listaUsporedaba)); } else { listaUsporedaba = db.UsporedbaKriterijas.Where(x => ((x.Kriterij.idRoditelja == roditelj || x.Kriterij3.idRoditelja == roditelj) && (x.Kriterij.obrisan != true && x.Kriterij3.obrisan != true))).ToList(); if (listaUsporedaba.Where(x => x.vrijednost == null).Count() > 0) { return(new Tuple <bool, List <double?> >(false, null)); } return(Executor.CreateCriteriaMatrix(kriteriji, listaUsporedaba)); } } } else { return(new Tuple <bool, List <double?> >(false, null)); } }
public List <Alternativa> GetListOfAlternatives(int id) { AHPEntities4 db = new AHPEntities4(); List <Alternativa> alternatives = db.Alternativas.Where(x => (x.projekt == id && x.obrisana != true)).ToList(); return(alternatives); }
// GET: Evaluation public ActionResult Index(int id, int?kriterij) { AHPEntities4 db = new AHPEntities4(); List <UsporedbaKriterija> criteriaComparison = new List <UsporedbaKriterija>(); Projekt project = db.Projekts.Where(x => x.id == id).SingleOrDefault(); Kriterij parent = null; if (kriterij != null) { parent = db.Kriterijs.Where(x => x.id == kriterij).SingleOrDefault(); foreach (Kriterij podkriterij in parent.Kriterij1.Where(x => x.obrisan != true).ToList()) { List <UsporedbaKriterija> a = podkriterij.UsporedbaKriterijas.Where(x => (x.Kriterij.obrisan != true && x.Kriterij3.obrisan != true)).ToList(); //Je li dovoljno jednostrano ili je potrebno obostrano?? ispitati //List<UsporedbaKriterija> b = podkriterij.UsporedbaKriterijas1.Where(x => (x.Kriterij.obrisan != true && x.Kriterij3.obrisan != true)).ToList(); criteriaComparison.AddRange(a); } } else { criteriaComparison = db.UsporedbaKriterijas.Where(x => (x.Kriterij.Projekt1.id == id && x.Kriterij3.Projekt1.id == id && x.Kriterij.Kriterij2 == null && x.Kriterij3.Kriterij2 == null && x.Kriterij.obrisan != true && x.Kriterij3.obrisan != true)).ToList(); } EvaluationCriteriaViewModel evaluationCriteriaViewModel = new EvaluationCriteriaViewModel(project, parent, criteriaComparison, GetListOfCriteria(id)); return(View(evaluationCriteriaViewModel)); }
public static void CalculateResults(int id) { AHPEntities4 db = new AHPEntities4(); List <Alternativa> alternative = db.Alternativas.Where(x => (x.projekt == id && x.obrisana != true)).ToList(); List <Kriterij> kriteriji = db.Kriterijs.Where(x => (x.projekt == id && x.obrisan != true && x.Kriterij1.Count() == 0)).ToList(); List <CalculatedCriteriaValuesViewModel> listaKalkuliranihVrijednostiKriterija = new List <CalculatedCriteriaValuesViewModel>(); foreach (var kriterij in kriteriji) { double?vrijednost = 0; if (kriterij.Kriterij2 != null) { if (kriterij.Kriterij2.Kriterij2 != null) { if (kriterij.Kriterij2.Kriterij2.Kriterij2 != null) { } else { vrijednost = kriterij.Kriterij2.Kriterij2.vrijednost * kriterij.Kriterij2.vrijednost * kriterij.vrijednost; } } else { vrijednost = kriterij.Kriterij2.vrijednost * kriterij.vrijednost; } } else { vrijednost = kriterij.vrijednost; } CalculatedCriteriaValuesViewModel calculatedCriteriaValuesViewModel = new CalculatedCriteriaValuesViewModel(); calculatedCriteriaValuesViewModel.Kriterij = kriterij; calculatedCriteriaValuesViewModel.vrijednost = vrijednost; listaKalkuliranihVrijednostiKriterija.Add(calculatedCriteriaValuesViewModel); } List <AlternativaKriterij> alternativaKriteriji = db.AlternativaKriterijs.Where(x => x.Kriterij1.projekt == id).ToList(); foreach (var alternativa in alternative) { double?rezultat = 0; foreach (var kriterijZaUsporedbu in kriteriji) { AlternativaKriterij alternativaKriterij = alternativaKriteriji.Where(x => (x.alternativa == alternativa.id && x.kriterij == kriterijZaUsporedbu.id)).SingleOrDefault(); if (alternativaKriterij != null) { rezultat += kriterijZaUsporedbu.vrijednost * alternativaKriterij.izracunataVrijednost; } } alternativa.vrijednost = rezultat; db.SaveChanges(); } }
public ActionResult Result(int id) { EvaluationController.CalculateResults(id); AHPEntities4 db = new AHPEntities4(); List <Alternativa> alternative = db.Alternativas.Where(x => (x.projekt == id && x.obrisana != true)).OrderByDescending(y => y.vrijednost).ToList(); return(View(alternative)); }
public void ChangeCriteriaComparisonFactor(int criteria1, int criteria2, double factor) { AHPEntities4 db = new AHPEntities4(); UsporedbaKriterija usporedbaKriterija = db.UsporedbaKriterijas.Where(x => (x.kriterij1 == criteria1 && x.kriterij2 == criteria2)).SingleOrDefault(); usporedbaKriterija.vrijednost = factor; int a = db.SaveChanges(); }
public ActionResult Index() { AHPEntities4 db = new AHPEntities4(); var userId = User.Identity.GetUserId(); IEnumerable <Projekt> projekti = db.Projekts.Where(c => (c.korisnik == userId && c.obrisan != true)).OrderByDescending(c => c.zadnjaPromjena).ToList(); HomeViewModel homeViewModel = new HomeViewModel(projekti); return(View(homeViewModel)); }
public PartialViewResult GetCriteriaMenuFullPartialView(int id) { AHPEntities4 db = new AHPEntities4(); Projekt projekt = db.Projekts.Where(x => x.id == id).SingleOrDefault(); EvaluationCriteriaViewModel evaluationCriteriaViewModel = new EvaluationCriteriaViewModel(); evaluationCriteriaViewModel.Projekt = projekt; evaluationCriteriaViewModel.ListaKriterija = GetListOfCriteria(id); return(PartialView("_CriteriaMenuPartial", evaluationCriteriaViewModel)); }
public bool AuthorizeUserProject(string UID, int id) { AHPEntities4 db = new AHPEntities4(); Projekt projekt = db.Projekts.Where(x => (x.id == id && x.korisnik == UID)).SingleOrDefault(); if (projekt != null) { return(true); } else { return(false); } }
public ActionResult DeleteProject(int id) { AHPEntities4 db = new AHPEntities4(); Projekt projekt = db.Projekts.Where(x => x.id == id).SingleOrDefault(); projekt.obrisan = true; if (db.SaveChanges() != 0) { return(Redirect(Url.Action("Index", "Home"))); } else { return(null); } }
public ActionResult DeleteCriteria(int id) { AHPEntities4 db = new AHPEntities4(); Kriterij kriterij = db.Kriterijs.Where(x => x.id == id).SingleOrDefault(); kriterij.obrisan = true; if (db.SaveChanges() != 0) { UpdateProjectsCriteriaConsistency(id); UpdateProjectsAlternativesConsistency(id); return(Redirect(Url.Action("Index", "Project", new { id = kriterij.projekt }))); } else { return(null); } }
// GET: Project public ActionResult Index(int id) { AHPEntities4 db = new AHPEntities4(); CustomAuthorization customAuthorization = new CustomAuthorization(); bool userAuthorized = customAuthorization.AuthorizeUserProject(User.Identity.GetUserId(), id); if (userAuthorized == true) { Projekt project = db.Projekts.Where(x => x.id == id).SingleOrDefault(); List <Alternativa> alternatives = db.Alternativas.Where(x => (x.projekt == id && x.obrisana != true)).ToList(); List <Kriterij> criteria = db.Kriterijs.Where(x => (x.projekt == id && x.Kriterij2 == null && x.obrisan != true)).ToList(); List <Dnevnik> logs = db.Dnevniks.Where(x => x.projekt == id).OrderByDescending(y => y.vrijeme).ToList(); ProjectViewModel projektViewModel = new ProjectViewModel(project, criteria, alternatives, logs); return(View(projektViewModel)); } else { return(Redirect("/Home/Index")); } }
public PartialViewResult GetCriteriaAlternativesMenuFullPartialView(int id, int kriterij) { AHPEntities4 db = new AHPEntities4(); List <Kriterij> kriteriji = GetListOfCriteria(id); Projekt odabraniProjekt = db.Projekts.Where(x => x.id == id).SingleOrDefault(); List <Alternativa> alternative = db.Alternativas.Where(x => (x.projekt == id && x.obrisana != true)).ToList(); List <AlternativaKriterij> alternativaKriterij = db.AlternativaKriterijs.Where(x => (x.kriterij == kriterij && x.Alternativa1.obrisana != true)).ToList(); Kriterij odabraniKriterij = db.Kriterijs.Where(x => x.id == kriterij).SingleOrDefault(); List <AlternativesComparedViewModel> alternativesComparedViewModel = new List <AlternativesComparedViewModel>(); foreach (var alternativa1 in alternative) { foreach (var alternativa2 in alternative) { if (alternativa1.id != alternativa2.id) { if (alternativesComparedViewModel.Where(x => ((x.Alternativa1.id == alternativa1.id && x.Alternativa2.id == alternativa2.id) || (x.Alternativa2.id == alternativa1.id && x.Alternativa1.id == alternativa2.id))).Count() == 0) { alternativesComparedViewModel.Add(new AlternativesComparedViewModel(alternativa1, alternativa2)); } } } } List <UsporedbaAlternativaPremaKriteriju> usporedbaAlternativaPremaKriteriju = odabraniKriterij.UsporedbaAlternativaPremaKriterijus.Where(x => (x.Kriterij1.id == kriterij)).ToList(); EvaluationAlternativesViewModel evaluationAlternativesViewModel = new EvaluationAlternativesViewModel(); evaluationAlternativesViewModel.Projekt = odabraniProjekt; evaluationAlternativesViewModel.AlternativaKriterij = alternativaKriterij; evaluationAlternativesViewModel.Kriteriji = kriteriji; evaluationAlternativesViewModel.Kriterij = odabraniKriterij; evaluationAlternativesViewModel.Alternative = alternative; evaluationAlternativesViewModel.ListaKombinacijaAlternativa = alternativesComparedViewModel; evaluationAlternativesViewModel.UsporedbaAlternativaPremaKriteriju = usporedbaAlternativaPremaKriteriju; return(PartialView("_CriteriaMenuAlternativesPartial", evaluationAlternativesViewModel)); }
public ActionResult AddCriteria(int projectId, int?parentId, string name, string info) { AHPEntities4 db = new AHPEntities4(); Kriterij kriterij = new Kriterij { naziv = name, opis = info, projekt = projectId, idRoditelja = parentId, konzistentno = true, obrisan = false }; var kriteriji = db.Set <Kriterij>(); kriteriji.Add(kriterij); if (db.SaveChanges() != 0) { List <Alternativa> alternative = db.Alternativas.Where(x => (x.projekt == projectId && x.obrisana != true)).ToList(); foreach (Alternativa alternativa in alternative) { AddOrChangeAlternativesValuesForCriteria(alternativa, kriterij, null); } Projekt projekt = db.Projekts.Where(x => x.id == projectId).SingleOrDefault(); projekt.konzistentno = false; if (parentId != null) { Kriterij roditelj = db.Kriterijs.Where(x => x.id == parentId).SingleOrDefault(); roditelj.konzistentno = false; } db.SaveChanges(); DBOperationsHelper.AddNewCriteriaComparisons(projectId); UpdateProjectsCriteriaConsistency(projectId); UpdateProjectsAlternativesConsistency(projectId); return(Redirect(Url.Action("Index", "Project", new { id = projectId }))); } return(Redirect(Url.Action("Index", "Project", new { id = projectId }))); }
public ActionResult AddAlternative(int projectId, string name, string info) { AHPEntities4 db = new AHPEntities4(); Alternativa alternativa = new Alternativa { naziv = name, opis = info, projekt = projectId, obrisana = false }; var alternative = db.Set <Alternativa>(); alternative.Add(alternativa); Projekt projekt = db.Projekts.SingleOrDefault(b => b.id == projectId); if (db.SaveChanges() != 0) { DateTime trenutnoVrijeme = DateTime.Now; List <Kriterij> kriteriji = db.Kriterijs.Where(x => (x.projekt == projectId && x.obrisan != true && x.Kriterij1.Count == 0)).ToList(); foreach (Kriterij kriterij in kriteriji) { AddOrChangeAlternativesValuesForCriteria(alternativa, kriterij, null); } //UpdateAlternativesComparison(projectId); var dnevnik = db.Set <Dnevnik>(); dnevnik.Add(new Dnevnik { tipZapisa = 4, vrijeme = trenutnoVrijeme, dodatneInformacije = name, korisnik = projekt.korisnik, status = 1, projekt = projectId }); UpdateProjectsAlternativesConsistency(projectId); db.SaveChanges(); return(Redirect(Url.Action("Index", "Project", new { id = projectId }))); } return(Redirect(Url.Action("Index", "Project", new { id = projectId }))); }
public ActionResult AddProject(string naziv, string opis) { DateTime date = DateTime.Now; var idKorisnika = User.Identity.GetUserId(); AHPEntities4 db = new AHPEntities4(); Projekt projekt = new Projekt { naziv = naziv, opis = opis, korisnik = idKorisnika, datum = date, zadnjaPromjena = date, konzistentno = false, fazaProjekta = 3 }; var projekti = db.Set <Projekt>(); projekti.Add(projekt); if (db.SaveChanges() != 0) { int idProjekta = projekt.id; return(Redirect(Url.Action("Index", "Project", new { id = idProjekta }))); } else { return(null); } }
public void ChangeAlternativeComparisonFactor(int alternative1, int alternative2, int criteria, float factor) { AHPEntities4 db = new AHPEntities4(); UsporedbaAlternativaPremaKriteriju usporedbaAlternativaPremaKriteriju = db.UsporedbaAlternativaPremaKriterijus.Where(x => (x.alternativa1 == alternative1 && x.alternativa2 == alternative2 && x.kriterij == criteria)).SingleOrDefault(); if (usporedbaAlternativaPremaKriteriju != null) { usporedbaAlternativaPremaKriteriju.vrijednost = factor; } else { var usporedbaAlternativaPremaKriterijuLista = db.Set <UsporedbaAlternativaPremaKriteriju>(); UsporedbaAlternativaPremaKriteriju uapk = new UsporedbaAlternativaPremaKriteriju(); uapk.alternativa1 = alternative1; uapk.alternativa2 = alternative2; uapk.kriterij = criteria; uapk.vrijednost = factor; usporedbaAlternativaPremaKriterijuLista.Add(uapk); } if (db.SaveChanges() > 0) { //UpdateProjectsAlternativesConsistency(usporedbaAlternativaPremaKriteriju.Kriterij1.projekt); } }
public ActionResult Alternatives(int projekt, int kriterij) { AHPEntities4 db = new AHPEntities4(); Projekt odabraniProjekt = db.Projekts.Where(x => x.id == projekt).SingleOrDefault(); if (kriterij != -1) { List <Kriterij> kriteriji = GetListOfCriteria(projekt); List <Alternativa> alternative = db.Alternativas.Where(x => (x.projekt == projekt && x.obrisana != true)).ToList(); List <AlternativaKriterij> alternativaKriterij = db.AlternativaKriterijs.Where(x => (x.kriterij == kriterij && x.Alternativa1.obrisana != false)).ToList(); Kriterij odabraniKriterij = db.Kriterijs.Where(x => x.id == kriterij).SingleOrDefault(); List <AlternativesComparedViewModel> alternativesComparedViewModel = new List <AlternativesComparedViewModel>(); foreach (var alternativa1 in alternative) { foreach (var alternativa2 in alternative) { if (alternativa1.id != alternativa2.id) { if (alternativesComparedViewModel.Where(x => ((x.Alternativa1.id == alternativa1.id && x.Alternativa2.id == alternativa2.id) || (x.Alternativa2.id == alternativa1.id && x.Alternativa1.id == alternativa2.id))).Count() == 0) { alternativesComparedViewModel.Add(new AlternativesComparedViewModel(alternativa1, alternativa2)); } } } } List <UsporedbaAlternativaPremaKriteriju> usporedbaAlternativaPremaKriteriju = odabraniKriterij.UsporedbaAlternativaPremaKriterijus.Where(x => (x.Kriterij1.id == kriterij)).ToList(); EvaluationAlternativesViewModel evaluationAlternativesViewModel = new EvaluationAlternativesViewModel(); evaluationAlternativesViewModel.Kriterij = odabraniKriterij; evaluationAlternativesViewModel.Projekt = odabraniProjekt; evaluationAlternativesViewModel.AlternativaKriterij = alternativaKriterij; evaluationAlternativesViewModel.Kriteriji = kriteriji; evaluationAlternativesViewModel.Alternative = alternative; evaluationAlternativesViewModel.ListaKombinacijaAlternativa = alternativesComparedViewModel; evaluationAlternativesViewModel.UsporedbaAlternativaPremaKriteriju = usporedbaAlternativaPremaKriteriju; return(View(evaluationAlternativesViewModel)); } else { List <Kriterij> kriteriji = GetListOfCriteria(projekt); kriterij = kriteriji[0].id; List <Alternativa> alternative = db.Alternativas.Where(x => (x.projekt == projekt && x.obrisana != true)).ToList(); List <AlternativaKriterij> alternativaKriterij = db.AlternativaKriterijs.Where(x => (x.kriterij == kriterij && x.Alternativa1.obrisana != false)).ToList(); Kriterij odabraniKriterij = db.Kriterijs.Where(x => x.id == kriterij).SingleOrDefault(); List <AlternativesComparedViewModel> alternativesComparedViewModel = new List <AlternativesComparedViewModel>(); foreach (var alternativa1 in alternative) { foreach (var alternativa2 in alternative) { if (alternativa1.id != alternativa2.id) { if (alternativesComparedViewModel.Where(x => ((x.Alternativa1.id == alternativa1.id && x.Alternativa2.id == alternativa2.id) || (x.Alternativa2.id == alternativa1.id && x.Alternativa1.id == alternativa2.id))).Count() == 0) { alternativesComparedViewModel.Add(new AlternativesComparedViewModel(alternativa1, alternativa2)); } } } } List <UsporedbaAlternativaPremaKriteriju> usporedbaAlternativaPremaKriteriju = odabraniKriterij.UsporedbaAlternativaPremaKriterijus.Where(x => (x.Kriterij1.id == kriterij)).ToList(); EvaluationAlternativesViewModel evaluationAlternativesViewModel = new EvaluationAlternativesViewModel(); evaluationAlternativesViewModel.Kriterij = odabraniKriterij; evaluationAlternativesViewModel.Projekt = odabraniProjekt; evaluationAlternativesViewModel.AlternativaKriterij = alternativaKriterij; evaluationAlternativesViewModel.Kriteriji = kriteriji; evaluationAlternativesViewModel.Alternative = alternative; evaluationAlternativesViewModel.ListaKombinacijaAlternativa = alternativesComparedViewModel; evaluationAlternativesViewModel.UsporedbaAlternativaPremaKriteriju = usporedbaAlternativaPremaKriteriju; return(View(evaluationAlternativesViewModel)); } }
public void UpdateProjectsAlternativesConsistency(int id) { AHPEntities4 db = new AHPEntities4(); List <Kriterij> kriteriji = db.Kriterijs.Where(x => (x.projekt == id && x.obrisan != true && x.Kriterij2.obrisan != true && x.Kriterij1.Count() == 0)).ToList(); List <Alternativa> alternative = db.Alternativas.Where(x => (x.projekt == id && x.obrisana != true)).ToList(); List <UsporedbaAlternativaPremaKriteriju> usporedbe = db.UsporedbaAlternativaPremaKriterijus.Where(x => (x.Kriterij1.projekt == id && x.Alternativa.obrisana != true && x.Alternativa3.obrisana != true)).ToList(); foreach (var kriterij in kriteriji) { int a = 0; List <UsporedbaAlternativaPremaKriteriju> usporedbeAlternativaPremaKriteriju = usporedbe.Where(x => x.kriterij == kriterij.id).ToList(); foreach (var alternativa in alternative) { int broj = usporedbe.Where(x => (x.kriterij == kriterij.id && (x.alternativa1 == alternativa.id || x.alternativa2 == alternativa.id))).Count(); if (broj != alternative.Count() - 1) { kriterij.konzistentneAlternative = false; db.SaveChanges(); a = 1; break; } } if (a == 1) { foreach (var alternativa1 in alternative) { alternativa1.vrijednost = null; db.SaveChanges(); } } else if (a == 0) { Tuple <bool, List <double?> > konzistentnostIVrijednost = DBOperationsHelper.GetAlternativesConsistencyFactorAndValues(alternative, usporedbeAlternativaPremaKriteriju, kriterij.id); for (int i = 0; i < alternative.Count(); i++) { if (konzistentnostIVrijednost.Item2 != null) { int b = alternative[i].id; List <AlternativaKriterij> alternativaKriterij = db.AlternativaKriterijs.Where(x => x.alternativa == b && x.kriterij == kriterij.id).ToList(); if (alternativaKriterij != null) { if (alternativaKriterij[0].izracunataVrijednost != konzistentnostIVrijednost.Item2[i]) { alternativaKriterij[0].izracunataVrijednost = konzistentnostIVrijednost.Item2[i].Value; db.SaveChanges(); } } else { AlternativaKriterij alternativariterijNova = new AlternativaKriterij(); alternativariterijNova.alternativa = alternative[i].id; alternativariterijNova.kriterij = kriterij.id; alternativariterijNova.izracunataVrijednost = konzistentnostIVrijednost.Item2[i].Value; var alternativeKriteriji = db.Set <AlternativaKriterij>(); alternativeKriteriji.Add(alternativariterijNova); db.SaveChanges(); } } else { if (alternative[i].vrijednost != null) { alternative[i].vrijednost = null; db.SaveChanges(); } } } kriterij.konzistentneAlternative = konzistentnostIVrijednost.Item1; db.SaveChanges(); } } }
public void UpdateProjectsCriteriaConsistency(int id) { AHPEntities4 db = new AHPEntities4(); int maxLevel = 0; List <Kriterij> listaRoditelja = db.Kriterijs.Where(x => x.projekt == id && x.Kriterij2.obrisan != true).Select(x => x.Kriterij2).Distinct().ToList(); List <CriteriaParentsGroupedByLevelsViewModel> listOfCriteriaParentsGroupedByLevels = new List <CriteriaParentsGroupedByLevelsViewModel>(); foreach (Kriterij roditelj in listaRoditelja) { int razina = 0; CriteriaParentsGroupedByLevelsViewModel criteriaParentsGroupedByLevelsViewModel = null; if (roditelj == null) { Kriterij kr = new Kriterij(); kr.Kriterij1 = db.Kriterijs.Where(x => (x.Kriterij2 == null && x.projekt == id)).ToList(); criteriaParentsGroupedByLevelsViewModel = new CriteriaParentsGroupedByLevelsViewModel(razina, kr); } else { Kriterij rod = roditelj.Kriterij2; razina++; if (rod == null) { criteriaParentsGroupedByLevelsViewModel = new CriteriaParentsGroupedByLevelsViewModel(razina, roditelj); if (razina > maxLevel) { maxLevel = razina; } } else { while (rod != null) { razina++; rod = rod.Kriterij2; if (rod == null) { criteriaParentsGroupedByLevelsViewModel = new CriteriaParentsGroupedByLevelsViewModel(razina, roditelj); if (razina > maxLevel) { maxLevel = razina; } break; } } } } listOfCriteriaParentsGroupedByLevels.Add(criteriaParentsGroupedByLevelsViewModel); } int lev = maxLevel; while (lev >= 0) { List <Kriterij> listaRoditeljaPremaLevelima = listOfCriteriaParentsGroupedByLevels.Where(x => x.Level == lev).Select(x => x.Roditelj).ToList(); foreach (Kriterij roditelj in listaRoditeljaPremaLevelima) { List <Kriterij> listaKriterijaRoditelja = roditelj.Kriterij1.Where(x => x.obrisan != true).ToList(); Tuple <bool, List <double?> > konzistentnostIVrijednostKriterija = DBOperationsHelper.GetConsistencyFactorAndCriteriaValues(listaKriterijaRoditelja, roditelj.id, id); if (roditelj.id == 0) { Projekt projekt = db.Projekts.Where(x => x.id == id).SingleOrDefault(); if (projekt.konzistentno != konzistentnostIVrijednostKriterija.Item1) { projekt.konzistentno = konzistentnostIVrijednostKriterija.Item1; db.SaveChanges(); } } else { Kriterij kriterijZaUpdate = db.Kriterijs.Where(x => x.id == roditelj.id).SingleOrDefault(); if (kriterijZaUpdate.konzistentno != konzistentnostIVrijednostKriterija.Item1) { kriterijZaUpdate.konzistentno = konzistentnostIVrijednostKriterija.Item1; db.SaveChanges(); } } for (int i = 0; i < listaKriterijaRoditelja.Count(); i++) { if (konzistentnostIVrijednostKriterija.Item2 != null) { if (listaKriterijaRoditelja[i].vrijednost != konzistentnostIVrijednostKriterija.Item2[i]) { listaKriterijaRoditelja[i].vrijednost = konzistentnostIVrijednostKriterija.Item2[i].Value; db.SaveChanges(); } } else { if (listaKriterijaRoditelja[i].vrijednost != null) { listaKriterijaRoditelja[i].vrijednost = null; db.SaveChanges(); } } } } lev--; } }