コード例 #1
0
        public ActionResult Create(PoliticalGroupModel model)
        {
            if (ModelState.IsValid)
            {
                if (db.PoliticalGroups.Any(x => x.Name == model.Name && x.VariantName == model.VariantName))
                {
                    return(View(model));
                }

                var newGroup = new PoliticalGroup
                {
                    Name           = model.Name,
                    VariantName    = model.VariantName,
                    Authority      = model.Authority,
                    Centralization = model.Centralization,
                    Militarism     = model.Militarism,
                    Nationalism    = model.Nationalism,
                    Planning       = model.Planning,
                    Radicalism     = model.Radicalism
                };

                // preemptively save
                db.PoliticalGroups.Add(newGroup);

                db.SaveChanges();

                newGroup = db.PoliticalGroups.Single(x => x.Name == model.Name);

                // allies
                foreach (var id in model.SelectedAllyIds)
                {
                    var relGroup = db.PoliticalGroups.Single(x => x.Id == id);
                    newGroup.AddAlly(relGroup);
                }
                // enemies
                foreach (var id in model.SelectedEnemyIds)
                {
                    var relGroup = db.PoliticalGroups.Single(x => x.Id == id);
                    newGroup.AddEnemy(relGroup);
                }

                db.Entry(newGroup).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
コード例 #2
0
        // GET: PoliticalGroups/Create
        public ActionResult Create()
        {
            var groupModel = new PoliticalGroupModel();

            // allies
            var allyList = new List <SelectListItem>();

            foreach (var party in db.PoliticalGroups)
            {
                allyList.Add(new SelectListItem
                {
                    Text  = party.Name + " : " + party.VariantName,
                    Value = party.Id.ToString()
                });
            }

            groupModel.SelectedAllyIds = new int[] { };
            groupModel.AllyList        = allyList;

            // enemies
            var enemyList = new List <SelectListItem>();

            foreach (var party in db.PoliticalGroups)
            {
                enemyList.Add(new SelectListItem
                {
                    Text  = party.Name + " : " + party.VariantName,
                    Value = party.Id.ToString()
                });
            }

            groupModel.SelectedEnemyIds = new int[] { };
            groupModel.EnemyList        = enemyList;

            return(View(groupModel));
        }
コード例 #3
0
        // GET: PoliticalGroups/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PoliticalGroup pol = db.PoliticalGroups
                                 .Include(x => x.Tags)
                                 .Include(x => x.Allies)
                                 .Include(x => x.Enemies)
                                 .SingleOrDefault(x => x.Id == id);

            if (pol == null)
            {
                return(HttpNotFound());
            }

            var groupModel = new PoliticalGroupModel
            {
                Id             = pol.Id,
                Authority      = pol.Authority,
                Centralization = pol.Centralization,
                Militarism     = pol.Militarism,
                Nationalism    = pol.Nationalism,
                Planning       = pol.Planning,
                Radicalism     = pol.Radicalism,
                Name           = pol.Name,
                VariantName    = pol.VariantName
            };

            // allies
            var allyList = new List <SelectListItem>();

            foreach (var party in db.PoliticalGroups)
            {
                if (party.Id != id)
                {
                    allyList.Add(new SelectListItem
                    {
                        Text  = party.Name + " : " + party.VariantName,
                        Value = party.Id.ToString()
                    });
                }
            }

            var allies = new List <int>();

            foreach (var party in pol.Allies)
            {
                if (party.Id != id)
                {
                    allies.Add(party.Id);
                }
            }

            groupModel.SelectedAllyIds = allies.ToArray();
            groupModel.AllyList        = allyList;

            // enemies
            var enemyList = new List <SelectListItem>();

            foreach (var party in db.PoliticalGroups)
            {
                if (party.Id != id)
                {
                    enemyList.Add(new SelectListItem
                    {
                        Text  = party.Name + " : " + party.VariantName,
                        Value = party.Id.ToString()
                    });
                }
            }

            var enemies = new List <int>();

            foreach (var party in pol.Enemies)
            {
                if (party.Id != id)
                {
                    enemies.Add(party.Id);
                }
            }

            groupModel.SelectedEnemyIds = enemies.ToArray();
            groupModel.EnemyList        = enemyList;

            return(View(groupModel));
        }