Exemplo n.º 1
0
        // set model session
        // also save empty actions or specialability temporally
        private void UpdateModelSession()
        {
            if (Session["Model"] != null)
            {
                Character             ch           = Session["Model"] as Character;
                string                originalName = ch.name;
                List <string>         traits       = new List <string>();
                List <string>         types        = new List <string>();
                List <string>         defenseChart = new List <string>();
                List <Action>         actions      = new List <Action>();
                List <Specialability> specials     = new List <Specialability>();

                ch.name    = txtName.Text;
                ch.faction = txtFaction.Text;
                if (!string.IsNullOrEmpty(txtRank.Text))
                {
                    ch.rank = Convert.ToInt32(txtRank.Text);
                }
                if (!string.IsNullOrEmpty(txtBase.Text))
                {
                    ch._base = Convert.ToInt32(txtBase.Text);
                }
                if (!string.IsNullOrEmpty(txtSize.Text))
                {
                    ch.size = Convert.ToInt32(txtSize.Text);
                }
                ch.deploymentZone = txtDeploymentZone.Text;

                traits          = txtTraits.Text.Replace(", ", ",").Split(',').ToList();
                ch.traits       = traits.ToArray();
                types           = txtTypes.Text.Replace(", ", ",").Split(',').ToList();
                ch.types        = types.ToArray();
                defenseChart    = txtDefenseChart.Text.Replace(", ", ",").Split(',').ToList();
                ch.defenseChart = defenseChart.ToArray();

                if (!string.IsNullOrEmpty(txtMobility.Text))
                {
                    ch.mobility = Convert.ToInt32(txtMobility.Text);
                }
                if (!string.IsNullOrEmpty(txtWillpower.Text))
                {
                    ch.willpower = Convert.ToInt32(txtWillpower.Text);
                }
                if (!string.IsNullOrEmpty(txtResiliance.Text))
                {
                    ch.resiliance = Convert.ToInt32(txtResiliance.Text);
                }
                if (!string.IsNullOrEmpty(txtWounds.Text))
                {
                    ch.wounds = Convert.ToInt32(txtWounds.Text);
                }

                // set imageUrl
                if (!string.IsNullOrWhiteSpace(txtImageUrl.Text))
                {
                    ch.imageUrl = txtImageUrl.Text;
                }
                else
                {
                    switch (txtFaction.Text)
                    {
                    case "Nasier":
                        ch.imageUrl = "http://www.orderofgamers.com/wordpress/wp-content/uploads/2013/08/wok_nasier.jpg";
                        break;

                    case "Hadross":
                        ch.imageUrl = "http://www.beastsofwar.com/wp-content/uploads/2013/08/House-of-Hadross2.jpg";
                        break;

                    case "Goritsi":
                        ch.imageUrl = "http://www.orderofgamers.com/wordpress/wp-content/uploads/2013/08/wok_goritsi.jpg";
                        break;

                    case "Shael Han":
                        ch.imageUrl = "http://www.orderofgamers.com/wordpress/wp-content/uploads/2013/08/wok_shaelhan.jpg";
                        break;

                    case "Teknes":
                        ch.imageUrl = "http://www.orderofgamers.com/wordpress/wp-content/uploads/2013/08/wok_teknes.jpg";
                        break;

                    default:
                        ch.imageUrl = "http://cdn.playbuzz.com/cdn/7121cb79-6e02-4f50-8208-72b3241734eb/80a7496c-e78d-4d43-9f3f-3604314bc369.jpg";
                        break;
                    }
                }

                // actions
                // do not filter empty action
                foreach (RepeaterItem item in updateActionRepeater.Items)
                {
                    Action action = new Action();
                    action.name        = (item.FindControl("txtActName") as TextBox).Text;
                    action.type        = (item.FindControl("txtActType") as TextBox).Text;
                    action.rating      = Convert.ToInt32((item.FindControl("txtActRating") as TextBox).Text);
                    action.range       = (item.FindControl("txtActRange") as TextBox).Text;
                    action.description = (item.FindControl("txtActDesc") as TextBox).Text;
                    actions.Add(action);
                }
                ch.actions = actions.ToArray();

                // specialability
                // do not filter empty specialability
                foreach (RepeaterItem item in updateSpecialRepeater.Items)
                {
                    Specialability special = new Specialability();
                    special.name        = (item.FindControl("txtSpecialName") as TextBox).Text;
                    special.description = (item.FindControl("txtSpecialDesc") as TextBox).Text;
                    specials.Add(special);
                }
                ch.specialAbilities = specials.ToArray();


                Session["Model"] = ch;
            }
        }
        //save to JSON file
        protected void saveBtn_Click(object sender, EventArgs e)
        {
            _Model.name           = nameTxt.Text;
            _Model.faction        = factionTxt.Text;
            _Model.rank           = Convert.ToInt32(rankTxt.Text);
            _Model._base          = Convert.ToInt32(baseTxt.Text);
            _Model.size           = Convert.ToInt32(sizeTxt.Text.Remove(sizeTxt.Text.Length - 2, 2)); // remove "mm" from textbox to avoid exception
            _Model.deploymentZone = deploymentZoneTxt.Text;
            _Model.mobility       = Convert.ToInt32(mobilityTxt.Text);
            _Model.willpower      = Convert.ToInt32(willpowerTxt.Text);
            _Model.resiliance     = Convert.ToInt32(resilianceTxt.Text);
            _Model.wounds         = Convert.ToInt32(woundsTxt.Text);

            // declare a TextBox since texboxes from repeater are not accessible
            TextBox specialName       = new TextBox();
            TextBox specialDesc       = new TextBox();
            TextBox actionName        = new TextBox();
            TextBox actionType        = new TextBox();
            TextBox actionRating      = new TextBox();
            TextBox actionRange       = new TextBox();
            TextBox actionDescription = new TextBox();

            TextBox[]        traits            = new TextBox[traitsRepeater.Items.Count];
            TextBox[]        types             = new TextBox[typesRepeater.Items.Count];
            TextBox[]        defenseChartItems = new TextBox[defenseChartRepeater.Items.Count];
            Models.Action[]  actions           = null;
            Specialability[] specialAbilities  = null;

            if (_Model.specialAbilities == null)
            {
                specialAbilitiesRepeater.Visible = false;
            }
            else
            {
                specialAbilities = new Specialability[_Model.specialAbilities.Length];
            }
            if (_Model.actions == null)
            {
                actionsRepeater.Visible = false;
            }
            else
            {
                actions = new Models.Action[_Model.actions.Length];
            }


            // loop trough each item of the special abilities repeater
            foreach (RepeaterItem item in specialAbilitiesRepeater.Items)
            {
                specialName = (TextBox)item.FindControl("specialAbName");
                specialDesc = (TextBox)item.FindControl("specialAbDesc");
                specialAbilities[item.ItemIndex] = new Specialability {
                    name = specialName.Text, description = specialDesc.Text
                };
            }

            _Model.specialAbilities = specialAbilities;

            // loop trough each item of the actions repeater
            foreach (RepeaterItem item in actionsRepeater.Items)
            {
                actionName              = (TextBox)item.FindControl("actionName");
                actionType              = (TextBox)item.FindControl("actionType");
                actionRating            = (TextBox)item.FindControl("actionRating");
                actionRange             = (TextBox)item.FindControl("actionRange");
                actionDescription       = (TextBox)item.FindControl("actionDescription");
                actions[item.ItemIndex] = new Models.Action
                {
                    name        = actionName.Text,
                    type        = actionType.Text,
                    rating      = Convert.ToInt32(actionRating.Text),
                    range       = actionRange.Text,
                    description = actionDescription.Text
                };
            }

            _Model.actions = actions;

            // assign values of textBoxes
            foreach (RepeaterItem item in traitsRepeater.Items)
            {
                traits[item.ItemIndex] = (TextBox)item.FindControl("trait");
            }

            // add traits to the traits array
            for (int i = 0; i < traitsRepeater.Items.Count; i++)
            {
                _Model.traits[i] = traits[i].Text;
            }


            // assign values of textBoxes
            foreach (RepeaterItem item in typesRepeater.Items)
            {
                types[item.ItemIndex] = (TextBox)item.FindControl("type");
            }

            // add traits to the traits array
            for (int i = 0; i < typesRepeater.Items.Count; i++)
            {
                _Model.types[i] = types[i].Text;
            }

            // add textboxes of the repeater to the textbox array
            foreach (RepeaterItem item in defenseChartRepeater.Items)
            {
                defenseChartItems[item.ItemIndex] = (TextBox)item.FindControl("defenseChartItem");
            }

            // add defense item to the appropriate index in the defenseChartArray array
            for (int i = 0; i < defenseChartRepeater.Items.Count; i++)
            {
                _Model.defenseChart[i] = defenseChartItems[i].Text;
            }

            // update the new JSON file and redirect back to model page
            Global.UpdateModelCollection();
            Response.Redirect(string.Format("SingleModel.aspx?name={0}&faction={1}", name, faction));
        }
Exemplo n.º 3
0
        // set model session
        // also save empty actions or specialability temporally
        private void UpdateNewModelSession()
        {
            Character             ch           = new Character();
            List <string>         traits       = new List <string>();
            List <string>         types        = new List <string>();
            List <string>         defenseChart = new List <string>();
            List <Action>         actions      = new List <Action>();
            List <Specialability> specials     = new List <Specialability>();

            ch.name    = txtName.Text;
            ch.faction = txtFaction.Text;
            if (!string.IsNullOrEmpty(txtRank.Text))
            {
                ch.rank = Convert.ToInt32(txtRank.Text);
            }
            if (!string.IsNullOrEmpty(txtBase.Text))
            {
                ch._base = Convert.ToInt32(txtBase.Text);
            }
            if (!string.IsNullOrEmpty(txtSize.Text))
            {
                ch.size = Convert.ToInt32(txtSize.Text);
            }
            ch.deploymentZone = txtDeploymentZone.Text;

            traits          = txtTraits.Text.Replace(", ", ",").Split(',').ToList();
            ch.traits       = traits.ToArray();
            types           = txtTypes.Text.Replace(", ", ",").Split(',').ToList();
            ch.types        = types.ToArray();
            defenseChart    = txtDefenseChart.Text.Replace(", ", ",").Split(',').ToList();
            ch.defenseChart = defenseChart.ToArray();

            if (!string.IsNullOrEmpty(txtMobility.Text))
            {
                ch.mobility = Convert.ToInt32(txtMobility.Text);
            }
            if (!string.IsNullOrEmpty(txtWillpower.Text))
            {
                ch.willpower = Convert.ToInt32(txtWillpower.Text);
            }
            if (!string.IsNullOrEmpty(txtResiliance.Text))
            {
                ch.resiliance = Convert.ToInt32(txtResiliance.Text);
            }
            if (!string.IsNullOrEmpty(txtWounds.Text))
            {
                ch.wounds = Convert.ToInt32(txtWounds.Text);
            }

            // set imageUrl
            if (!string.IsNullOrWhiteSpace(txtImageUrl.Text))
            {
                ch.imageUrl = txtImageUrl.Text;
            }

            // actions
            // do not filter empty action
            foreach (RepeaterItem item in newActionRepeater.Items)
            {
                Action action = new Action();
                action.name        = (item.FindControl("txtActName") as TextBox).Text;
                action.type        = (item.FindControl("txtActType") as TextBox).Text;
                action.rating      = Convert.ToInt32((item.FindControl("txtActRating") as TextBox).Text);
                action.range       = (item.FindControl("txtActRange") as TextBox).Text;
                action.description = (item.FindControl("txtActDesc") as TextBox).Text;
                actions.Add(action);
            }
            ch.actions = actions.ToArray();

            // specialability
            // do not filter empty specialability
            foreach (RepeaterItem item in newSpecialRepeater.Items)
            {
                Specialability special = new Specialability();
                special.name        = (item.FindControl("txtSpecialName") as TextBox).Text;
                special.description = (item.FindControl("txtSpecialDesc") as TextBox).Text;
                specials.Add(special);
            }
            ch.specialAbilities = specials.ToArray();

            Session["NewModel"] = ch;
        }