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 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 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(); } } }