示例#1
0
        /// <summary>
        /// Actions
        /// </summary>
        /// <param name="HandleGUID"></param>
        /// <returns></returns>
        public static List<SmartFormViewActions> ArtefactActionss(String FormName, Guid EventGUID, Guid HandleGUID)
        {
            List<SmartFormViewActions> list = new List<SmartFormViewActions>();
            FormsManager frm = new FormsManager("dlx", 5555);

            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));
            var ev = form.Events[EventGUID].Handlers[HandleGUID];
            SourceCode.Forms.Authoring.Eventing.Handler e = form.Events[EventGUID].Handlers[HandleGUID];

            foreach (SourceCode.Forms.Authoring.Eventing.Action action in e.Actions)
            {
                list.Add(new SmartFormViewActions
                {
                    GUID = action.Guid,
                  //  properties = action.Properties,
                 //   parameters = action.Parameters,
                 //   results = action.Results,
                 //   validation = action.Validation,
                    viewguid = action.ViewGuid,
                    method = action.Method,
                    formguid = action.FormGuid,
                    executiontype = action.ExecutionType.ToString(),
                    controlguid = action.ControlGuid,
                    actiontype = action.ActionType.ToString()
                });
            }
            return list;
        }
示例#2
0
        /// <summary>
        /// Actions
        /// </summary>
        /// <param name="HandleGUID"></param>
        /// <returns></returns>
        public static List<SmartFormViewActions> ArtefactActionss(String ViewName, Guid EventGUID, Guid HandleGUID)
        {
            List<SmartFormViewActions> list = new List<SmartFormViewActions>();
            FormsManager frm = new FormsManager("dlx", 5555);

            SourceCode.Forms.Authoring.View view = new SourceCode.Forms.Authoring.View(frm.GetViewDefinition(ViewName));
            var ev = view.Events[EventGUID].Handlers[HandleGUID];
            SourceCode.Forms.Authoring.Eventing.Handler e = view.Events[EventGUID].Handlers[HandleGUID];

            foreach (SourceCode.Forms.Authoring.Eventing.Action action in e.Actions)
            {
                list.Add(new SmartFormViewActions
                {
                    GUID = action.Guid,

                    viewguid = action.ViewGuid,
                    method = action.Method,
                    formguid = action.FormGuid,
                    executiontype = action.ExecutionType.ToString(),
                    controlguid = action.ControlGuid,
                    actiontype = action.ActionType.ToString()
                });
            }
            return list;
        }
示例#3
0
    // Use this for initialization
    void Awake()
    {
        gm = GameObject.FindGameObjectWithTag("GameMaster").GetComponent<GameMaster>();
        fm = GameObject.FindGameObjectWithTag("GameMaster").GetComponent<FormsManager>();

        animator = GetComponent<Animator>();
        particles = gameObject.transform.FindChild("particles").GetComponent<ParticleSystem>();

        myTransform = transform;
        requestedPos = myTransform.position;
    }
示例#4
0
    // Use this for initialization
    void Start()
    {
        GetComponent<MeshRenderer>().enabled = false;

        formMan = GameObject.FindGameObjectWithTag("GameMaster").GetComponent<FormsManager>();

        dialogs = GetComponents<Dialog>();

        Array.Sort(dialogs);

        dialogBtn.onClick.AddListener(() => dialogBtnClicked());
    }
        private List<Control> BuildControls(string placeholderId, IEnumerable<ControlData> loadedControls, FormsManager manager)
        {
            List<ControlData> relevantControls = new List<ControlData>();
            List<ControlData> notRelevantControls = new List<ControlData>();

            foreach (var controlData in loadedControls)
            {
                if (controlData.PlaceHolder == placeholderId)
                    relevantControls.Add(controlData);
                else
                    notRelevantControls.Add(controlData);
            }

            var children = new List<Control>();

            var siblingId = Guid.Empty;
            while (relevantControls.Count > 0)
            {
                var currentControl = relevantControls.FirstOrDefault(c => c.SiblingId == siblingId);
                if (currentControl == null)
                    break;

                relevantControls.Remove(currentControl);
                siblingId = currentControl.Id;

                var controlInstance = manager.LoadControl(currentControl);
                if (currentControl.IsLayoutControl)
                {
                    var layoutControl = (LayoutControl)controlInstance;
                    foreach (var childPlaceholder in layoutControl.Placeholders)
                    {
                        var childControls = this.BuildControls(childPlaceholder.ID, notRelevantControls, manager);

                        foreach (var childControl in childControls)
                        {
                            childPlaceholder.Controls.Add(childControl);
                        }
                    }

                    children.Add(layoutControl);
                }
                else
                {
                    var literal = this.GetFieldMarkup(controlInstance, currentControl.Id);
                    children.Add(new LiteralControl(literal));
                }
            }

            return children;
        }
示例#6
0
        /// <summary>
        /// Conditions
        /// </summary>
        /// <param name="FormName"></param>
        /// <param name="EventGUID"></param>
        /// <param name="HandleGUID"></param>
        /// <returns></returns>
        public static List<SmartFormViewConditions> ArtefactConditions(String FormName,Guid EventGUID,Guid HandleGUID)
        {
            List<SmartFormViewConditions> list = new List<SmartFormViewConditions>();
            FormsManager frm = new FormsManager("dlx", 5555);
             SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));
             var ev = form.Events[EventGUID].Handlers[HandleGUID];
             SourceCode.Forms.Authoring.Eventing.Handler e = form.Events[EventGUID].Handlers[HandleGUID];

            foreach (SourceCode.Forms.Authoring.Eventing.Condition condition in e.Conditions)
            {

                list.Add(new SmartFormViewConditions
                {
                    GUID = condition.Guid,

                });

            }

            return list;
        }
示例#7
0
        /// <summary>
        /// Gets all the views on the environment
        /// </summary>
        /// <returns></returns>
        public static List<SmartFormView> GetAllViews()
        {
            List<SmartFormView> list = new List<SmartFormView>();
            FormsManager frm = new FormsManager("dlx", 5555);
            ViewExplorer formexplorer = frm.GetViews();
            foreach (SourceCode.Forms.Management.ViewInfo viewinfo in formexplorer.Views)
            {

                SourceCode.Forms.Authoring.View view = new SourceCode.Forms.Authoring.View(frm.GetViewDefinition(viewinfo.Name));

                list.Add(new SmartFormView
                {
                    name = viewinfo.Name,
                    displayname = viewinfo.DisplayName,
                    description = viewinfo.Description,
                    guid = viewinfo.Guid,
                    version = viewinfo.Version,

                });

            }
            return list;
        }
示例#8
0
 private static void combine_Click(object sender, EventArgs e)
 {
     FormsManager.GetInstance <TPEMain>().CaptureToLib();
 }
示例#9
0
        /// <summary>
        /// Form Controls
        /// </summary>
        /// <param name="FormName"></param>
        /// <returns></returns>
        public static List<SmartFormViewControls> ViewControls(string ViewName)
        {
            List<SmartFormViewControls> list = new List<SmartFormViewControls>();
            FormsManager frm = new FormsManager("dlx", 5555);
            SourceCode.Forms.Authoring.View view = new SourceCode.Forms.Authoring.View(frm.GetViewDefinition(ViewName));

            foreach (SourceCode.Forms.Authoring.Control control in view.Controls)
            {
                list.Add(new SmartFormViewControls
                {
                    name = control.Name,
                    type = control.Type,
                    guid = control.Guid,

                });

            }
            return list;
        }
示例#10
0
 // Use this for initialization
 void Start()
 {
     spawnpoint = transform.FindChild("spawnpoint");
     player = GameObject.Find("PhysicalForm").transform;
     fm = GameObject.FindObjectOfType<FormsManager>();
 }
示例#11
0
 void SetWindowMenuButtonStates()
 {
     colourMapFormToolStripMenuItem.Checked   = FormsManager.IsColourMapFormOpen();
     mappingListFormToolStripMenuItem.Checked = FormsManager.IsMappingListFormOpen();
 }
示例#12
0
        /// <summary>
        /// List of form properties 
        /// </summary>
        /// <param name="FormName"></param>
        /// <returns></returns>
        public static List<SmartFormViewProperties> GetViewProperties(string ViewName)
        {
            List<SmartFormView> list = new List<SmartFormView>();
            FormsManager frm = new FormsManager("dlx", 5555);

            SourceCode.Forms.Authoring.View view = new SourceCode.Forms.Authoring.View(frm.GetViewDefinition(ViewName));
            Properties prop = new Properties();
            return prop.ArtefactProperties(view.Properties);
        }
示例#13
0
 private static void closeButton_Click(object sender, EventArgs e)
 {
     FormsManager.Hide(typeof(TPEMain));
 }
示例#14
0
 void Start()
 {
     cOrbit = GetComponent<CameraOrbit>();
     GoTo("PhysicalForm");
     fm = GameObject.FindObjectOfType<FormsManager>();
 }
        static void Main(string[] args)
        {
            using (SourceCode.Forms.Management.FormsManager manager = new FormsManager("localhost", 5555))
            {
                ControlTypeExplorer explorer = manager.GetControlTypes();
                
                //REMOVE ALL CONTROL TYPES THAT ARE NOT IN THE SOURCECODE NAMESPACE! 
                //foreach (ControlTypeInfo ctype in explorer.ControlTypes)
                //{

                //    if (!ctype.FullName.StartsWith("SourceCode"))
                //    {
                //        try
                //        {
                //            manager.DeleteControlType(ctype.Name);
                //            Console.WriteLine("Removed {0}", ctype.FullName);
                //        }
                //        catch (Exception ex)
                //        {
                //            Console.WriteLine("{0} not removed. In use? Exception: {1}", ctype.FullName, ex.Message);
                //        }
                //    }
                //}
                //return;

                Assembly controlAssembly = Assembly.Load("K2Field.Smartforms.Controls");
                Type[] types = controlAssembly.GetTypes();
                foreach (Type type in types)
                {
                    RegisterControlType[] custAttr = type.GetCustomAttributes(typeof(RegisterControlType), true) as RegisterControlType[];
                    if (custAttr.Length == 1)
                    {
                        RegisterControlType regContType = custAttr[0];
                        Console.WriteLine("Discovered {0}", type.FullName);
                        /*
                         * 
                        object controlObj = t.Assembly.CreateInstance(t.FullName);
                       
                        PropertyInfo propInfo = t.GetProperty("Name");
                        string controlName = propInfo.GetValue(controlObj, null) as string;
                        propInfo = t.GetProperty("FriendlyName");
                        string friendlyName = propInfo.GetValue(controlObj, null) as string;
                        if (string.IsNullOrEmpty(controlName) || string.IsNullOrEmpty(friendlyName))
                        {
                            Console.WriteLine("ERROR: Not installing. Name or FriendlyName not set!");
                            continue;
                        }*/

                        

                        bool updateControl = true;
                        ControlTypeInfo controlType = explorer.ControlTypes.SingleOrDefault(s => s.Name == type.Name);
                        if (controlType == null)
                        {
                            updateControl = false;
                            controlType = new ControlTypeInfo();
                        }

                        //Set the control type information
                        controlType.Name = type.Name;
                        controlType.FullName = type.FullName + ", " + controlAssembly.FullName;
                        controlType.DisplayName = regContType.DisplayName;
                        controlType.Category = regContType.Category;
                        controlType.Group = regContType.Group;
                        controlType.Properties = regContType.GetPropertyXML();

                        // Specify runtime functions and validation
                        if (!string.IsNullOrEmpty(regContType.GetValueMethod))
                            controlType.GetValueMethod = regContType.GetValueMethod;

                        if (!string.IsNullOrEmpty(regContType.SetValueMethod))
                            controlType.SetValueMethod = regContType.SetValueMethod;

                        if (!string.IsNullOrEmpty(regContType.SetPropertyMethod) )
                            controlType.SetPropertyMethod = regContType.SetPropertyMethod;

                        if (!string.IsNullOrEmpty(regContType.GetPropertyMethod))
                            controlType.GetPropertyMethod = regContType.GetPropertyMethod;

                        if (!string.IsNullOrEmpty(regContType.GetDefaultValueMethod))
                            controlType.GetDefaultValueMethod = regContType.GetDefaultValueMethod;

                        if (!string.IsNullOrEmpty(regContType.ValidationMethod))
                            controlType.ValidationMethod = regContType.ValidationMethod;

                        if (!string.IsNullOrEmpty(regContType.SetItemsMethod))
                            controlType.SetItemsMethod = regContType.SetItemsMethod;


                        // DataTypes
                        controlType.DataTypes.Clear();
                        RegisterDataType[] dataTypes = type.GetCustomAttributes(typeof(RegisterDataType), true) as RegisterDataType[];
                        foreach (RegisterDataType dataType in dataTypes)
                        {
                            Console.WriteLine("\tAdding datatype: {0}", dataType.DataType.ToString());
                            controlType.DataTypes.Add(dataType.DataType);
                        }

                        //Events
                        controlType.Events.Clear();
                        bool defaultEventSet = false;
                        RegisterEvent[] events = type.GetCustomAttributes(typeof(RegisterEvent), true) as RegisterEvent[];
                        foreach (RegisterEvent evt in events)
                        {
                            Console.WriteLine("\tAdding event: {0}", evt.EventName);
                            controlType.Events.Add(evt.EventName);
                            if (evt.IsDefaultEvent && !defaultEventSet)
                            {
                                controlType.DefaultEvent = evt.EventName;
                                defaultEventSet = true;
                            }
                        }
                        if (!defaultEventSet && controlType.Events.Count > 0)
                        {
                            controlType.DefaultEvent = controlType.Events[0];
                        }


            
                        if (updateControl)
                        {
                            Console.WriteLine("Updating....");
                            manager.SaveControlType(controlType);
                        }
                        else
                        {
                            Console.WriteLine("Installing....");
                            manager.CreateControlType(controlType);
                        }
                        Console.WriteLine();

                    }
                }
            }
        }
示例#16
0
    // Use this for initialization
    void Start()
    {
        camFocuser = Resources.Load("FocusCamera") as GameObject;
        playerForms = GameObject.FindGameObjectsWithTag("Player");
        gamemaster = GameObject.FindGameObjectWithTag("GameMaster").GetComponent<GameMaster>();
        formManager = gamemaster.GetComponent<FormsManager>();

        if(complete)
        {
            physical = digital = complete;
        }

        light.color = (doorUnlocked ? enabledColor : disabledColor);

        if (door.GetComponent<Trap>() == null)
        {
            door.gameObject.SetActive(!doorUnlocked);
        }
        btn.GetComponent<DoorSwitchBtn>().setDoorSwitch(this);
    }
示例#17
0
        private bool DescriptionExists(Guid id)
        {
            var formManager = FormsManager.GetManager();

            return(formManager.GetForms().Any(f => f.Id == id));
        }
示例#18
0
 public AbstractForm(GUIForm guiForm, FormsManager formsManager) : base(guiForm)
 {
     FormsManager = formsManager;
 }
示例#19
0
 private void selectFromListsMenuItemClick(object sender, EventArgs e)
 {
     FormsManager.ShowEditMappingForm(new KeyMapping(), false);
 }
示例#20
0
 private void showColourMapFormMenuItemClick(object sender, EventArgs e)
 {
     FormsManager.ToggleColourMapForm();
     SetWindowMenuButtonStates();
 }
示例#21
0
 private void viewListMenuItemClick(object sender, EventArgs e)
 {
     FormsManager.ToggleMappingListForm();
     SetWindowMenuButtonStates();
 }
示例#22
0
    // Use this for initialization
    void Start()
    {
        formManager = GetComponent<FormsManager>();

        gameUI = GameObject.FindGameObjectWithTag("gameUI").transform;
        txtCurTurn = gameUI.FindChild("txtTurn").GetComponent<Text>();
        btnEndTurn = gameUI.FindChild("btnEndTurn").GetComponent<Button>();
        btnEndTurn.onClick.AddListener(() => endTurnBtnClicked());

        ui = GameObject.FindObjectOfType<UIMaster>();

        //grab all enemies from map
        enemiesOnMap = GameObject.FindObjectsOfType<Enemy>();

        camFocus = Object.FindObjectOfType<CameraFocuser>();

        //check for checkpoints
        CheckPointManager.init();
        if (CheckPointManager.GetLevel() == Application.loadedLevel)
        {
            Debug.Log("Using checkpoint");
            CheckPointManager.init();
            GameObject.FindGameObjectWithTag("Player").transform.position = CheckPointManager.GetPosition();
            Debug.Log("Send player to checkpoint at " + CheckPointManager.GetPosition().ToString());
            camFocus.GoTo("PhysicalForm");

        }
    }
示例#23
0
        public static MvcHtmlString FormController(this HtmlHelper htmlHelper, Guid id, FormViewMode viewMode, object routeValues)
        {
            var manager     = FormsManager.GetManager();
            var controlData = manager.GetControl <FormControl>(id);
            var control     = manager.LoadControl(controlData);

            control.Page = HttpContext.Current.Handler as Page;

            var mvcProxy = control as MvcProxyBase;

            if (mvcProxy == null)
            {
                throw new InvalidOperationException("Cannot render form controller with the given ID becaouse the control with this ID is not an MVC proxy.");
            }

            var actionInvoker = ObjectFactory.Resolve <IControllerActionInvoker>() as Telerik.Sitefinity.Mvc.ControllerActionInvoker;

            if (actionInvoker != null)
            {
                actionInvoker.DeserializeControllerProperties(mvcProxy);
            }

            var routeData = new RouteData();

            if (routeValues != null)
            {
                var routeDictionary = new RouteValueDictionary(routeValues);
                foreach (var kv in routeDictionary)
                {
                    routeData.Values.Add(kv.Key, kv.Value);
                }
            }

            var controller = mvcProxy.GetController();

            if (mvcProxy.IsIndexingMode() && controller.GetIndexRenderMode() == IndexRenderModes.NoOutput)
            {
                return(MvcHtmlString.Empty);
            }

            var controllerFactory = (ISitefinityControllerFactory)ControllerBuilder.Current.GetControllerFactory();
            var controllerType    = controller.GetType();
            var explicitMode      = ControllerHelpers.ExplicitMode(controllerType);

            if ((explicitMode == FormControlDisplayMode.Read && viewMode != FormViewMode.Read) || (explicitMode == FormControlDisplayMode.Write && viewMode != FormViewMode.Write))
            {
                return(MvcHtmlString.Empty);
            }

            routeData.Values["controller"] = controllerFactory.GetControllerName(controllerType);

            string action = typeof(IFormElementController <IFormElementModel>).IsAssignableFrom(controllerType) ? action = viewMode.ToString() : action = "Index";

            routeData.Values["action"] = action;

            using (var writer = new StringWriter())
            {
                var context = new HttpContextWrapper(new HttpContext(HttpContext.Current.Request, new HttpResponse(writer)));
                ControllerHelpers.PopulateHttpContext(context);

                controller.ControllerContext = new ControllerContext(context, routeData, controller);
                controller.ActionInvoker.InvokeAction(controller.ControllerContext, action);

                ControllerHelpers.RestoreHttpContext(controller);

                var result = writer.ToString();
                return(MvcHtmlString.Create(result));
            }
        }
        public string GetFirstFieldName(FormsManager formManager, FormDescription form)
        {
            var textFieldControlData = form.Controls.Where(c => c.PlaceHolder == "Body" && c.IsLayoutControl == false).FirstOrDefault();
            var mvcfieldProxy = formManager.LoadControl(textFieldControlData) as MvcWidgetProxy;
            var fieldControl = mvcfieldProxy.Controller as IFormFieldControl;
            var fieldName = fieldControl.MetaField.FieldName;

            return fieldName;
        }
示例#25
0
        /// <summary>
        /// Form Events
        /// </summary>
        /// <param name="FormName"></param>
        /// <returns></returns>
        public static List<SmartFormViewEvents> FormEventsEvents(string FormName)
        {
            List<SmartFormViewEvents> list = new List<SmartFormViewEvents>();
            FormsManager frm = new FormsManager("dlx", 5555);
            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));

            foreach (SourceCode.Forms.Authoring.Eventing.Event ev in form.Events)
            {

                    list.Add(new SmartFormViewEvents
                    {
                        name = ev.Name,

                        type = ev.EventType.ToString(),
                        GUID = ev.Guid

                    });

            }

            return list;
        }
示例#26
0
    // Use this for initialization
    void Start()
    {
        active = true;
        tT = GetComponent<TextureTiler>();
        spCollider = GetComponent<SphereCollider>();
        fM = GameObject.FindObjectOfType<FormsManager>();

        StartCoroutine(ListenToSplits());
    }
示例#27
0
        /// <summary>
        /// Gets a list of the form parameters
        /// </summary>
        /// <param name="FormName"></param>
        /// <returns></returns>
        public static List<SmartFormViewParameters> FormParameters(string  FormName)
        {
            List<SmartFormViewParameters> list = new List<SmartFormViewParameters>();
               FormsManager frm = new FormsManager("dlx", 5555);
                SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));

            foreach (SourceCode.Forms.Authoring.FormParameter parameter in form.Parameters)
            {
                list.Add(new SmartFormViewParameters
                {
                    name = parameter.Name,
                    type = parameter.DataType.ToString(),
                    defaultvalue = parameter.DefaultValue
                });
            }

            return list;
        }
示例#28
0
 private void aboutKeyMapperMenuItemClick(object sender, EventArgs e)
 {
     FormsManager.ShowAboutForm();
 }
示例#29
0
 private static void snap_Click(object sender, EventArgs e)
 {
     FormsManager.GetInstance <TPEMain>().SwitchToEditor();
 }
示例#30
0
 private void selectFromCaptureMenuItemClick(object sender, EventArgs e)
 {
     FormsManager.ShowEditMappingForm(new KeyMapping(), true);
 }
示例#31
0
        /// <summary>
        /// List of form properties 
        /// </summary>
        /// <param name="FormName"></param>
        /// <returns></returns>
        public static List<SmartFormViewProperties> GetFormProperties(string  FormName)
        {
            List<SmartFormView> list = new List<SmartFormView>();
            FormsManager frm = new FormsManager("dlx", 5555);

                SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));
            Properties prop = new Properties();
            return  prop.ArtefactProperties( form.Properties);
        }
示例#32
0
 private void Magnify_Closing(object sender, CancelEventArgs e)
 {
     e.Cancel = true;
     FormsManager.Hide(typeof(Magnify));
     FormsManager.Hide(typeof(TPEMain));
 }
示例#33
0
        /// <summary>
        /// Actions Results
        /// </summary>
        /// <param name="FormName"></param>
        /// <param name="EventGUID"></param>
        /// <param name="HandleGUID"></param>
        /// <param name="ActionGUID"></param>
        /// <returns></returns>
        public static List<SmartFormViewActionParameters> SmartFormViewActionResults(String FormName, Guid EventGUID, Guid HandleGUID, Guid ActionGUID)
        {
            List<SmartFormViewActionParameters> list = new List<SmartFormViewActionParameters>();
            FormsManager frm = new FormsManager("dlx", 5555);

            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));
            SourceCode.Forms.Authoring.Eventing.Action e = form.Events[EventGUID].Handlers[HandleGUID].Actions[ActionGUID];

            foreach (SourceCode.Forms.Authoring.Eventing.Mapping map in e.Results)
            {

                list.Add(new SmartFormViewActionParameters
                {

               //     validation = map.Validation,
                    targettype = map.TargetType.ToString(),
                    targetpath = map.TargetPath,
                    targetid = map.TargetID,
                    sourcevalue = map.SourceValue,
                    sourcetype = map.SourceType.ToString(),
                    sourcepath = map.SourcePath,
                    sourceid = map.SourceID

                });
            }

            return list;
        }
示例#34
0
 void Start()
 {
     fm = GameObject.FindObjectOfType<FormsManager>();
     GetComponent<MeshRenderer>().enabled = false;
 }
示例#35
0
        new private void SaveFormEntry(FormDescription description)
        {
            FormsManager manager         = FormsManager.GetManager();
            FormEntry    userHostAddress = null;

            if (_isProgressiveForm && _priorFormEntry == null)
            {
                FieldControl keyField = this.FieldControls.Where(fc => ((IFormFieldControl)fc).MetaField.FieldName == _progressiveKeyFieldName).FirstOrDefault() as FieldControl;

                if (keyField != null && !String.IsNullOrWhiteSpace((string)keyField.Value))
                {
                    _priorFormEntry = GetPriorFormEntryByKeyField((string)keyField.Value);
                }
            }

            if (_isProgressiveForm && _priorFormEntry != null)
            {
                string entryType = String.Format("{0}.{1}", manager.Provider.FormsNamespace, this.FormData.Name);

                userHostAddress = manager.GetFormEntry(entryType, _priorFormEntry.Id);
            }
            else
            {
                userHostAddress = manager.CreateFormEntry(string.Format("{0}.{1}", manager.Provider.FormsNamespace, description.Name));
            }

            foreach (IFormFieldControl formFieldControl in this.FieldControls)
            {
                FieldControl fieldControl = formFieldControl as FieldControl;
                object       value        = fieldControl.Value;

                if (fieldControl.GetType().Name == "FormFileUpload")
                {
                    if (formFieldControl.MetaField.FieldName != "")
                    {
                        var uploadValue = value as UploadedFileCollection;
                        var files       = new Dictionary <string, List <FormHttpPostedFile> >();
                        List <FormHttpPostedFile> formHttpPostedFileList = new List <FormHttpPostedFile>();
                        foreach (UploadedFile uploadedFile in uploadValue)
                        {
                            if (uploadedFile != null)
                            {
                                formHttpPostedFileList.Add(new FormHttpPostedFile()
                                {
                                    FileName      = uploadedFile.FileName,
                                    InputStream   = uploadedFile.InputStream,
                                    ContentType   = uploadedFile.ContentType,
                                    ContentLength = uploadedFile.ContentLength
                                });
                            }
                        }

                        files.Add(formFieldControl.MetaField.FieldName, formHttpPostedFileList);
                        var type       = Type.GetType("Telerik.Sitefinity.Modules.Forms.Web.FormsHelper,Telerik.Sitefinity");
                        var method     = type.GetMethod("SaveFiles", BindingFlags.Static | BindingFlags.NonPublic);
                        var updateMode = _priorFormEntry != null;
                        method.Invoke(null, new object[] { files, description, userHostAddress, updateMode });
                    }
                }
                else if (!(value is List <string>))
                {
                    userHostAddress.SetValue(formFieldControl.MetaField.FieldName, value);
                }
                else
                {
                    StringArrayConverter stringArrayConverter = new StringArrayConverter();
                    object obj = stringArrayConverter.ConvertTo((value as List <string>).ToArray(), typeof(string));

                    userHostAddress.SetValue(formFieldControl.MetaField.FieldName, obj);
                }
            }
            userHostAddress.IpAddress   = this.Page.Request.UserHostAddress;
            userHostAddress.SubmittedOn = DateTime.UtcNow;

            Guid userId = ClaimsManager.GetCurrentUserId();

            userHostAddress.UserId = userId == Guid.Empty ? Guid.Parse(_sfTrackingCookie.Value) : userId;

            if (userHostAddress.UserId == userId)
            {
                userHostAddress.Owner = userId;
            }

            if (SystemManager.CurrentContext.AppSettings.Multilingual)
            {
                userHostAddress.Language = CultureInfo.CurrentUICulture.Name;
            }

            FormDescription formData = this.FormData;

            formData.FormEntriesSeed     = formData.FormEntriesSeed + (long)1;
            userHostAddress.ReferralCode = this.FormData.FormEntriesSeed.ToString();

            manager.SaveChanges();
        }
示例#36
0
        /// <summary>
        /// Event Handlers
        /// </summary>
        /// <param name="EventGUID"></param>
        /// <returns></returns>
        public static List<SmartFromViewHandlers> FormHandlers(String FormName,Guid EventGUID)
        {
            List<SmartFromViewHandlers> list = new List<SmartFromViewHandlers>();
            FormsManager frm = new FormsManager("dlx", 5555);
            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));
            var ev = form.Events[EventGUID];

            SourceCode.Forms.Authoring.Eventing.Event e = form.Events[EventGUID];

                    foreach (SourceCode.Forms.Authoring.Eventing.Handler handle in e.Handlers)
                    {
                        list.Add(new SmartFromViewHandlers
                        {

                            Name = handle.HandlerType.ToString(),
                            GUID = handle.Guid
                        });

                    }

            return list;
        }
示例#37
0
        /// <inheritDoc/>
        public virtual SubmitStatus TrySubmitForm(FormCollection collection, HttpFileCollectionBase files, string userHostAddress)
        {
            var manager = FormsManager.GetManager();
            var form    = manager.GetForm(this.FormId);

            var formEntry     = new FormEntryDTO(form);
            var formSubmition = new FormsSubmitionHelper();

            if (!this.ValidateFormSubmissionRestrictions(formSubmition, formEntry))
            {
                return(SubmitStatus.RestrictionViolation);
            }

            if (!this.RaiseFormValidatingEvent(formEntry) || !this.IsValidForm(form, collection, files, manager))
            {
                return(SubmitStatus.InvalidEntry);
            }

            var formFields = new HashSet <string>(form.Controls.Select(this.FormFieldName).Where((f) => !string.IsNullOrEmpty(f)));

            var postedFiles = new Dictionary <string, List <FormHttpPostedFile> >();

            if (files != null)
            {
                for (int i = 0; i < files.AllKeys.Length; i++)
                {
                    if (formFields.Contains(files.AllKeys[i]))
                    {
                        postedFiles[files.AllKeys[i]] = files.GetMultiple(files.AllKeys[i]).Where(f => !f.FileName.IsNullOrEmpty()).Select(f =>
                                                                                                                                           new FormHttpPostedFile()
                        {
                            FileName      = f.FileName,
                            ContentLength = f.ContentLength,
                            ContentType   = f.ContentType,
                            InputStream   = f.InputStream
                        }).ToList();
                    }
                }
            }

            var formData = new Dictionary <string, object>(collection.Count);

            for (int i = 0; i < collection.Count; i++)
            {
                if (formFields.Contains(collection.Keys[i]))
                {
                    formData.Add(collection.Keys[i], collection[collection.Keys[i]]);
                }
            }

            formEntry.PostedData.FormsData = formData;
            formEntry.PostedData.Files     = postedFiles;

            if (this.RaiseFormSavingEvent(formEntry))
            {
                formSubmition.Save(formEntry);
                this.RaiseFormSavedEvent(formEntry);

                return(SubmitStatus.Success);
            }
            else
            {
                return(SubmitStatus.RestrictionViolation);
            }
        }
示例#38
0
        /// <summary>
        /// Gets forms for a process
        /// </summary>
        /// <param name="WorkflowName"></param>
        /// <returns></returns>
        public static List<SmartFormView> GetAllFormsbyWorkFlow(string WorkflowName)
        {
            List<SmartFormView> list = new List<SmartFormView>();
            FormsManager frm = new FormsManager("dlx", 5555);

            FormExplorer formexplorer = frm.GetFormsForProcess(WorkflowName);
            foreach (SourceCode.Forms.Management.FormInfo forminfo in formexplorer.Forms)
            {

                list.Add(new SmartFormView
                {
                    name = forminfo.Name,
                    displayname = forminfo.DisplayName,
                    description = forminfo.Description,
                    guid = forminfo.Guid,
                    version = forminfo.Version

                });

            }
            return list;
        }
示例#39
0
        /// <summary>
        /// Determines whether a form is valid or not.
        /// </summary>
        /// <param name="form">The form.</param>
        /// <param name="collection">The collection.</param>
        /// <param name="manager">The manager.</param>
        /// <returns>true if form is valid, false otherwise.</returns>
        protected virtual bool IsValidForm(FormDescription form, FormCollection collection, HttpFileCollectionBase files, FormsManager manager)
        {
            this.SanitizeFormCollection(collection);
            var behaviorResolver = ObjectFactory.Resolve <IControlBehaviorResolver>();

            foreach (var control in form.Controls)
            {
                if (control.IsLayoutControl)
                {
                    continue;
                }

                Type controlType;
                if (control.ObjectType.StartsWith("~/"))
                {
                    controlType = FormsManager.GetControlType(control);
                }
                else
                {
                    controlType = TypeResolutionService.ResolveType(behaviorResolver.GetBehaviorObjectType(control), true);
                }

                if (!controlType.ImplementsGenericInterface(typeof(IFormElementController <>)))
                {
                    continue;
                }

                var controlInstance       = manager.LoadControl(control);
                var controlBehaviorObject = behaviorResolver.GetBehaviorObject(controlInstance);
                var formField             = controlBehaviorObject as IFormFieldController <IFormFieldModel>;

                if (formField != null)
                {
                    if (!this.RaiseFormFieldValidatingEvent(formField))
                    {
                        return(false);
                    }

                    IList <HttpPostedFileBase> multipleFiles = files != null?files.GetMultiple(formField.MetaField.FieldName) : null;

                    object fieldValue;

                    if (multipleFiles != null && multipleFiles.Count() > 0)
                    {
                        fieldValue = multipleFiles;
                    }
                    else if (collection.Keys.Contains(formField.MetaField.FieldName))
                    {
                        collection[formField.MetaField.FieldName] = collection[formField.MetaField.FieldName] ?? string.Empty;
                        fieldValue = collection[formField.MetaField.FieldName];
                    }
                    else
                    {
                        fieldValue = null;
                    }

                    if (!formField.Model.IsValid(fieldValue))
                    {
                        return(false);
                    }
                }
                else
                {
                    var formElement = (IFormElementController <IFormElementModel>)controlBehaviorObject;
                    if (!formElement.IsValid())
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
示例#40
0
        public static List<SmartFormViewProperties> GetControlProperties(string FormName,Guid ControlGUID)
        {
            List<SmartFormView> list = new List<SmartFormView>();
            FormsManager frm = new FormsManager("dlx", 5555);

            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));

            SourceCode.Forms.Authoring.Control control = form.Controls[ControlGUID];

            Properties prop = new Properties();
            return prop.ArtefactProperties(control.Properties);
        }
示例#41
0
 private void CloseAllEditorForms(object sender, EventArgs e)
 {
     FormsManager.CloseAllEditorForms();
 }
示例#42
0
        /// <summary>
        /// Gets the details of the form
        /// </summary>
        /// <param name="FormName"></param>
        public static SmartFormView LoadForm(string formname)
        {
            FormsManager frm = new FormsManager("dlx", 5555);
            FormInfo forminfo = frm.GetForm(formname);

            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetViewDefinition(formname));

            SmartFormView sf = new SmartFormView();
            sf.guid = form.Guid;
            sf.description = form.Description;

            sf.displayname = form.DisplayName;
            sf.name = form.Name;
            sf.guid = form.Guid;
            sf.theme = form.Theme;

            return sf;
        }
示例#43
0
        private void RenderFormFields()
        {
            Control control;

            if (this.FormData != null)
            {
                FormsManager manager = FormsManager.GetManager();
                List <IControlsContainer> controlsContainers = new List <IControlsContainer>()
                {
                    this.FormData
                };
                List <ControlData> controlDatas = new List <ControlData>();

                typeof(PageHelper)
                .GetMethod("ProcessControls", BindingFlags.Static | BindingFlags.NonPublic, null, CallingConventions.Any, new Type[] { typeof(IList <ControlData>), typeof(IList <ControlData>), typeof(IList <IControlsContainer>) }, null)
                .Invoke(null, new object[] { new List <ControlData>(), controlDatas, controlsContainers });

                PlaceHoldersCollection placeHoldersCollection = new PlaceHoldersCollection();
                PlaceHolder            placeHolder            = new PlaceHolder()
                {
                    ID = "Body"
                };

                placeHoldersCollection.Add(placeHolder);

                List <ControlData> controlDatas1 = (List <ControlData>) typeof(PageHelper)
                                                   .GetMethod("SortControls", BindingFlags.Static | BindingFlags.NonPublic)
                                                   .Invoke(null, new object[] { controlsContainers.AsEnumerable <IControlsContainer>().Reverse <IControlsContainer>(), controlsContainers.Count });


                if (_isProgressiveForm)
                {
                    ControlData progressiveKeyFieldControlData = controlDatas1.Where(c => ((FormControl)c).Properties.Any(p => p.Name == "IsProgressiveKeyField" && p.Value == "True")).FirstOrDefault();

                    if (progressiveKeyFieldControlData != null)
                    {
                        FieldControl progressiveKeyFieldControl = manager.LoadControl(progressiveKeyFieldControlData, CultureInfo.CurrentUICulture) as FieldControl;

                        _progressiveKeyFieldName = Helpers.GetFieldName(progressiveKeyFieldControl);
                    }
                }

                foreach (ControlData controlDatum in controlDatas1)
                {
                    Control control1 = manager.LoadControl(controlDatum, CultureInfo.CurrentUICulture);

                    if (placeHoldersCollection.TryGetValue(controlDatum.PlaceHolder, out control))
                    {
                        if (control1 is FormSubmitButton)
                        {
                            this.ConfigureSubmitButton(control1, this.ValidationGroup);
                        }

                        bool showProgressiveField = ShowProgressiveField(control1);

                        if (control1 is FormSubmitButton || (_isProgressiveForm ? showProgressiveField : true))
                        {
                            control.Controls.Add(control1);
                        }

                        IFormFieldControl formFieldControl = control1 as IFormFieldControl;

                        if (formFieldControl != null & (control1 is FormSubmitButton || (_isProgressiveForm ? showProgressiveField : true)))
                        {
                            FieldControl fieldName = formFieldControl as FieldControl;

                            if (fieldName != null)
                            {
                                if (formFieldControl.MetaField != null && !string.IsNullOrEmpty(formFieldControl.MetaField.FieldName))
                                {
                                    fieldName.DataFieldName = formFieldControl.MetaField.FieldName;
                                }

                                fieldName.ValidationGroup = this.ValidationGroup;
                                fieldName.ValidatorDefinition.MessageCssClass = "sfError";
                                fieldName.ControlCssClassOnError = "sfErrorWrp";
                            }

                            this.FieldControls.Add(formFieldControl);
                        }
                    }

                    if (!(control1 is LayoutControl))
                    {
                        continue;
                    }

                    LayoutControl layoutControl = (LayoutControl)control1;

                    layoutControl.PlaceHolder = controlDatum.PlaceHolder;
                    placeHoldersCollection.AddRange(layoutControl.Placeholders);
                }
                this.FormControls.Controls.Add(placeHolder);
            }
        }
示例#44
0
        /// <summary>
        /// Validation Messages
        /// </summary>
        /// <param name="FormName"></param>
        /// <param name="EventGUID"></param>
        /// <param name="HandleGUID"></param>
        /// <param name="ActionGUID"></param>
        /// <returns></returns>
        public static List<SmartFormViewActionValidationMessage> SmartFormViewActionValidation(String FormName, Guid EventGUID, Guid HandleGUID, Guid ActionGUID)
        {
            List<SmartFormViewActionValidationMessage> list = new List<SmartFormViewActionValidationMessage>();
            FormsManager frm = new FormsManager("dlx", 5555);

            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));
            SourceCode.Forms.Authoring.Eventing.Action e = form.Events[EventGUID].Handlers[HandleGUID].Actions[ActionGUID];

            foreach (SourceCode.Forms.Authoring.ValidationMessage val in e.Validation.Messages)
            {

                list.Add(new SmartFormViewActionValidationMessage
                {
                    message = val.Message

                });
            }

            return list;
        }
示例#45
0
        new private void SaveFormEntry(FormDescription description)
        {
            FormsManager manager         = FormsManager.GetManager();
            FormEntry    userHostAddress = null;

            if (_isProgressiveForm && _priorFormEntry == null)
            {
                FieldControl keyField = this.FieldControls.Where(fc => ((IFormFieldControl)fc).MetaField.FieldName == _progressiveKeyFieldName).FirstOrDefault() as FieldControl;

                if (keyField != null && !String.IsNullOrWhiteSpace((string)keyField.Value))
                {
                    _priorFormEntry = GetPriorFormEntryByKeyField((string)keyField.Value);
                }
            }

            if (_isProgressiveForm && _priorFormEntry != null)
            {
                string entryType = String.Format("{0}.{1}", manager.Provider.FormsNamespace, this.FormData.Name);

                userHostAddress = manager.GetFormEntry(entryType, _priorFormEntry.Id);
            }
            else
            {
                userHostAddress = manager.CreateFormEntry(string.Format("{0}.{1}", manager.Provider.FormsNamespace, description.Name));
            }

            foreach (IFormFieldControl formFieldControl in this.FieldControls)
            {
                FieldControl fieldControl = formFieldControl as FieldControl;
                object       value        = fieldControl.Value;

                if (fieldControl.GetType().Name == "FormFileUpload")
                {
                    typeof(FormsControl)
                    .GetMethod("SaveFiles", BindingFlags.Static | BindingFlags.NonPublic)
                    .Invoke(null, new object[] { value as UploadedFileCollection, manager, description, userHostAddress, formFieldControl.MetaField.FieldName });
                }
                else if (!(value is List <string>))
                {
                    userHostAddress.SetValue(formFieldControl.MetaField.FieldName, value);
                }
                else
                {
                    StringArrayConverter stringArrayConverter = new StringArrayConverter();
                    object obj = stringArrayConverter.ConvertTo((value as List <string>).ToArray(), typeof(string));

                    userHostAddress.SetValue(formFieldControl.MetaField.FieldName, obj);
                }
            }
            userHostAddress.IpAddress   = this.Page.Request.UserHostAddress;
            userHostAddress.SubmittedOn = DateTime.UtcNow;

            Guid userId = ClaimsManager.GetCurrentUserId();

            userHostAddress.UserId = userId == Guid.Empty ? Guid.Parse(_sfTrackingCookie.Value) : userId;

            if (userHostAddress.UserId == userId)
            {
                userHostAddress.Owner = userId;
            }

            if (SystemManager.CurrentContext.AppSettings.Multilingual)
            {
                userHostAddress.Language = CultureInfo.CurrentUICulture.Name;
            }

            FormDescription formData = this.FormData;

            formData.FormEntriesSeed     = formData.FormEntriesSeed + (long)1;
            userHostAddress.ReferralCode = this.FormData.FormEntriesSeed.ToString();

            manager.SaveChanges();
        }
示例#46
0
        /// <summary>
        /// Form Controls
        /// </summary>
        /// <param name="FormName"></param>
        /// <returns></returns>
        public static List<SmartFormViewControls> FormControls(string FormName)
        {
            List<SmartFormViewControls> list = new List<SmartFormViewControls>();
            FormsManager frm = new FormsManager("dlx", 5555);
            SourceCode.Forms.Authoring.Form form = new SourceCode.Forms.Authoring.Form(frm.GetFormDefinition(FormName));

            foreach (SourceCode.Forms.Authoring.Control control in form.Controls)
            {
                list.Add(new SmartFormViewControls
                {
                    name = control.Name,
                    type = control.Type,
                guid = control.Guid
                });

            }
            return list;
        }
示例#47
0
 /// <inheritDocs/>
 public void Configure(ref FieldControl backendControl, IFormFieldController <IFormFieldModel> formFieldController)
 {
     backendControl.GetType().GetProperty("FormId").SetValue(backendControl, this.FormId);
     backendControl.GetType().GetProperty("FormsProviderName").SetValue(backendControl, FormsManager.GetDefaultProviderName());
     backendControl.GetType().GetProperty("AllowMultipleAttachments").SetValue(backendControl, ((IFileFieldModel)formFieldController.Model).AllowMultipleFiles);
 }
        static void Main(string[] args)
        {

            //Get Form View Relation
            DataTable dtFormView = new DataTable();
            dtFormView.Columns.Add("FormGUID", typeof(Guid));            
            dtFormView.Columns.Add("ViewGUID", typeof(Guid));            

            SCConnectionStringBuilder sb = new SCConnectionStringBuilder();
            sb.Authenticate = true;
            sb.IsPrimaryLogin = true;
            sb.Integrated = true;
            sb.Host = "localhost";
            sb.Port = 5555;

            SmartObjectClientServer socs = new SmartObjectClientServer();
            socs.CreateConnection();
            socs.Connection.Open(sb.ToString());
            FormsManager fm = new FormsManager(sb.ToString());
            FormExplorer fe = fm.GetForms();
            foreach (FormInfo fi in fe.Forms)
            {
                Guid formGUID = fi.Guid;
                //Console.WriteLine("Form: " + fi.DisplayName);
                ViewExplorer ve = fm.GetViewsForForm(fi.Guid);                                            

                foreach (ViewInfo vi in ve.Views)
                {
                    DataRow dr = dtFormView.NewRow();
                    dr["FormGUID"] = formGUID;
                    dr["ViewGUID"] = vi.Guid;

                    dtFormView.Rows.Add(dr);
                }
            }

            //Get Form Process Relation
            DataTable dtFormProcess = new DataTable();
            dtFormProcess.Columns.Add("ProcessName", typeof(string));
            dtFormProcess.Columns.Add("FormGUID", typeof(Guid));            

            fe = fm.GetForms();
            foreach (FormInfo fi in fe.Forms)
            {
                Guid formGUID = fi.Guid;

                IEnumerable<string> processes = fm.GetProcessesForForm(fi.Guid);
                
                foreach (var process in processes)
                {
                    DataRow dr = dtFormProcess.NewRow();
                    dr["FormGUID"] = formGUID;
                    dr["ProcessName"] = process;

                    dtFormProcess.Rows.Add(dr);
                }
            }

            //Get View SMO Relation
            DataTable dtViewSMO = new DataTable();
            dtViewSMO.Columns.Add("ViewGUID", typeof(Guid));
            dtViewSMO.Columns.Add("SmartObjectGUID", typeof(Guid));   

            fe = fm.GetForms();
            foreach (FormInfo fi in fe.Forms)
            {                
                ViewExplorer ve = fm.GetViewsForForm(fi.Guid);
                
                foreach (ViewInfo vi in ve.Views)
                {
                    Guid viewGUID = vi.Guid;

                    foreach (Guid soGuid in fm.GetObjectsForView(vi.Guid))
                    {
                        DataRow dr = dtViewSMO.NewRow();
                        dr["ViewGUID"] = viewGUID;
                        dr["SmartObjectGUID"] = soGuid;

                        dtViewSMO.Rows.Add(dr);
                    }                    
                }
            }
            fm.Connection.Close();
            socs.Connection.Close();

            //Delete data from table
            string stmt = "Delete From FormViewDependency";
            ExecuteNoneQuery(stmt, CommandType.Text);

            //Insert Form View Relation to table
            for(int i = 0; i < dtFormView.Rows.Count; i++)
            {
                DataRow dr = dtFormView.Rows[i];
                stmt = @"INSERT INTO [dbo].[FormViewDependency]
                     ([FormGUID]
                    ,[ViewGUID])
                    VALUES
                    ('" + dr["FormGUID"].ToString() + @"'
                    ,'" + dr["ViewGUID"].ToString() + "')";

                ExecuteNoneQuery(stmt, CommandType.Text);
            }

            //Delete data from table
            stmt = "Delete From FormProcessDependency";
            ExecuteNoneQuery(stmt, CommandType.Text);

            //Insert Form Process Relation to table
            for (int i = 0; i < dtFormProcess.Rows.Count; i++)
            {
                DataRow dr = dtFormProcess.Rows[i];
                stmt = @"INSERT INTO [dbo].[FormProcessDependency]
                     ([FormGUID]
                    ,[ProcessName])
                    VALUES
                    ('" + dr["FormGUID"].ToString() + @"'
                    ,'" + dr["ProcessName"].ToString() + "')";

                ExecuteNoneQuery(stmt, CommandType.Text);
            }

            //Delete data from table
            stmt = "Delete From ViewSMODependency";
            ExecuteNoneQuery(stmt, CommandType.Text);

            //Insert View SMO Relation to table
            for (int i = 0; i < dtViewSMO.Rows.Count; i++)
            {
                DataRow dr = dtViewSMO.Rows[i];
                stmt = @"INSERT INTO [dbo].[ViewSMODependency]
                     ([ViewGUID]
                    ,[SmartObjectGUID])
                    VALUES
                    ('" + dr["ViewGUID"].ToString() + @"'
                    ,'" + dr["SmartObjectGUID"].ToString() + "')";

                ExecuteNoneQuery(stmt, CommandType.Text);
            }

            //SmartObjectClientServer socs = new SmartObjectClientServer();
            //socs.CreateConnection();
            //socs.Connection.Open(sb.ToString());
            //FormsManager fm = new FormsManager(sb.ToString());
            //FormExplorer fe = fm.GetForms();
            //foreach (FormInfo fi in fe.Forms)
            //{                
            //    Console.WriteLine("Form: " + fi.DisplayName);
            //    ViewExplorer ve = fm.GetViewsForForm(fi.Guid);
            //    IEnumerable<string> x = fm.GetProcessesForForm(fi.Guid);

            //    foreach (var y in x)
            //    {
            //        Console.WriteLine("Process: " + y);
            //    }

            //    foreach (ViewInfo vi in ve.Views)
            //    {
            //        Console.WriteLine("View: " + vi.DisplayName);
            //        foreach(Guid soGuid in fm.GetObjectsForView(vi.Guid))
            //        {
            //            try
            //            {
            //                SmartObject so = socs.GetSmartObject(soGuid);
            //                Console.WriteLine("SmartObject: " + so.Name);
            //            }
            //            catch (Exception ex)
            //            {
            //                Console.WriteLine(ex.Message);
            //            }
            //        }
            //        Console.WriteLine();
            //    }
            //}
            //fm.Connection.Close();
            //socs.Connection.Close();
            //Console.ReadLine();

        }
示例#49
0
        /// <inheritDoc/>
        public virtual SubmitStatus TrySubmitForm(FormCollection collection, HttpFileCollectionBase files, string userHostAddress)
        {
            var manager = FormsManager.GetManager();

            var  formIdString = collection[FormIdName];
            Guid formId;

            if (!string.IsNullOrWhiteSpace(formIdString) && Guid.TryParse(formIdString, out formId))
            {
                this.FormId = formId;
            }

            var form = manager.GetForm(this.FormId);

            var formEntry     = new FormEntryDTO(form);
            var formSubmition = new FormsSubmitionHelper();

            if (!this.ValidateFormSubmissionRestrictions(formSubmition, formEntry))
            {
                return(SubmitStatus.RestrictionViolation);
            }

            Dictionary <string, IFormFieldController <IFormFieldModel> > currentFormFields;
            List <IFormElementController <IFormElementModel> >           formElements;

            this.LoadFormControls(form, collection, files, manager, out currentFormFields, out formElements);

            Dictionary <IFormFieldController <IFormFieldModel>, bool> fieldControls;

            if (!this.RaiseFormValidatingEvent(formEntry, currentFormFields, collection, files) || !this.IsValidForm(form, collection, files, currentFormFields, formElements, out fieldControls))
            {
                return(SubmitStatus.InvalidEntry);
            }

            var formFields  = fieldControls.Select(p => new { FieldName = this.FormFieldName(p.Key), CanSave = p.Value }).Where(field => !string.IsNullOrEmpty(field.FieldName));
            var postedFiles = new Dictionary <string, List <FormHttpPostedFile> >();

            if (files != null)
            {
                for (int i = 0; i < files.AllKeys.Length; i++)
                {
                    if (formFields.FirstOrDefault(p => p.FieldName == files.AllKeys[i]) != null)
                    {
                        postedFiles[files.AllKeys[i]] = files.GetMultiple(files.AllKeys[i]).Where(f => !f.FileName.IsNullOrEmpty()).Select(f =>
                                                                                                                                           new FormHttpPostedFile()
                        {
                            FileName      = f.FileName,
                            ContentLength = f.ContentLength,
                            ContentType   = f.ContentType,
                            InputStream   = f.InputStream
                        }).ToList();
                    }
                }
            }

            var formData = new Dictionary <string, object>(collection.Count);

            for (int i = 0; i < collection.Count; i++)
            {
                var formField = formFields.FirstOrDefault(p => p.FieldName == collection.Keys[i]);
                if (formField != null)
                {
                    formData.Add(collection.Keys[i], formField.CanSave ? collection[collection.Keys[i]] : string.Empty);
                }
            }

            formEntry.PostedData.FormsData = formData;
            formEntry.PostedData.Files     = postedFiles;

            var formRules = new List <FormRule>();

            if (!string.IsNullOrWhiteSpace(form.Rules))
            {
                formRules = JsonConvert.DeserializeObject <List <FormRule> >(form.Rules);
            }

            formEntry.NotificationEmails = this.GetSendNotificationEmails(formRules, collection);

            this.UpdateCustomConfirmationMode(formRules, collection);

            this.SetConnectorSettingsToContext();

            if (this.RaiseFormSavingEvent(formEntry))
            {
                formSubmition.Save(formEntry);
                this.RaiseFormSavedEvent(formEntry);

                this.InvalidateCaptchas();

                return(SubmitStatus.Success);
            }
            else
            {
                return(SubmitStatus.RestrictionViolation);
            }
        }
示例#50
0
        private string GetTextFieldName(FormsManager formManager, FormDescription form)
        {
            var textFieldControlData = form.Controls.Where(c => c.PlaceHolder == "Body" && c.IsLayoutControl == false).FirstOrDefault();
            var mvcfieldProxy = formManager.LoadControl(textFieldControlData) as MvcWidgetProxy;
            var textField = mvcfieldProxy.Controller as TextFieldController;

            Assert.IsNotNull(textField, "The text field was not found.");

            var textFieldName = textField.MetaField.FieldName;
            return textFieldName;
        }
示例#51
0
        /// <summary>
        /// Determines whether a form is valid or not.
        /// </summary>
        /// <param name="form">The form.</param>
        /// <param name="collection">The collection.</param>
        /// <param name="manager">The manager.</param>
        /// <returns>true if form is valid, false otherwise.</returns>
        protected virtual bool IsValidForm(FormDescription form, FormCollection collection, HttpFileCollectionBase files, FormsManager manager, out Dictionary <IFormFieldController <IFormFieldModel>, bool> fieldControls)
        {
            fieldControls          = new Dictionary <IFormFieldController <IFormFieldModel>, bool>();
            this.captchaController = null;

            this.ResetInvalidInputMessage();
            this.SanitizeFormCollection(collection);
            var behaviorResolver = ObjectFactory.Resolve <IControlBehaviorResolver>();

            var skipFields   = this.SplitCsv(this.GetFormCollectionItemValue(collection, FormSkipFieldsInputName));
            var hiddenFields = this.SplitCsv(this.GetFormCollectionItemValue(collection, FormHiddenFieldsInputName));

            foreach (var control in form.Controls)
            {
                if (control.IsLayoutControl)
                {
                    continue;
                }

                Type controlType;
                if (control.ObjectType.StartsWith("~/"))
                {
                    controlType = FormsManager.GetControlType(control);
                }
                else
                {
                    controlType = TypeResolutionService.ResolveType(behaviorResolver.GetBehaviorObjectType(control), true);
                }

                if (!controlType.ImplementsGenericInterface(typeof(IFormElementController <>)))
                {
                    continue;
                }

                var controlInstance       = manager.LoadControl(control);
                var controlBehaviorObject = behaviorResolver.GetBehaviorObject(controlInstance);
                var formField             = controlBehaviorObject as IFormFieldController <IFormFieldModel>;

                if (formField != null)
                {
                    if (!this.RaiseFormFieldValidatingEvent(formField))
                    {
                        return(false);
                    }

                    var fieldName = formField.MetaField.FieldName;

                    IList <HttpPostedFileBase> multipleFiles = files != null?files.GetMultiple(fieldName) : null;

                    object fieldValue;

                    if (multipleFiles != null && multipleFiles.Count() > 0)
                    {
                        fieldValue = multipleFiles;
                    }
                    else if (collection.Keys.Contains(fieldName))
                    {
                        collection[fieldName] = collection[fieldName] ?? string.Empty;
                        fieldValue            = collection[fieldName];
                    }
                    else
                    {
                        fieldValue = null;
                    }

                    var hideableModel = formField.Model as IHideable;
                    var canSaveField  = hideableModel != null?this.CanSaveField(hiddenFields, skipFields, controlInstance.ID, form.Rules, hideableModel.Hidden) : true;

                    fieldControls.Add(formField, canSaveField);

                    if (canSaveField && !formField.Model.IsValid(fieldValue))
                    {
                        this.SetFormFieldInvalidInputMessage(formField);
                        return(false);
                    }
                }
                else
                {
                    var formElement = (IFormElementController <IFormElementModel>)controlBehaviorObject;
                    if (!formElement.IsValid())
                    {
                        this.SetFormElementInvalidInputMessage(formElement);
                        return(false);
                    }

                    if (formElement is Controllers.CaptchaController formElementController)
                    {
                        this.captchaController = formElementController;
                    }
                }
            }

            return(true);
        }
示例#52
0
        protected void LoadFormControls(FormDescription form, FormCollection collection, HttpFileCollectionBase files, FormsManager manager, out Dictionary <string, IFormFieldController <IFormFieldModel> > formFields, out List <IFormElementController <IFormElementModel> > formElements)
        {
            formFields   = new Dictionary <string, IFormFieldController <IFormFieldModel> >();
            formElements = new List <IFormElementController <IFormElementModel> >();

            this.SanitizeFormCollection(collection);
            var behaviorResolver = ObjectFactory.Resolve <IControlBehaviorResolver>();

            var skipFields   = this.SplitCsv(this.GetFormCollectionItemValue(collection, FormSkipFieldsInputName));
            var hiddenFields = this.SplitCsv(this.GetFormCollectionItemValue(collection, FormHiddenFieldsInputName));

            foreach (var control in form.Controls)
            {
                if (control.IsLayoutControl)
                {
                    continue;
                }

                Type controlType;
                if (control.ObjectType.StartsWith("~/"))
                {
                    controlType = FormsManager.GetControlType(control);
                }
                else
                {
                    controlType = TypeResolutionService.ResolveType(behaviorResolver.GetBehaviorObjectType(control), true);
                }

                if (!controlType.ImplementsGenericInterface(typeof(IFormElementController <>)))
                {
                    continue;
                }

                var controlInstance       = manager.LoadControl(control);
                var controlBehaviorObject = behaviorResolver.GetBehaviorObject(controlInstance);
                var formField             = controlBehaviorObject as IFormFieldController <IFormFieldModel>;

                if (formField != null)
                {
                    formFields.Add(controlInstance.ID, formField);
                }
                else
                {
                    var formElement = (IFormElementController <IFormElementModel>)controlBehaviorObject;
                    formElements.Add(formElement);
                }
            }
        }
示例#53
0
 private void showHelpMenuItemClick(object sender, EventArgs e)
 {
     FormsManager.ShowHelpForm();
 }
示例#54
0
        /// <summary>
        /// Determines whether a form is valid or not.
        /// </summary>
        /// <param name="form">The form.</param>
        /// <param name="collection">The collection.</param>
        /// <param name="manager">The manager.</param>
        /// <returns>true if form is valid, false otherwise.</returns>
        protected virtual bool IsValidForm(FormDescription form, FormCollection collection, HttpFileCollectionBase files, FormsManager manager)
        {
            this.SanitizeFormCollection(collection);
            var behaviorResolver = ObjectFactory.Resolve<IControlBehaviorResolver>();
            foreach (var control in form.Controls)
            {
                if (control.IsLayoutControl)
                    continue;

                Type controlType;
                if (control.ObjectType.StartsWith("~/"))
                    controlType = FormsManager.GetControlType(control);
                else
                    controlType = TypeResolutionService.ResolveType(behaviorResolver.GetBehaviorObjectType(control), true);

                if (!controlType.ImplementsGenericInterface(typeof(IFormElementController<>)))
                    continue;

                var controlInstance = manager.LoadControl(control);
                var controlBehaviorObject = behaviorResolver.GetBehaviorObject(controlInstance);

                if (controlBehaviorObject is IFormFieldController<IFormFieldModel>)
                {
                    var formField = (IFormFieldController<IFormFieldModel>)controlBehaviorObject;
                    var multipleFiles = files.GetMultiple(formField.MetaField.FieldName);
                    object fieldValue;
                    if (multipleFiles != null && multipleFiles.Count() > 0)
                    {
                        fieldValue = (object)multipleFiles;
                    }
                    else
                    {
                        collection[formField.MetaField.FieldName] = collection[formField.MetaField.FieldName] ?? string.Empty;
                        fieldValue = (object)collection[formField.MetaField.FieldName];
                    }

                    if (!formField.Model.IsValid(fieldValue))
                        return false;
                }
                else
                {
                    var formElement = (IFormElementController<IFormElementModel>)controlBehaviorObject;
                    if (!formElement.IsValid())
                        return false;
                }
            }

            return true;
        }
示例#55
0
        private void AppendFormControlsToPlaceholder(string formName, IList <Control> formControls, FormsManager formManager, FormDraft master, string containerId)
        {
            if (formControls != null && formControls.Any())
            {
                Guid siblingId       = Guid.Empty;
                int  controlsCounter = 0;
                foreach (var control in formControls)
                {
                    controlsCounter++;
                    control.ID = string.Format(CultureInfo.InvariantCulture, formName + "_" + containerId + "_C" + controlsCounter.ToString(CultureInfo.InvariantCulture).PadLeft(3, '0'));
                    var formControl = formManager.CreateControl <FormDraftControl>(control, containerId);

                    formControl.SiblingId = siblingId;
                    formControl.Caption   = ObjectFactory.Resolve <IControlBehaviorResolver>().GetBehaviorObject(control).GetType().Name;
                    siblingId             = formControl.Id;
                    master.Controls.Add(formControl);
                    formControl.SetPersistanceStrategy();
                }
            }
        }