Пример #1
0
        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);
        }
Пример #2
0
        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"));
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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});
             */
        }