public ActionResult Create(Station station, string UserName) { if (!User.IsInRole("Owner")) { //Impedimento de o owner ver as reservas dos clientes da base de dados return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "You don't have authorization to go to webpage.")); //-------------------------------------------------------------------- } if (NomeEstacaoRepetido(station)) { ModelState.AddModelError("StationName", "Já existe uma estação com este nome."); } if (ModelState.IsValid) { //Atribuição ao Owner da Estação de carregamento var user = db.Users.Where(o => o.UserName.Equals(UserName)).Single(); StationAtribution sa = new StationAtribution() { UserId = user.Id, Station = station, StationId = station.StationId }; db.StationAtributions.Add(sa); //---------------------------------------------- db.Stations.Add(station); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.LocalId = new SelectList(db.Locals, "LocalId", "LocalName", station.LocalId); return(View(station)); }
public ActionResult DeleteConfirmed(int id, string UserName) { if (!User.IsInRole("Owner")) { //Impedimento de o owner ver as reservas dos clientes da base de dados return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "You don't have authorization to go to webpage.")); //-------------------------------------------------------------------- } if (UserName == null || UserName.Length == 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Station station = db.Stations.Find(id); //Eliminação da atribuição do Owner à estação de carregamento var user = db.Users.Where(o => o.UserName.Equals(UserName)).Single(); StationAtribution sa = db.StationAtributions.Where(o => o.UserId.Equals(user.Id) && station.StationId == o.StationId).Single(); db.StationAtributions.Remove(sa); //----------------------------------------------------------- var stationPost = db.StationPostsAtribuition.Where(o => o.StationId == station.StationId).Select(o => o.StationPostId); if (stationPost != null) { foreach (int idPost in stationPost) { var times = db.TimeAtribuitions.Where(o => o.StationPostId == idPost); db.TimeAtribuitions.RemoveRange(times); } } var stationPostTrue = db.StationPostsAtribuition.Where(o => o.StationId == station.StationId).Select(o => o.StationPost); if (stationPostTrue != null) { db.StationPosts.RemoveRange(stationPostTrue); } var stationsAtt = db.StationPostsAtribuition.Where(o => o.StationId == station.StationId); if (stationsAtt != null) { db.StationPostsAtribuition.RemoveRange(stationsAtt); } db.Stations.Remove(station); db.SaveChanges(); return(RedirectToAction("Index")); }