public LekplatsFullständigData GetLekplatsData(int lekplatsId) { //Hämtar en lekplats från databasen och lägger till //tillhörande lekutrustning, tillgänglighet och medelbetyg i ett objekt using (DatabasLekplatserEntities db = new DatabasLekplatserEntities()) { try { Lekplatser dbLekplats = db.Lekplatser.Find(lekplatsId); var dbLekutrustning = db.Lekutrustning.OrderBy(a => a.Ordning).Where(a => a.FK_Lekplatser_LekplatsId == dbLekplats.LekplatsId).Select(a => a.Beskrivning); var dbTillgänglighet = db.Tillgänglighet.OrderBy(a => a.Ordning).Where(a => a.FK_Lekplatser_LekplatsId == dbLekplats.LekplatsId).Select(a => a.Beskrivning); LekplatsFullständigData fullständigLekplats = new LekplatsFullständigData { lekplatsId = dbLekplats.LekplatsId, namn = dbLekplats.Namn, adress = dbLekplats.Adress, beskrivning = dbLekplats.Beskrivning, målgrupp = new int[] { (int)dbLekplats.MinÅlderMålgrupp, (int)dbLekplats.MaxÅlderMålgrupp }, område = dbLekplats.Områden.Namn, lekutrustning = dbLekutrustning.ToArray(), tillgänglighet = dbTillgänglighet.ToArray(), medelbetyg = GetMedelBetygData(dbLekplats.LekplatsId) }; return(fullständigLekplats); } catch { return(null); } } }
public bool UppdateraLekplats(LekplatsFullständigData inputLekplats) { using (DatabasLekplatserEntities db = new DatabasLekplatserEntities()) { //Det måste finnas minst en lekutrustning och en tillgänglighet if (inputLekplats.lekutrustning?.Length > 0 || inputLekplats.tillgänglighet?.Length > 0) { try { Lekplatser uppdateraLekplats = db.Lekplatser.Find(inputLekplats.lekplatsId); uppdateraLekplats.LekplatsId = inputLekplats.lekplatsId; uppdateraLekplats.Namn = inputLekplats.namn; uppdateraLekplats.Adress = inputLekplats.adress; uppdateraLekplats.Beskrivning = inputLekplats.beskrivning; uppdateraLekplats.MinÅlderMålgrupp = (byte)inputLekplats.målgrupp[0]; uppdateraLekplats.MaxÅlderMålgrupp = (byte)inputLekplats.målgrupp[1]; uppdateraLekplats.Områden = db.Områden.SingleOrDefault((a => a.Namn == inputLekplats.område)); db.Lekutrustning.RemoveRange(db.Lekutrustning.Where(a => a.FK_Lekplatser_LekplatsId == uppdateraLekplats.LekplatsId)); db.Tillgänglighet.RemoveRange(db.Tillgänglighet.Where(a => a.FK_Lekplatser_LekplatsId == uppdateraLekplats.LekplatsId)); for (int i = 0; i < inputLekplats.lekutrustning.Length; i++) { Lekutrustning uppdateradLekutrustning = new Lekutrustning { Ordning = i + 1, Beskrivning = inputLekplats.lekutrustning[i] }; uppdateraLekplats.Lekutrustning.Add(uppdateradLekutrustning); } for (int i = 0; i < inputLekplats.tillgänglighet.Length; i++) { Tillgänglighet uppdateradTillgänglighet = new Tillgänglighet { Ordning = i + 1, Beskrivning = inputLekplats.tillgänglighet[i] }; uppdateraLekplats.Tillgänglighet.Add(uppdateradTillgänglighet); } db.SaveChanges(); return(true); } catch { return(false); } } else { return(false); } } }
public bool SkapaLekplats(LekplatsData inputLekplats) { using (DatabasLekplatserEntities db = new DatabasLekplatserEntities()) { //Det måste finnas minst en lekutrustning och en tillgänglighet if (inputLekplats.lekutrustning?.Length > 0 || inputLekplats.tillgänglighet?.Length > 0) { try { Lekplatser dbLekplats = new Lekplatser() { Namn = inputLekplats.namn, Adress = inputLekplats.adress, Beskrivning = inputLekplats.beskrivning, Områden = db.Områden.SingleOrDefault(p => p.Namn == inputLekplats.område), MinÅlderMålgrupp = (byte)inputLekplats.målgrupp[0], MaxÅlderMålgrupp = (byte)inputLekplats.målgrupp[1], }; for (int i = 0; i < inputLekplats.lekutrustning.Length; i++) { Lekutrustning nyLekutrustning = new Lekutrustning { Ordning = i + 1, Beskrivning = inputLekplats.lekutrustning[i] }; dbLekplats.Lekutrustning.Add(nyLekutrustning); } for (int i = 0; i < inputLekplats.tillgänglighet.Length; i++) { Tillgänglighet nyTillgänglighet = new Tillgänglighet { Ordning = i + 1, Beskrivning = inputLekplats.tillgänglighet[i] }; dbLekplats.Tillgänglighet.Add(nyTillgänglighet); } db.Lekplatser.Add(dbLekplats); db.SaveChanges(); return(true); } catch { return(false); } } else { return(false); } } }
public bool TaBortLekplats(int lekplatsId) { using (var db = new DatabasLekplatserEntities()) { //På grund av främmande nycklar måste lekutrustning, tillgänglighet och betyg tas bort innan lekplatsen try { Lekplatser dbLekplats = db.Lekplatser.Find(lekplatsId); db.Lekutrustning.RemoveRange(db.Lekutrustning.Where(a => a.FK_Lekplatser_LekplatsId == dbLekplats.LekplatsId)); db.Tillgänglighet.RemoveRange(db.Tillgänglighet.Where(a => a.FK_Lekplatser_LekplatsId == dbLekplats.LekplatsId)); db.IndividuellaBetyg.RemoveRange(db.IndividuellaBetyg.Where(a => a.FK_Lekplatser_LekplatsId == dbLekplats.LekplatsId)); db.Lekplatser.Remove(dbLekplats); db.SaveChanges(); } catch { return(false); } } return(true); }