public ActionResult ChangeNodeLocation(string id, ChangeLocationViewModel model) { using (var db = new DatabaseContext()) { //wyszukuję odpowieni węzeł, jego starego i nowego rodzica Node node = db.Nodes.Include("Parent").FirstOrDefault(x => x.Id.ToString() == id); Node parent = db.Nodes.Include("Children").FirstOrDefault(x => x.Id == node.Parent.Id); Node newParent = db.Nodes.FirstOrDefault(x => x.Id.ToString() == model.NewParentId); //usuwam węzeł z listy dzieci starego rodzica parent.Children.Remove(node); //w zależności od tego czy węzeł ma być teraz korzeniem drzewa, czy ma mieć rodzica //odpowienio przypisuję do Parent if (model.NewParentId != "" && model.NewParentId != null) { node.Parent = newParent; } else { node.Parent = null; } db.SaveChanges(); //przkierowuję do strony głównej przenoszonego węzła return(RedirectToAction("NodeContent", "Node", new { id = node.Id })); } }
//zmiana położenia węzła public ActionResult ChangeNodeLocation(string id) { //jeśli nie ma id to strona nie istnieje if (id == "" || id == null) { return(View("Error", new string[] { "This page does not exist." })); } //zapisuję do modelu odpowienie informacje, które będą potrzebne w widoku ChangeLocationViewModel model = new ChangeLocationViewModel(); using (var db = new DatabaseContext()) { model.Nodes = db.Nodes.Include("Children").Include("Parent").ToList(); model.Node = db.Nodes.FirstOrDefault(x => x.Id.ToString() == id); } return(View(model)); }
public ActionResult ChangeLocation(ChangeLocationViewModel vm) { if (vm.SelectedRoomId < 0) { ModelState.AddModelError("SelectedRoomId", "Room is required"); } if (ModelState.IsValid) { var currentLocation = (from l in db.AssetLocations where l.AssetId == vm.AssetId && DateTime.Now >= l.TimeFrom && (DateTime.Now <= l.TimeTo || l.TimeTo == null) select l).FirstOrDefault(); if (currentLocation.RoomId != vm.SelectedRoomId) { currentLocation.TimeTo = DateTime.Now; db.AssetLocations.Add(new AssetLocation { AssetId = vm.AssetId, RoomId = vm.SelectedRoomId, TimeFrom = DateTime.Now, TimeTo = null, }); } try { db.SaveChanges(); return(Json(new { Success = true, Message = "Location changed successfully" })); } catch (Exception e) { return(Json(new { Success = false, Message = "Unknown errorr" })); } } vm.Rooms = db.RoomDropdown(); return(PartialView("_ChangeLocation", vm)); }