Exemplo n.º 1
0
        public ActionResult Create([Bind(Include = "ParentId,PoliticalGroupId,Percent")] PoliticalBreakdown politicalBreakdown)
        {
            if (ModelState.IsValid)
            {
                // get target percent
                var target = politicalBreakdown.Percent;

                // get parent
                var parent = db.PopulationGroups
                             .Single(x => x.Id == politicalBreakdown.ParentId);

                // get party
                var party = db.PoliticalGroups
                            .Single(x => x.Id == politicalBreakdown.PoliticalGroupId);

                // add to list
                parent.SetPartyPercent(party, target);

                // update others
                foreach (var part in parent.PoliticalBreakdown.Where(x => x.PoliticalGroupId != party.Id))
                {
                    db.Entry(part).State = EntityState.Modified;
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.ParentId         = new SelectList(db.PopulationGroups, "Id", "Name", politicalBreakdown.ParentId);
            ViewBag.PoliticalGroupId = new SelectList(db.PoliticalGroups, "Id", "Name", politicalBreakdown.PoliticalGroupId);
            return(View(politicalBreakdown));
        }
Exemplo n.º 2
0
        public ActionResult Edit([Bind(Include = "ParentId,PoliticalGroupId,Percent")] PoliticalBreakdown politicalBreakdown)
        {
            if (ModelState.IsValid)
            {
                // get target percent
                var target = politicalBreakdown.Percent;

                // parent
                var old = db.PopulationGroups
                          .Single(x => x.Id == politicalBreakdown.ParentId);

                // get party
                var party = db.PoliticalGroups
                            .Single(x => x.Id == politicalBreakdown.PoliticalGroupId);

                // change percents
                old.SetPartyPercent(party, target);

                // update all other groups
                foreach (var par in old.PoliticalBreakdown)
                {
                    db.Entry(par).State = EntityState.Modified;
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.ParentId         = new SelectList(db.PopulationGroups, "Id", "Name", politicalBreakdown.ParentId);
            ViewBag.PoliticalGroupId = new SelectList(db.PoliticalGroups, "Id", "Name", politicalBreakdown.PoliticalGroupId);
            return(View(politicalBreakdown));
        }
        public ActionResult Create([Bind(Include = "Id,Name,MarketId,Infants,Children,Adults,Seniors,SkillLevel,PrimaryJobId,Priority")] PopulationGroup populationGroup)
        {
            if (ModelState.IsValid)
            {
                db.PopulationGroups.Add(populationGroup);
                db.SaveChanges();

                // Population Groups default to 100% of some (usually the first)
                // Party, Species, and Culture by default to ensure they have
                // something.

                // get the new pop group.
                var pop = db.PopulationGroups
                          .Single(x => x.MarketId == populationGroup.MarketId &&
                                  x.PrimaryJobId == populationGroup.PrimaryJobId);

                // Set Default Species
                var species = new SpeciesBreakdown
                {
                    ParentId  = pop.Id,
                    SpeciesId = db.Species.First().Id,
                    Percent   = 1
                };

                db.PopSpeciesBreakdowns.Add(species);

                // set default Culture
                var culture = new CultureBreakdown
                {
                    ParentId  = pop.Id,
                    CultureId = db.Cultures.First().Id,
                    Percent   = 1
                };

                db.PopCultureBreakdowns.Add(culture);

                // set Default Political Group
                var party = new PoliticalBreakdown
                {
                    ParentId         = pop.Id,
                    PoliticalGroupId = db.PoliticalGroups.First().Id,
                    Percent          = 1
                };

                db.PopPoliticalBreakdowns.Add(party);

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.PrimaryJobId = new SelectList(db.Jobs, "Id", "Name", populationGroup.PrimaryJobId);
            ViewBag.MarketId     = new SelectList(db.Markets, "Id", "Name", populationGroup.MarketId);
            return(View(populationGroup));
        }
Exemplo n.º 4
0
        // GET: PoliticalBreakdowns/Details/5
        public ActionResult Details(int?parentId, int?partyId)
        {
            if (parentId == null || partyId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PoliticalBreakdown politicalBreakdown = db.PopPoliticalBreakdowns
                                                    .SingleOrDefault(x => x.ParentId == parentId && x.PoliticalGroupId == partyId);

            if (politicalBreakdown == null)
            {
                return(HttpNotFound());
            }
            return(View(politicalBreakdown));
        }
Exemplo n.º 5
0
        // GET: PoliticalBreakdowns/Edit/5
        public ActionResult Edit(int?parentId, int?partyId)
        {
            if (parentId == null || partyId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PoliticalBreakdown politicalBreakdown = db.PopPoliticalBreakdowns
                                                    .SingleOrDefault(x => x.ParentId == parentId && x.PoliticalGroupId == partyId);

            if (politicalBreakdown == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ParentId         = new SelectList(db.PopulationGroups, "Id", "Name", politicalBreakdown.ParentId);
            ViewBag.PoliticalGroupId = new SelectList(db.PoliticalGroups, "Id", "Name", politicalBreakdown.PoliticalGroupId);
            return(View(politicalBreakdown));
        }
Exemplo n.º 6
0
        public ActionResult DeleteConfirmed(int parentId, int partyId)
        {
            PoliticalBreakdown politicalBreakdown = db.PopPoliticalBreakdowns
                                                    .SingleOrDefault(x => x.ParentId == parentId && x.PoliticalGroupId == partyId);
            // Get parent before getting to far.
            var pop = db.PopulationGroups.Single(x => x.Id == parentId);

            db.PopPoliticalBreakdowns.Remove(politicalBreakdown);

            // after deletion normalize percent
            pop.NormalizePolitics();

            // mark remaining parts as modified
            foreach (var pol in pop.PoliticalBreakdown)
            {
                db.Entry(pol).State = EntityState.Modified;
            }

            db.SaveChanges();
            return(RedirectToAction("Index"));
        }