/// <summary> /// save a item.update if exists /// </summary> /// <param name="obj"></param> /// <returns></returns> public static dynamic Save(VMGroupEdit obj) { var msg = new Msg(); var dbm = default(Group); obj.Slug = string.IsNullOrEmpty(obj.Slug) ? obj.Name.CHSToPinyin("-").ToLower() : obj.Slug.ToLower(); //validate name existence if (!ValidateName(obj.Name, obj.Id.ToString())) { msg.Error = true; msg.Body = string.Format("Name [{0}] exists,please choose another one!", obj.Name); return(msg); } ; using (var db = new GarfielderEntities()) { if (obj.IsNew)//add new { obj.Id = Guid.NewGuid(); dbm = new Group(); dbm.Id = obj.Id; dbm.CreatedAt = DateTime.Now; //TODO dbm.CreatedBy = "Sys"; db.AddToGroups(dbm); } else { //update dbm = db.Groups.SingleOrDefault(x => x.Id.Equals(obj.Id)); if (dbm == null) { //has been deleted! msg.Error = true; msg.Body = string.Format("Obj {0} has been deleted!", obj.Id); return(msg); } }//if dbm.Name = obj.Name; dbm.Slug = Group.CheckSlug(db, obj.Slug); dbm.Description = obj.Description; dbm.ParentID = obj.ParentID.Equals(Guid.Empty) ? default(Guid?) : obj.ParentID; dbm.Level = obj.Level; db.CommandTimeout = 0; db.SaveChanges(); //clear cache ClearCache(); if (dbm.Parent != null) { obj.ParentName = dbm.Parent.Name; } };//using return(obj); }
public JsonResult EditGroup(VMGroupEdit obj) { var msg = new Msg(); if (!TryUpdateModel(obj) || !ModelState.IsValid) { msg.Error = true; msg.Body = String.Format("Fields [{0}] are invalid!", string.Join(",", ModelState.Keys)); return(Json(msg)); } var obj1 = Group.Save(obj); return(Json(obj1)); }