public IHttpActionResult Post([FromBody] Request <MetaDataParam> request) { try { Response <MetaDataParam> response = new Response <MetaDataParam>(); MetaDataParam model = request.Data as MetaDataParam; if (model == null) { return(NotFound()); } if (model.ID <= 0) { int ID = bll.Add(model); model.ID = ID; } else { bool isEditSuccess = bll.Edit(model); } response.Data = model; return(Ok(response)); } catch (Exception ex) { LogService.WriteErrorLog("MetaDataParamController[Post]", ex.ToString()); return(BadRequest(ex.Message)); } }
/// <summary> /// 修改元数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Edit(MetaDataParam model) { if (model == null || model.ID <= 0) { LogService.WriteInfoLog(logTitle, "试图修改为空的MetaDataParam实体!"); throw new KeyNotFoundException(); } using (DbContext db = new CRDatabase()) { db.Entry(ModelToEntity(model)).State = EntityState.Modified; return(db.SaveChanges() > 0); } }
/// <summary> /// 新增元数据参数 /// </summary> /// <param name="model"></param> /// <returns></returns> public int Add(MetaDataParam model) { if (model == null) { return(0); } using (DbContext db = new CRDatabase()) { db.Set <CTMS_METADATAPARAM>().Add(ModelToEntity(model)); db.SaveChanges(); return(model.ID); } }
public CTMS_METADATAPARAM ModelToEntity(MetaDataParam model) { if (model == null) { return(null); } return(new CTMS_METADATAPARAM() { ID = model.ID <= 0 ? base.GetMaxId("CTMS_METADATAPARAM", "ID") : model.ID, METADATAID = model.MetaDataID, PARAMNAME = model.ParamName, PARAMVALUE = model.ParamValue }); }
Method GetMethod(Method m, MetaDataMethod x, string path) { m.Modifiers = GetMethodModifiers(x); m.Type = GetType(x.Signature.ReturnType, path); for (int i = 0; i < x.Parameters.Length; i++) { Formal f; MetaDataParam p = x.Parameters[i]; if (i == x.Parameters.Length - 1 && m.Name == "set_Item") { f = m.AddFormal(new InputElement("value"), msg); m.signature.formals.Remove(f); } else { f = m.AddFormal(new InputElement(String.Format("arg{0}", i + 1)), msg); } f.Type = GetType(x.Signature.Parameters[i].Type, path); if ((p.Flags & ((int)MetaDataParam.ParamAttributes.Out)) != 0) { f.modifier = new InputElement("out"); } else if (f.Type is ManagedPointerType) { f.modifier = new InputElement("ref"); } if (f.Type is ManagedPointerType) { f.Type = ((ManagedPointerType)f.Type).elementType; } else if (p.CustomAttributes != null) { foreach (MetaDataCustomAttribute a in p.CustomAttributes) { MetaDataMethod t = a.Type as MetaDataMethod; if (t != null && t.Parent != null && t.Parent.Name == "ParamArrayAttribute") { f.IsParams = true; break; } } } } return(m); }