コード例 #1
0
        public IActionResult New(int type)
        {
            var model = new NewCustomStateView();

            model.Type          = (CustomStateTypes)type;
            model.State         = new CustomState();
            model.State.Details = new Collection <CustomStateDetail>();

            return(View(model));
        }
コード例 #2
0
        public IActionResult New(NewCustomStateView model, IFormCollection form)
        {
            List <int> options = (from object key in form.Keys
                                  where key.ToString().StartsWith("buttonText_")
                                  select int.Parse(key.ToString().Replace("buttonText_", ""))).ToList();

            if (options == null || !options.Any())
            {
                ModelState.AddModelError("Detail", "You must supply options (which turn into the buttons) for personnel to act on before creating your custom statuses.");
            }

            if (ModelState.IsValid)
            {
                if (options.Count > 0)
                {
                    model.State.Details = new Collection <CustomStateDetail>();
                }

                model.State.DepartmentId = DepartmentId;
                model.State.Type         = (int)model.Type;

                foreach (var i in options)
                {
                    if (form.ContainsKey("buttonText_" + i))
                    {
                        var text      = form["buttonText_" + i];
                        var color     = form["buttonColor_" + i];
                        var textColor = form["textColor_" + i];
                        var order     = form["order_" + i];

                        bool gps      = false;
                        var  gpsValue = form["requireGps_" + i];

                        if (gpsValue == "on")
                        {
                            gps = true;
                        }

                        var noteType   = int.Parse(form["noteType_" + i]);
                        var detailType = int.Parse(form["detailType_" + i]);

                        var detail = new CustomStateDetail();
                        detail.ButtonText  = text;
                        detail.ButtonColor = color;
                        detail.GpsRequired = gps;
                        detail.NoteType    = noteType;
                        detail.DetailType  = detailType;
                        detail.TextColor   = textColor;
                        detail.Order       = int.Parse(order);

                        model.State.Details.Add(detail);
                    }
                }

                _customStateService.Save(model.State);

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }