public DefineControllerMethod GetControllerGetAll(DefineController c, ServiceMethod m) { var s = new DefineControllerMethod(); s.ServiceMethod = m; s.Name = "getAll"; s.Translate = "getAll"; s.DefineController = c; return(s); }
public ActionResult Create(long modelId, string subSystemName) { try { using (var db = new EngineContext()) { var model = db.Models.Find(modelId); if (model == null) { throw new Exception("model is null"); } if (model.DefineControllers.Count > 0) { throw new Exception("قبلا برای این مدل کنترلر تعریف شده است"); } var subsystem = new SubSystem(); subsystem.Name = subSystemName; var service = new DefineService(); service.Name = model.Name + "sService"; service.ModelId = model.Id; service.Translate = model.Translate + " سرویس "; service.ServiceMethods = GetDefaultServices(); subsystem.DefineServices.Add(service); var controller = new DefineController(); controller.Name = model.Name + "sController"; controller.ModelId = model.Id; controller.Translate = model.Translate + " کنترولر "; controller.DefineControllerMethods = GetDefaultControllers(); subsystem.DefineControllers.Add(controller); var table = new EjTable(); table.Name = model.Name + "sTable"; table.Translate = model.Translate + " جدول "; table.UiTableItems = GetDefaultItemsForTable(); table.TableMethods.Add(new TableMethod { DefineControllerMethod = controller.DefineControllerMethods.First(d => d.MethodType == MethodType.GetDataTable), }); var form = new UiForm(); form.Name = model.Name + "sForm"; form.Translate = model.Translate + " ثبت "; form.UiFormControllerMethods.Add(new UiFormControllerMethod { DefineControllerMethod = controller.DefineControllerMethods.First(d => d.MethodType == MethodType.Save), Type = UiFormControllerMethodType.Save, Translate = "ثبت" }); form.UiFormControllerMethods.Add(new UiFormControllerMethod { DefineControllerMethod = controller.DefineControllerMethods.First(d => d.MethodType == MethodType.Save), Type = UiFormControllerMethodType.Search, Translate = "جستجو" }); var tableSearchForm = new UiTableForm(); tableSearchForm.UiForm = form; tableSearchForm.EjTable = table; tableSearchForm.Translate = form.Translate; tableSearchForm.Name = tableSearchForm.Name; } return(View()); } catch (Exception e) { ViewBag.alertmsg = e.Message; return(View("GetDataTable")); } }
public static string GetControllerContent(DefineController controller, string translate, string serviceName, string baseClassName, object baseInterfaces, string serviceContent, string description, object genericModel, string subSystemName, bool isNormalController, bool isMVC = true) { baseClassName = baseClassName != null ? ":" + baseClassName : ""; baseClassName = baseClassName + (genericModel != null ? "<" + genericModel + ">" : ""); if (baseClassName.Contains(":")) { baseClassName += baseInterfaces == null ? "" : "," + baseInterfaces; } else { baseClassName += baseInterfaces == null ? "" : ":" + baseInterfaces; } var fields = controller.DefineControllerMethods.Where(m => !m.InParent).Select(m => m?.ServiceMethod?.DefineService).Distinct(); var fieldsStr = ""; var constructure = $@"public {controller.Name}("; var defineServices = fields as DefineService[] ?? fields.ToArray(); foreach (var field in defineServices) { fieldsStr += $@" private {field.Name} {"_" + field.Name.ToLower()}" + "{get;set;} \n"; } constructure += string.Join(",", defineServices.Select(f => f.Name + " " + "_" + f.Name.ToLower().Trim()).ToArray()) + "){ \n"; if (isNormalController) { constructure += $@" DefaultSaveName = ""{controller.Name}Save""; DefaultDataTableName = ""{controller.Name}DataTable"";"; } constructure += string.Join(";", defineServices.Select(f => "this._" + f.Name.ToLower() + "=_" + f.Name.ToLower() + "; \n ").ToArray()) + "}\n"; var serviceUsings = string.Join(",", defineServices.Select(f => "using ServiceLayer." + f.SubSystem.Name + ";").Distinct().ToArray()); serviceUsings = !string.IsNullOrEmpty(serviceUsings) ? serviceUsings + "\n" : ""; var mvcOrapi = isMVC ? "using System.Web.Mvc;" : "using System.Web.Http;"; string content = serviceUsings + @" " + string.Join("\n", ControllerUsigs) + @" using System; using System.Collections.Generic; using System.Linq; using System.Net; using Engine.Attributes; using Engine.Controllers.AbstractControllers; using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; using System.Threading.Tasks; using System.Web.Mvc; using ViewModel.ActionTypes; using ViewModel.Parameters; using WebAppIDEEngine.Models; using WebAppIDEEngine.Models.ICore; using System.Collections.Specialized; using Engine.Areas.JUiEngine.Controllers; using Engine.Entities.Models.UiGeneratorModels; using Engine.ServiceLayer.Systems.Engine; using Engine.Service.AbstractControllers; using WebGrease.Css.Extensions; using WebAppIDEEngine.Models; using WebAppIDEEngine.Areas.App.Controllers; " + mvcOrapi + @" namespace " + ControllersNamespace + @".Areas." + subSystemName + @".Controllers { /// <summary> /// " + translate + @" /// " + description + @" /// </summary> public class " + serviceName + " " + baseClassName + @" { "; content += fieldsStr + "\n"; content += constructure + "\n"; content += serviceContent + "\n"; content += "} \n } " + "\n"; return(content); }
public void MakeFakeObjects() { var subsystem = new SubSystem(); subsystem.Name = "Library"; subsystem.Translate = "کتابخانه"; subsystem.IsInstalled = true; var b = this.MakeBook(); var u = this.MakeUser(); var r = this.MakeRent(b, u); Models.Add(b); Models.Add(u); Models.Add(r); SubSystems.Add(subsystem); DefineService userService = new DefineService(); userService.Model = u; userService.Name = "userService"; userService.Translate = "userService"; userService.SubSystem = subsystem; DefineService bookService = new DefineService(); bookService.Model = b; bookService.Name = "bookService"; bookService.Translate = "bookService"; bookService.SubSystem = subsystem; DefineService RentService = new DefineService(); RentService.Model = r; RentService.Name = "RentService"; RentService.Translate = "RentService"; RentService.SubSystem = subsystem; Services.Add(bookService); Services.Add(RentService); Services.Add(userService); var bookQuery = getBookQuery(b); var userQuery = getUserQuery(u); var rentQuery = getRentQuery(r); var bookServiceGetAll = GetServiceGetAll(bookQuery, bookService); var userServiceGetAll = GetServiceGetAll(userQuery, userService); var rentServiceGetAll = GetServiceGetAll(rentQuery, RentService); Queries.Add(bookQuery); Queries.Add(userQuery); Queries.Add(rentQuery); bookService.ServiceMethods.Add(bookServiceGetAll);; RentService.ServiceMethods.Add(userServiceGetAll);; userService.ServiceMethods.Add(rentServiceGetAll);; DefineController userController = new DefineController(); userController.Model = u; userController.Name = "user"; userController.Translate = "user"; userController.SubSystem = subsystem; DefineController bookController = new DefineController(); bookController.Model = b; bookController.Name = "book"; bookController.Translate = "book"; bookController.SubSystem = subsystem; DefineController RentController = new DefineController(); RentController.Model = r; RentController.Name = "Rent"; RentController.Translate = "Rent"; RentController.SubSystem = subsystem; Controllers.Add(userController); Controllers.Add(bookController); Controllers.Add(RentController); userController.DefineControllerMethods.Add(GetControllerGetAll(userController, userServiceGetAll));; bookController.DefineControllerMethods.Add(GetControllerGetAll(bookController, bookServiceGetAll));; RentController.DefineControllerMethods.Add(GetControllerGetAll(RentController, rentServiceGetAll));; /* * userQuery.models.Add(new QueryModel{Model = b,Query = userQuery}); * userQuery.models.Add(new QueryModel{Model = r,Query = userQuery}); */ }