示例#1
0
文件: Form.cs 项目: radtek/EMIP
        public virtual JObject GetFormStateInfo(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    app       = request.GetString("app");
            string    key       = request.GetString("key", null);
            string    formstate = request.GetString("formstate", null);

            FormApplication formApplication;
            FormState       formState;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                formApplication = FormApplication.Open(cn, app);
                formState       = FormService.GetFormStateBasicInfo(cn, app, formstate);
            }

            JObject rv = new JObject();

            rv[YZJsonProperty.success] = true;
            rv["appShortName"]         = formApplication.Name;
            rv["formstate"]            = formState.Name;
            rv["token"]           = YZSecurityHelper.GenFormApplicationToken(app, key, formState.Name);
            rv["showSaveButton"]  = formState.ShowSaveButton;
            rv["validationGroup"] = formState.ValidationGroup;
            rv["url"]             = YZUtility.GetFormRedirectUrl(formApplication.Form).ToString();
            return(rv);
        }
示例#2
0
 /// <summary>
 /// Starts this instance.
 /// </summary>
 public void Start()
 {
     _applications.ForEach(x => x.Start());
     Logger.LoggerInstance.LogInformation("Starting main console.");
     FormApplication.Run(_mainConsole);
     Stop();
 }
示例#3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!AspxHelper.IsAuthenticated)
        {
            FormsAuthentication.RedirectToLoginPage();
        }

        string          appName         = this.Request.QueryString["app"];
        FormApplication formApplication = null;
        BPMConnection   cn = new BPMConnection();

        try
        {
            cn.WebOpen(this.Page);
            formApplication = FormApplication.Load(cn, appName);
        }
        finally
        {
            cn.Close();
        }

        string formFile = formApplication.Form;

        if (formFile.IndexOf('?') != -1)
        {
            this.Server.Transfer(this.ResolveClientUrl("../Forms/") + formFile + "&md=App&" + this.Request.QueryString.ToString(), false);
        }
        else
        {
            this.Server.Transfer(this.ResolveClientUrl("../Forms/") + formFile + "?md=App&" + this.Request.QueryString.ToString(), false);
        }

        this.Response.End();
    }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="applicationMenuInstance">
 /// Main Form Application
 /// it contrain Menu Application
 /// is is MdiForm
 /// </param>
 /// <param name="user">Connected user</param>
 public GwinApp(Type TypeDbContext, Type TypeBaseBLO, FormApplication applicationMenuInstance, User user)
 {
     this.Theme           = new DefaultTheme();
     this.TypeDBContext   = TypeDbContext;
     this.TypeBaseBLO     = TypeBaseBLO;
     this.FormApplication = applicationMenuInstance;
     this.user            = user;
 }
示例#5
0
        public virtual JObject GetAppsInFolder(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    path    = request.GetString("path", null);
            FormApplicationCollection formApplications;

            //获得数据
            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                formApplications = cn.GetFormApplicationList(path, BPMPermision.Read);

                //将数据转化为Json集合
                JObject rv = new JObject();
                rv[YZJsonProperty.total] = formApplications.Count;

                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (FormApplication tmpformapp in formApplications)
                {
                    string fullName;
                    if (String.IsNullOrEmpty(path))
                    {
                        fullName = tmpformapp.Name;
                    }
                    else
                    {
                        fullName = path + "/" + tmpformapp.Name;
                    }

                    FormApplication formapp = FormApplication.Open(cn, fullName);

                    JObject item = new JObject();
                    children.Add(item);

                    item["Name"]     = formapp.Name;
                    item["FullName"] = fullName;
                    item["rsid"]     = StoreZoneType.FormService.ToString() + "://" + fullName;

                    JArray jStates = new JArray();
                    item["States"] = jStates;
                    foreach (FormState state in formapp.FormStates)
                    {
                        JObject jState = new JObject();
                        jStates.Add(jState);

                        jState["Name"] = state.Name;
                    }

                    item["FormFile"] = formapp.Form;
                }

                return(rv);
            }
        }
示例#6
0
        public virtual FormApplication GetFormServiceDefine(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    path    = request.GetString("path");

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                return(FormApplication.Open(cn, path));
            }
        }
示例#7
0
        private void btnAppEdit_Click(object sender, System.EventArgs e)
        {
            Dictionary <int, FormApplication> updatedList = new Dictionary <int, FormApplication>();

            foreach (DataGridViewRow row in dataGridViewApp.Rows)
            {
                if (row.Cells[0].Value != null &&
                    (bool)row.Cells[0].Value)
                {
                    // show the form user
                    int             appId   = (int)row.Cells[1].Value;
                    string          appName = (string)row.Cells[2].Value;
                    FormApplication formApp = new FormApplication(appName);
                    formApp.Text = "Edit Application";
                    formApp.BrowseButtonEnabled = false;

                    formApp.DisplayName    = appName;
                    formApp.ExecutablePath = (string)row.Cells[3].Value;
                    formApp.Arguments      = (string)row.Cells[4].Value;

                    string[] area   = ((string)row.Cells[5].Value).Split(',');
                    int      left   = int.Parse(area[0]);
                    int      top    = int.Parse(area[1]);
                    int      right  = int.Parse(area[2]);
                    int      bottom = int.Parse(area[3]);

                    formApp.PositionLeft = left;
                    formApp.PositionTop  = top;
                    formApp.Width        = right - left;
                    formApp.Height       = bottom - top;

                    if (formApp.ShowDialog(this) == System.Windows.Forms.DialogResult.OK &&
                        formApp.IsDirty)
                    {
                        // add to database
                        updatedList.Add(appId, formApp);
                    }
                }
            }

            foreach (KeyValuePair <int, FormApplication> data in updatedList)
            {
                // add to database
                applicationPresenter.EditApplication(
                    data.Key,
                    data.Value.DisplayName,
                    data.Value.ExecutablePath,
                    data.Value.Arguments,
                    data.Value.PositionLeft,
                    data.Value.PositionTop,
                    data.Value.PositionLeft + data.Value.Width,
                    data.Value.PositionTop + data.Value.Height);
            }
        }
示例#8
0
文件: Form.cs 项目: radtek/EMIP
        public virtual JObject GetFormStateInfo(HttpContext context)
        {
            YZRequest request   = new YZRequest(context);
            string    app       = request.GetString("app");
            string    key       = request.GetString("key", null);
            string    formstate = request.GetString("formstate", null);

            FormApplication formApplication;
            FormState       formState;
            FlowDataSet     formdataset;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                formApplication = FormApplication.Open(cn, app);
                formState       = FormService.GetFormStateBasicInfo(cn, app, formstate);
                formdataset     = FormService.GetFormApplicationData(cn, app, formstate, key);
            }

            //准备返回值
            JObject result = new JObject();

            JObject jForm = new JObject();

            jForm["xclass"] = "YZSoft.form.aspx.Form";
            jForm["config"] = JObject.FromObject(new
            {
                aspxform = formApplication.Form
            });
            result["form"] = jForm;

            result[YZJsonProperty.success] = true;
            result["app"]             = app;
            result["key"]             = key;
            result["formstate"]       = formstate;
            result["appShortName"]    = formApplication.Name;
            result["showSaveButton"]  = formState.ShowSaveButton;
            result["validationGroup"] = formState.ValidationGroup;
            result["formdataset"]     = this.ToResult(formdataset, true);

            return(result);
        }
示例#9
0
        public virtual void SaveFormService(HttpContext context)
        {
            YZRequest       request = new YZRequest(context);
            JObject         post    = request.GetPostData <JObject>();
            FormApplication app     = post["data"].ToObject <FormApplication>();
            ACL             acl     = post["acl"].ToObject <ACL>();
            string          mode    = request.GetString("mode");
            string          path;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                if (mode == "edit")
                {
                    path = request.GetString("path");
                    string name = request.GetString("name");
                    if (name != app.Name)
                    {
                        path = cn.RenameObject(StoreZoneType.FormService, path, app.Name);
                    }

                    app.Save(cn, path, true);
                }
                else
                {
                    string folder = request.GetString("folder", "");
                    if (String.IsNullOrEmpty(folder))
                    {
                        path = app.Name;
                    }
                    else
                    {
                        path = folder + "/" + app.Name;
                    }

                    app.Save(cn, path, false);
                }

                SecurityManager.SaveACL(cn, SecurityResType.FormApplication, path, null, acl);
            }
        }
示例#10
0
        private void btnAppAdd_Click(object sender, System.EventArgs e)
        {
            FormApplication fromApp = new FormApplication(String.Empty);

            fromApp.BrowseButtonEnabled = false;
            fromApp.Text = "Add Application";

            if (fromApp.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
            {
                // add to database
                applicationPresenter.AddApplication(
                    fromApp.DisplayName,
                    fromApp.ExecutablePath,
                    fromApp.Arguments,
                    fromApp.PositionLeft,
                    fromApp.PositionTop,
                    fromApp.PositionLeft + fromApp.Width,
                    fromApp.PositionTop + fromApp.Height);
            }
        }
示例#11
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!YZAuthHelper.IsAuthenticated)
        {
            FormsAuthentication.RedirectToLoginPage();
        }

        string          appName         = this.Request.QueryString["app"];
        FormApplication formApplication = null;

        using (BPMConnection cn = new BPMConnection())
        {
            cn.WebOpen();
            formApplication = FormApplication.Load(cn, appName);
        }

        string       formFile   = formApplication.Form;
        YZUrlBuilder urlBuilder = YZUtility.GetFormRedirectUrl(this.Page, formFile);

        urlBuilder.QueryString["md"] = "App";
        this.Response.Redirect(urlBuilder.ToString(), true);
    }
示例#12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="AppMenu">Main Form application,
        /// it contrain the menu of application
        /// it is Mdi Form
        /// </param>
        /// <param name="user">Connected user,
        /// it can be null if the user is not yet connected
        /// </param>
        /// <param name="TypeDbContext">
        /// Type of EntityFramework DbContext
        /// id used to create instance of GwinApp EntityBAO object
        /// </param>
        public static void Start(Type TypeDbContext, Type TypeBaseBLO, FormApplication AppMenu, User user)
        {
            // User must not be null
            CheckPramIsNull.CheckParam_is_NotNull(user, nameof(GwinApp), nameof(user));

            // Lunch Loading Interface
            GwinApp.Loading_Start();
            GwinApp.Loading_Status("Start Gwin Applicaton ...");

            // Create GwinInstance to Authenticate
            GwinApp.Instance = new GwinApp(TypeDbContext, TypeBaseBLO, AppMenu, user);

            //Layer configuration : Initialize the dependency resolver
            DependencyResolver.Initialize();



            //
            // Update Menu
            //
            // Change User Culture and Tread to do Update with User Language
            GwinApp.instance.CultureInfo          = new CultureInfo(user.Language.ToString());
            Thread.CurrentThread.CurrentCulture   = GwinApp.instance.CultureInfo;
            Thread.CurrentThread.CurrentUICulture = GwinApp.instance.CultureInfo;
            // Update GwinApplicatio, after  ModelConfiguration changes
            //[Update]
            // Must be befor Language Change, because SetLanguge Use MenuTable
            InstallApplicationGwinBLO installApplication = new InstallApplicationGwinBLO(TypeDbContext);

            installApplication.Update();



            // Change Gwin Language
            if (AppMenu != null && user != null)
            {
                GwinApp.SetLanguage(GwinApp.Instance.CultureInfo);
            }



            // Load ApplicationName Instance
            IGwinBaseBLO  ApplicationNameBLO = new GwinBaseBLO <ApplicationName>((DbContext)Activator.CreateInstance(instance.TypeDBContext));
            List <object> ls_apps            = ApplicationNameBLO.GetAll();

            if (ls_apps != null && ls_apps.Count > 0)
            {
                GwinApp.instance.ApplicationName = (ApplicationName)ls_apps.First();
            }
            else
            {
                ApplicationName applicationName = new ApplicationName();
                applicationName.Name             = new Entities.MultiLanguage.LocalizedString();
                applicationName.Name.Current     = "Gwin Application";
                GwinApp.instance.ApplicationName = applicationName;
            }

            // Set Name Applicatoin in ApplicationMenu
            if (AppMenu != null)
            {
                AppMenu.Text = instance.ApplicationName.Name.Current;
            }

            // Close Loading Interface
            GwinApp.Loading_Close();

            // Authentification
            Login();
        }