예제 #1
0
        public ActionResult Edit([Bind] NotepadEntry entry)
        {
            Dictionary <string, List <string> > errors = new Dictionary <string, List <string> >();

            if (!ModelState.IsValid)
            {
                for (int i = 0; i < ModelState.Keys.Count; i++)
                {
                    string key = ModelState.Keys.ElementAt(i);
                    if (!ModelState.IsValidField(key))
                    {
                        errors.Add(key, (from error in ModelState.Values.ElementAt(i).Errors select error.ErrorMessage).ToList <string>());
                    }
                }
            }
            else
            {
                NotepadEntry original = this.repository.Find(entry.Id);

                if (original != null)
                {
                    ConditionCollection conditions = new ConditionCollection();
                    conditions.AddCondition(new EqualCondition {
                        Field = "PhoneNumber", Value = entry.PhoneNumber
                    });

                    if (original.PhoneNumber != entry.PhoneNumber && this.repository.SelectEntries(0, 1, conditions, null).Count == 1)
                    {
                        errors.Add("PhoneNumber", new List <string> {
                            "Записи таким номером уже существует"
                        });
                    }
                    else
                    {
                        this.repository.Update(entry);
                        return(Json(new { success = true, entry = entry }));
                    }
                }
                else
                {
                    errors.Add("PhoneNumber", new List <string> {
                        "Записи с таким номером не существует"
                    });
                }
            }

            return(Json(new { success = false, errors = errors }));
        }
예제 #2
0
        /**
         * Action for editing existed entity.
         * Returns partial form with filled fields.
         */
        public ActionResult Edit(int id)
        {
            NotepadEntry notepad = this.repository.Find(id);

            if (notepad != null)
            {
                this.ViewBag.Data  = notepad;
                this.ViewBag.Today = DateTime.Now;

                return(View());
            }
            else
            {
                return(RedirectToAction("Create", "MyController"));
            }
        }