// GET: Region/Create public ActionResult Create() { RegionStoreRelayModel regionStoreRelay = new RegionStoreRelayModel(); regionStoreRelay.CheckboxGatewayModel = GetGatewayRelays(); var colorInfo = from colors in db.colors select new { colors.colorID }; var colorsUsed = from region in db.region select new { region.colorID }; var temp = from colors in colorInfo.Except(colorsUsed) join colors2 in db.colors on colors.colorID equals colors2.colorID select new { colors2.colorName, colors2.colorID }; ViewBag.region = new { colorID = new SelectList(temp, "colorID", "colorName") }; return(View(regionStoreRelay)); }
public ActionResult Create(RegionStoreRelayModel regionStoreRelay) { if (!storeIPOkay(regionStoreRelay.store)) { ModelState.AddModelError("store.storeIP", "IP already exists"); } if (!relayIPOkay(regionStoreRelay.relay)) { ModelState.AddModelError("relay.relayIP", "IP already exists"); } if (regionStoreRelay.CheckboxGatewayModel.Where(x => x.selected).Count() < 1) { ModelState.AddModelError("", "Needs to be connected to gateway or processing center"); } if (ModelState.IsValid) { region newRegion = new region() { colorID = regionStoreRelay.region.colorID, regionNumber = db.region.Select(x => x.regionID).Max() + 1 }; db.region.Add(newRegion); db.store.Add(regionStoreRelay.store); db.SaveChanges(); relay gatewayRelay = new relay() { isActive = true, isProcessingCenter = false, queueLimit = regionStoreRelay.relay.queueLimit, isGateway = true, relayIP = regionStoreRelay.relay.relayIP, regionID = newRegion.regionID }; db.relay.Add(gatewayRelay); db.SaveChanges(); connections connection = new connections() { storeID = regionStoreRelay.store.storeID, destRelayID = gatewayRelay.relayID, isActive = true, weight = regionStoreRelay.connections.weight }; db.connections.Add(connection); db.SaveChanges(); var selectedRelays = regionStoreRelay.CheckboxGatewayModel.Where(x => x.selected); foreach (var selectedRelay in selectedRelays) { connections connection2 = new connections() { relayID = gatewayRelay.relayID, destRelayID = selectedRelay.relayID, isActive = true, weight = selectedRelay.weight }; db.connections.Add(connection2); } db.SaveChanges(); return(RedirectToAction("Index", "Home")); } //regionStoreRelay.CheckboxGatewayModel = GetGatewayRelays(); var colorInfo = from colors in db.colors select new { colors.colorID }; var colorsUsed = from region in db.region select new { region.colorID }; var temp = from colors in colorInfo.Except(colorsUsed) join colors2 in db.colors on colors.colorID equals colors2.colorID select new { colors2.colorName, colors2.colorID }; ViewBag.region = new { colorID = new SelectList(temp, "colorID", "colorName") }; return(View(regionStoreRelay)); }