public async Task <IActionResult> AddItem( [FromBody] AConMvcClass systemHtml) { systemHtml.Addtime = DateTime.Now; if (string.IsNullOrEmpty(systemHtml.Guid)) { systemHtml.Guid = Guid.NewGuid().ToString("D"); } var oldmvc = await DbFactory.Queryable <AConMvcClass>().Where(p => p.ClassName.ToLower() == systemHtml.ClassName.ToLower()).FirstAsync(); if (oldmvc != null) { return(Json(new { isok = false, err = $"has the same class {systemHtml.ClassName }" })); } var reint = await DbFactory.Insertable(systemHtml).ExecuteCommandAsync(); if (systemHtml.IsEanable.ToBool() == true) { try { var aConMvcCompileClass = AConMvcCompileClass.ToCompileClass(systemHtml); _actionProvider.AddControllers(aConMvcCompileClass); _dynamicChangeTokenProvider.NotifyChanges(); return(Json(new { isok = true })); } catch (Exception ex) { return(Json(new { isok = false, err = ex.Message })); } } return(Json(new { isok = reint > 0 })); }
public async Task <IActionResult> UpdateItem([FromBody] AConMvcClass systemHtml) { if (string.IsNullOrEmpty(systemHtml.Guid)) { systemHtml.Guid = Guid.NewGuid().ToString("D"); } var aConMvcCompileClass = AConMvcCompileClass.ToCompileClass(systemHtml); var result = await DbFactory.Queryable <AConMvcClass>().Where(p => p.Id == systemHtml.Id).FirstAsync(); if (result != null) { _actionProvider.RemoveController(aConMvcCompileClass); _dynamicChangeTokenProvider.NotifyChanges(); result = systemHtml; } var reint = await DbFactory.Updateable(result).ExecuteCommandAsync(); if (systemHtml.IsEanable.ToBool() == true) { try { _actionProvider.AddControllers(aConMvcCompileClass); _dynamicChangeTokenProvider.NotifyChanges(); return(Json(new { isok = true })); } catch (Exception ex) { return(Json(new { isok = false, err = ex.Message })); } } return(Json(new { isok = reint >= 0 })); }
public void AddControllers(AConMvcCompileClass sourceCode) { var ss = _creator(sourceCode); //_actions.AddRange(ss); if (ss != null && ss.Count() > 0) { foreach (var a in ss) { var oldactions = _actions.Where(p => p.ActionName == a.ActionName && p.ControllerName == a.ControllerName); if (oldactions != null) { foreach (var oa in oldactions) { _actions.Remove(oa); } _actions.Add(a); } else { _actions.Add(a); } } } }
public void RemoveController(AConMvcCompileClass sourceCode) { var oldClasss = _actions.Where(p => p.ControllerName.ToLower() == sourceCode.ClassName.ToLower()); if (oldClasss != null) { var allinex = new List <int>(); foreach (var oa in oldClasss) { var oldaction = _actions.FirstOrDefault(p => p.ActionName == oa.ActionName && p.ControllerName == oa.ControllerName); if (oldaction != null) { allinex.Add(_actions.IndexOf(oldaction)); } } var i = 0; foreach (var index in allinex) { if (index - i < _actions.Count) { _actions.RemoveAt(index - i); } i++; } } }
public static async Task ClearAllDynamicActions(DynamicActionProvider dynamicActionProvider, DynamicChangeTokenProvider dynamicChangeToken) { var allactios = DB.UniClient.Queryable <AConMvcClass>().Where(p => p.IsEanable != null && p.IsEanable == true).ToList(); try { foreach (var c in allactios) { var classes = AConMvcCompileClass.ToCompileClass(c); dynamicActionProvider.RemoveController(classes); dynamicChangeToken.NotifyChanges(); Thread.Sleep(20); } } catch { } }
private static Task Complies(DynamicActionProvider dynamicActionProvider, List <AConMvcClass> allactios, DynamicChangeTokenProvider tokenProvider) { Task mytask = Task.Run(() => { for (var i = 0; i < allactios.Count; i++) { var c = allactios[i]; try { dynamicActionProvider.AddControllers(AConMvcCompileClass.ToCompileClass(c)); tokenProvider.NotifyChanges(); Logger.LogDebug("Complies", $"Complie{c.ClassName} done"); } catch (Exception ex) { Logger.LogError("Complies erro ", $"controller :{c.ClassName}, action :{c.ActionCode}", ex); } } }); return(mytask); }