public void Value_ReturnsValueOfInput()
        {
            CreateATextfield();

            var textFieldElement = Driver.FindElement(By.Name(_TextFieldName));
            var inputTextField   = new InputTextField(textFieldElement, Driver);

            Assert.AreEqual("Test1", inputTextField.Value);
        }
示例#2
0
        private void SetupSubViews()
        {
            _searchInput = new InputTextField {
                BackgroundColor = iOS.Appearance.Colors.BackgroundColor
            };
            _searchInput.Layer.BorderColor = iOS.Appearance.Colors.BarShadowColor.CGColor;

            ContentView.AddSubview(_searchInput);
        }
示例#3
0
        private static void OnBrowse(InputTextField textField)
        {
            DialogHelperResult result = DialogHelper.OpenFile(DialogFilter.All, string.Empty);

            if (result.Result == true)
            {
                textField.Text = result.FileName;
            }
        }
示例#4
0
        public void TextField_CanPressEnter()
        {
            var textFieldElement = Driver.FindElement(By.Name(_TextFieldName));
            var inputTextField   = new InputTextField(textFieldElement, Driver);

            inputTextField.PressEnter();

            var enterPressed = (bool)((IJavaScriptExecutor)Driver).ExecuteScript("return window.enterPressed;");

            Assert.IsTrue(enterPressed);
        }
示例#5
0
        public void TextField_CanDetermineHasFocus()
        {
            var textFieldElement = Driver.FindElement(By.Name(_TextFieldName));
            var inputTextField   = new InputTextField(textFieldElement, Driver);

            Assert.IsFalse(inputTextField.HasFocus);

            inputTextField.Click();

            Assert.IsTrue(inputTextField.HasFocus);
        }
示例#6
0
        private void SetupViews()
        {
            View.BackgroundColor = Appearance.Colors.BackgroundColor;

            _containerView = new UIView {
                BackgroundColor = Appearance.Colors.BackgroundColor
            };

            // Header
            _passwordHeader = new UILabel {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.SubTextColor, Text = "Security & Privacy"
            };

            // About you
            _passwordContainer = new UIView {
                BackgroundColor = Appearance.Colors.White
            };
            _passwordTopRuler = new UIView {
                BackgroundColor = Appearance.Colors.BackPanelBorderTop
            };

            _oldPasswordHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Old password"
            };
            _oldPassword = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), SecureTextEntry = true, ShouldReturn = ShouldReturn
            };
            _oldPassword.Layer.BorderColor = Appearance.Colors.BarShadowColor.CGColor;

            _newPasswordHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "New password"
            };
            _newPassword = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), SecureTextEntry = true, ShouldReturn = ShouldReturn
            };
            _newPassword.Layer.BorderColor = Appearance.Colors.BarShadowColor.CGColor;

            _confirmPasswordHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Confirm password"
            };
            _confirmPassword = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), SecureTextEntry = true, ShouldReturn = ShouldReturn
            };
            _confirmPassword.Layer.BorderColor = Appearance.Colors.BarShadowColor.CGColor;

            _passwordBottomRuler = new UIView {
                BackgroundColor = Appearance.Colors.BackPanelBorderBottom
            };

            _containerView.AddSubviews(_passwordContainer, _passwordTopRuler, _passwordHeader, _oldPasswordHeader, _oldPassword, _newPasswordHeader, _newPassword, _confirmPasswordHeader, _confirmPassword, _passwordBottomRuler);

            // Add container to scrollview and scrollview to view
            ScrollView.AddSubviews(_containerView);
        }
示例#7
0
        public void TextField_CanClear()
        {
            var textFieldElement  = Driver.FindElement(By.Name(_TextFieldName));
            var inputTextField    = new InputTextField(textFieldElement, Driver);
            var domInputTextField = DomElement.ByName(_TextFieldName, TestFixture);

            Assert.AreEqual("Dit is een Test", domInputTextField.Value);

            inputTextField.Clear();

            Assert.AreEqual("", domInputTextField.Value);
        }
        protected override void Load()
        {
            LicenseKeyField    = InputTextField.CreateInputTextField <string, InputBinding>(Resources.TXT_LICENSE_KEY, () => Serial, this);
            WebcalConnectField = InputTextField.CreateInputTextField <string, OneWayInputBinding>(Resources.TXT_WEBCAL_CONNECT_KEY, () => WebcalConnectKey, this, ConnectCommand, Resources.TXT_VERIFY, true);

            if (!string.IsNullOrEmpty(Settings.LicenseKey))
            {
                Serial = Settings.LicenseKey;
            }

            Settings.Updated = () => OnPropertyChanged("WebcalConnectKey");
        }
        void ReleaseDesignerOutlets()
        {
            if (FromLabel != null)
            {
                FromLabel.Dispose();
                FromLabel = null;
            }

            if (FromTextField != null)
            {
                FromTextField.Dispose();
                FromTextField = null;
            }

            if (InputTextField != null)
            {
                InputTextField.Dispose();
                InputTextField = null;
            }

            if (ToLabel != null)
            {
                ToLabel.Dispose();
                ToLabel = null;
            }

            if (ToTextField != null)
            {
                ToTextField.Dispose();
                ToTextField = null;
            }

            if (NextButton != null)
            {
                NextButton.Dispose();
                NextButton = null;
            }
        }
示例#10
0
        public void Start()
        {
            var entMan = new EntityManager();
            var relMan = new EntityRelationManager();
            var recMan = new RecordManager();
            var storeSystemSettings = DbContext.Current.SettingsRepository.Read();
            var systemSettings      = new SystemSettings(storeSystemSettings);

            //Open scope with a user we will use for the operations further ahead
            var user = new SecurityManager().GetUser(SystemIds.FirstUserId);

            using (SecurityContext.OpenScope(user))
            {
                //Create transaction
                using (var connection = DbContext.Current.CreateConnection())
                {
                    try
                    {
                        connection.BeginTransaction();
                        //Here we need to initialize or update the environment based on the plugin requirements.
                        //The default place for the plugin data is the "plugin_data" entity -> the "data" text field, which is used to store stringified JSON
                        //containing the plugin settings or version

                        #region << 1.Get the current ERP database version and checks for other plugin dependencies >>

                        if (systemSettings.Version > 0)
                        {
                            //Do something if database version is not what you expect
                        }

                        //This plugin needs the webvella-crm plugin to be installed, so we will check this here
                        var installedPlugins = new PluginService().Plugins;
                        var corePluginFound  = false;
                        foreach (var plugin in installedPlugins)
                        {
                            if (plugin.Name == "webvella-core")
                            {
                                corePluginFound = true;
                                break;
                            }
                        }

                        if (!corePluginFound)
                        {
                            throw new Exception("'webvella-core' plugin is required for the 'webvella-crm' to operate");
                        }

                        #endregion

                        #region << 2.Get the current plugin settings from the database >>
                        var         currentPluginSettings   = new PluginSettings();
                        QueryObject pluginDataQueryObject   = EntityQuery.QueryEQ("name", WEBVELLA_CRM_PLUGIN_NAME);
                        var         pluginDataQuery         = new EntityQuery("plugin_data", "*", pluginDataQueryObject);
                        var         pluginDataQueryResponse = recMan.Find(pluginDataQuery);
                        if (!pluginDataQueryResponse.Success)
                        {
                            throw new Exception("plugin 'webvella-project' failed to get its settings due to: " + pluginDataQueryResponse.Message);
                        }

                        if (pluginDataQueryResponse.Object == null || !pluginDataQueryResponse.Object.Data.Any() || pluginDataQueryResponse.Object.Data[0]["data"] == DBNull.Value)
                        {
                            //plugin was not installed
                            currentPluginSettings.Version = 20160429;
                            {
                                string json = JsonConvert.SerializeObject(currentPluginSettings);
                                var    settingsEntityRecord = new EntityRecord();
                                settingsEntityRecord["id"]   = WEBVELLA_CRM_PLUGIN_ID;
                                settingsEntityRecord["name"] = WEBVELLA_CRM_PLUGIN_NAME;
                                settingsEntityRecord["data"] = json;
                                var settingsSaveReponse = recMan.CreateRecord("plugin_data", settingsEntityRecord);
                                if (!settingsSaveReponse.Success)
                                {
                                    throw new Exception("plugin 'webvella-project' failed to save its settings in the database due to: " + pluginDataQueryResponse.Message);
                                }
                            }
                        }
                        else
                        {
                            string json = (string)((List <EntityRecord>)pluginDataQueryResponse.Object.Data)[0]["data"];
                            currentPluginSettings = JsonConvert.DeserializeObject <PluginSettings>(json);
                        }
                        #endregion

                        #region << 3. Run methods based on the current installed version of the plugin >>
                        if (currentPluginSettings.Version < 20160430)
                        {
                            currentPluginSettings.Version = 20160430;

                            #region << Create CRM admin area >>
                            //The areas are the main object for navigation for the user. You can attach entities and URLs later to them
                            {
                                var area = new EntityRecord();
                                area["id"]        = CRM_ADMIN_AREA_ID;
                                area["name"]      = "crm_admin";
                                area["label"]     = "CRM Admin";
                                area["icon_name"] = "users";
                                area["color"]     = "pink";
                                area["folder"]    = "Admin";
                                area["weight"]    = 100;
                                var areaRoles = new List <Guid>();
                                areaRoles.Add(SystemIds.AdministratorRoleId);
                                area["roles"] = JsonConvert.SerializeObject(areaRoles);
                                var createAreaResult = recMan.CreateRecord("area", area);
                                if (!createAreaResult.Success)
                                {
                                    throw new Exception("System error 10060. Area create with name : project_admin. Message:" + createAreaResult.Message);
                                }
                            }
                            #endregion

                            #region << wv_customer >>
                            {
                                #region << entity >>
                                {
                                    InputEntity entity = new InputEntity();
                                    entity.Id                          = CUSTOMER_ENTITY_ID;
                                    entity.Name                        = CUSTOMER_ENTITY_NAME;
                                    entity.Label                       = "Customer";
                                    entity.LabelPlural                 = "Customers";
                                    entity.System                      = true;
                                    entity.IconName                    = "building-o";
                                    entity.Weight                      = 2;
                                    entity.RecordPermissions           = new RecordPermissions();
                                    entity.RecordPermissions.CanCreate = new List <Guid>();
                                    entity.RecordPermissions.CanRead   = new List <Guid>();
                                    entity.RecordPermissions.CanUpdate = new List <Guid>();
                                    entity.RecordPermissions.CanDelete = new List <Guid>();
                                    //Create
                                    entity.RecordPermissions.CanCreate.Add(SystemIds.AdministratorRoleId);
                                    entity.RecordPermissions.CanCreate.Add(SystemIds.RegularRoleId);
                                    //READ
                                    entity.RecordPermissions.CanRead.Add(SystemIds.AdministratorRoleId);
                                    entity.RecordPermissions.CanRead.Add(SystemIds.RegularRoleId);
                                    //UPDATE
                                    entity.RecordPermissions.CanUpdate.Add(SystemIds.AdministratorRoleId);
                                    entity.RecordPermissions.CanUpdate.Add(SystemIds.RegularRoleId);

                                    {
                                        var response = entMan.CreateEntity(entity);
                                        if (!response.Success)
                                        {
                                            throw new Exception("System error 10050. Entity: " + CUSTOMER_ENTITY_NAME + " Field: entity creation" + " Message:" + response.Message);
                                        }
                                    }
                                }
                                #endregion

                                #region << name >>
                                {
                                    InputTextField textboxField = new InputTextField();
                                    textboxField.Id                    = new Guid("7fb95d0f-ab59-421d-974d-ab357e28a1f9");
                                    textboxField.Name                  = "name";
                                    textboxField.Label                 = "Name";
                                    textboxField.PlaceholderText       = "";
                                    textboxField.Description           = "";
                                    textboxField.HelpText              = "";
                                    textboxField.Required              = true;
                                    textboxField.Unique                = false;
                                    textboxField.Searchable            = true;
                                    textboxField.Auditable             = false;
                                    textboxField.System                = true;
                                    textboxField.DefaultValue          = string.Empty;
                                    textboxField.MaxLength             = null;
                                    textboxField.EnableSecurity        = true;
                                    textboxField.Permissions           = new FieldPermissions();
                                    textboxField.Permissions.CanRead   = new List <Guid>();
                                    textboxField.Permissions.CanUpdate = new List <Guid>();
                                    //READ
                                    textboxField.Permissions.CanRead.Add(SystemIds.AdministratorRoleId);
                                    textboxField.Permissions.CanRead.Add(SystemIds.RegularRoleId);
                                    //UPDATE
                                    textboxField.Permissions.CanUpdate.Add(SystemIds.AdministratorRoleId);
                                    {
                                        var response = entMan.CreateField(CUSTOMER_ENTITY_ID, textboxField, false);
                                        if (!response.Success)
                                        {
                                            throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Field: name" + " Message:" + response.Message);
                                        }
                                    }
                                }
                                #endregion
                            }
                            #endregion

                            #region << View name: admin_details >>
                            {
                                var createViewEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                                var createViewInput  = new InputRecordView();
                                var viewRegion       = new InputRecordViewRegion();
                                var viewSection      = new InputRecordViewSection();
                                var viewRow          = new InputRecordViewRow();
                                var viewColumn       = new InputRecordViewColumn();
                                var viewItem         = new InputRecordViewFieldItem();

                                #region << details >>
                                createViewInput.Id                  = new Guid("3a0e1319-5357-49ec-9e85-8d9be2363fcf");
                                createViewInput.Type                = "hidden";
                                createViewInput.Name                = "admin_details";
                                createViewInput.Label               = "Details";
                                createViewInput.Default             = false;
                                createViewInput.System              = false;
                                createViewInput.Weight              = 15;
                                createViewInput.CssClass            = null;
                                createViewInput.IconName            = "building-o";
                                createViewInput.DynamicHtmlTemplate = null;
                                createViewInput.DataSourceUrl       = null;
                                createViewInput.ServiceCode         = null;
                                createViewInput.Regions             = new List <InputRecordViewRegion>();
                                #endregion

                                #region << Header Region >>
                                viewRegion          = new InputRecordViewRegion();
                                viewRegion.Name     = "header";
                                viewRegion.Label    = "Header";
                                viewRegion.Render   = true;
                                viewRegion.Weight   = 1;
                                viewRegion.CssClass = "";
                                viewRegion.Sections = new List <InputRecordViewSection>();

                                #region << Section >>
                                viewSection           = new InputRecordViewSection();
                                viewSection.Id        = Guid.NewGuid();
                                viewSection.Name      = "details";
                                viewSection.Label     = "Details";
                                viewSection.ShowLabel = false;
                                viewSection.CssClass  = "";
                                viewSection.Collapsed = false;
                                viewSection.TabOrder  = "left-right";
                                viewSection.Weight    = 1;
                                viewSection.Rows      = new List <InputRecordViewRow>();

                                #region << Row >>
                                viewRow         = new InputRecordViewRow();
                                viewRow.Id      = Guid.NewGuid();
                                viewRow.Weight  = 1;
                                viewRow.Columns = new List <InputRecordViewColumn>();

                                #region << Column 1 >>
                                viewColumn = new InputRecordViewColumn();
                                viewColumn.GridColCount = 12;
                                viewColumn.Items        = new List <InputRecordViewItemBase>();


                                #region << name >>
                                {
                                    viewItem            = new InputRecordViewFieldItem();
                                    viewItem.EntityId   = CUSTOMER_ENTITY_ID;
                                    viewItem.EntityName = CUSTOMER_ENTITY_NAME;
                                    viewItem.FieldId    = createViewEntity.Fields.Single(x => x.Name == "name").Id;
                                    viewItem.FieldName  = "name";
                                    viewItem.Type       = "field";
                                    viewColumn.Items.Add(viewItem);
                                }
                                #endregion


                                //Save column
                                viewRow.Columns.Add(viewColumn);
                                #endregion

                                //Save row
                                viewSection.Rows.Add(viewRow);
                                #endregion

                                //Save section
                                viewRegion.Sections.Add(viewSection);
                                #endregion

                                //Save region
                                createViewInput.Regions.Add(viewRegion);
                                #endregion

                                #region << relation options >>
                                createViewInput.RelationOptions = new List <EntityRelationOptionsItem>();
                                #endregion

                                #region << Sidebar >>
                                createViewInput.Sidebar          = new InputRecordViewSidebar();
                                createViewInput.Sidebar.CssClass = "";
                                createViewInput.Sidebar.Render   = true;
                                createViewInput.Sidebar.Render   = true;
                                createViewInput.Sidebar.Items    = new List <InputRecordViewSidebarItemBase>();
                                #endregion

                                #region << action items >>
                                createViewInput.ActionItems = new List <ActionItem>();
                                var actionItem = new ActionItem();
                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_record_delete";
                                    actionItem.Menu     = "page-title-dropdown";
                                    actionItem.Weight   = 1;
                                    actionItem.Template = "" +
                                                          @"<a href=""javascript:void(0)"" confirmed-click=""ngCtrl.deleteRecord(ngCtrl)"" ng-confirm-click=""Are you sure?""
										ng-if=""ngCtrl.userHasRecordPermissions('canDelete')"">
									<i class=""fa fa-trash go-red""></i> Delete Record
								</a>"                                ;
                                    createViewInput.ActionItems.Add(actionItem);
                                }
                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_back_button";
                                    actionItem.Menu     = "sidebar-top";
                                    actionItem.Weight   = 1;
                                    actionItem.Template = "" +
                                                          @"<a class=""back clearfix"" href=""javascript:void(0)"" ng-click=""sidebarData.goBack()""><i class=""fa fa-fw fa-arrow-left""></i> <span class=""text"">Back</span></a>";
                                    createViewInput.ActionItems.Add(actionItem);
                                }
                                #endregion

                                {
                                    var response = entMan.CreateRecordView(CUSTOMER_ENTITY_ID, createViewInput);
                                    if (!response.Success)
                                    {
                                        throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Updated view: admin_details" + " Message:" + response.Message);
                                    }
                                }
                            }
                            #endregion

                            #region << View name: admin_create >>
                            {
                                var createViewEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                                var createViewInput  = new InputRecordView();
                                var viewRegion       = new InputRecordViewRegion();
                                var viewSection      = new InputRecordViewSection();
                                var viewRow          = new InputRecordViewRow();
                                var viewColumn       = new InputRecordViewColumn();
                                var viewItem         = new InputRecordViewFieldItem();

                                #region << details >>
                                createViewInput.Id                  = new Guid("93043954-ae70-41a3-b4b7-665531a23a76");
                                createViewInput.Type                = "create";
                                createViewInput.Name                = "admin_create";
                                createViewInput.Label               = "Create customer";
                                createViewInput.Default             = false;
                                createViewInput.System              = false;
                                createViewInput.Weight              = 25;
                                createViewInput.CssClass            = null;
                                createViewInput.IconName            = "building-o";
                                createViewInput.DynamicHtmlTemplate = null;
                                createViewInput.DataSourceUrl       = null;
                                createViewInput.ServiceCode         = null;
                                createViewInput.Regions             = new List <InputRecordViewRegion>();
                                #endregion

                                #region << Header Region >>
                                viewRegion          = new InputRecordViewRegion();
                                viewRegion.Name     = "header";
                                viewRegion.Label    = "Header";
                                viewRegion.Render   = true;
                                viewRegion.Weight   = 1;
                                viewRegion.CssClass = "";
                                viewRegion.Sections = new List <InputRecordViewSection>();

                                #region << Section >>
                                viewSection           = new InputRecordViewSection();
                                viewSection.Id        = Guid.NewGuid();
                                viewSection.Name      = "details";
                                viewSection.Label     = "Details";
                                viewSection.ShowLabel = false;
                                viewSection.CssClass  = "";
                                viewSection.Collapsed = false;
                                viewSection.TabOrder  = "left-right";
                                viewSection.Weight    = 1;
                                viewSection.Rows      = new List <InputRecordViewRow>();

                                #region << Row >>
                                viewRow         = new InputRecordViewRow();
                                viewRow.Id      = Guid.NewGuid();
                                viewRow.Weight  = 1;
                                viewRow.Columns = new List <InputRecordViewColumn>();

                                #region << Column 1 >>
                                viewColumn = new InputRecordViewColumn();
                                viewColumn.GridColCount = 12;
                                viewColumn.Items        = new List <InputRecordViewItemBase>();


                                #region << name >>
                                {
                                    viewItem            = new InputRecordViewFieldItem();
                                    viewItem.EntityId   = CUSTOMER_ENTITY_ID;
                                    viewItem.EntityName = CUSTOMER_ENTITY_NAME;
                                    viewItem.FieldId    = createViewEntity.Fields.Single(x => x.Name == "name").Id;
                                    viewItem.FieldName  = "name";
                                    viewItem.Type       = "field";
                                    viewColumn.Items.Add(viewItem);
                                }
                                #endregion


                                //Save column
                                viewRow.Columns.Add(viewColumn);
                                #endregion

                                //Save row
                                viewSection.Rows.Add(viewRow);
                                #endregion

                                //Save section
                                viewRegion.Sections.Add(viewSection);
                                #endregion

                                //Save region
                                createViewInput.Regions.Add(viewRegion);
                                #endregion

                                #region << relation options >>
                                createViewInput.RelationOptions = new List <EntityRelationOptionsItem>();
                                #endregion

                                #region << Sidebar >>
                                createViewInput.Sidebar          = new InputRecordViewSidebar();
                                createViewInput.Sidebar.CssClass = "";
                                createViewInput.Sidebar.Render   = true;
                                createViewInput.Sidebar.Render   = true;
                                createViewInput.Sidebar.Items    = new List <InputRecordViewSidebarItemBase>();
                                #endregion

                                #region << action items >>
                                createViewInput.ActionItems = new List <ActionItem>();
                                var actionItem = new ActionItem();

                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_create_and_list";
                                    actionItem.Menu     = "create-bottom";
                                    actionItem.Weight   = 1;
                                    actionItem.Template = "" +
                                                          @"<a class=""btn btn-primary"" ng-click='ngCtrl.create(""list"")' ng-if=""ngCtrl.createViewRegion != null"">Create & List</a>";
                                    createViewInput.ActionItems.Add(actionItem);
                                }
                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_create_and_details";
                                    actionItem.Menu     = "create-bottom";
                                    actionItem.Weight   = 2;
                                    actionItem.Template = "" +
                                                          @"<a class=""btn btn-default btn-outline"" ng-click='ngCtrl.create(""details"")' ng-if=""ngCtrl.createViewRegion != null"">Create & Details</a>";
                                    createViewInput.ActionItems.Add(actionItem);
                                }
                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_create_cancel";
                                    actionItem.Menu     = "create-bottom";
                                    actionItem.Weight   = 3;
                                    actionItem.Template = "" +
                                                          @"<a class=""btn btn-default btn-outline"" ng-click=""ngCtrl.cancel()"">Cancel</a>";
                                    createViewInput.ActionItems.Add(actionItem);
                                }
                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_back_button";
                                    actionItem.Menu     = "sidebar-top";
                                    actionItem.Weight   = 1;
                                    actionItem.Template = "" +
                                                          @"<a class=""back clearfix"" href=""javascript:void(0)"" ng-click=""sidebarData.goBack()""><i class=""fa fa-fw fa-arrow-left""></i> <span class=""text"">Back</span></a>";
                                    createViewInput.ActionItems.Add(actionItem);
                                }
                                #endregion
                                {
                                    var response = entMan.CreateRecordView(CUSTOMER_ENTITY_ID, createViewInput);
                                    if (!response.Success)
                                    {
                                        throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Updated view: admin_create" + " Message:" + response.Message);
                                    }
                                }
                            }
                            #endregion

                            #region << List name: admin >>
                            {
                                var createListEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                                var createListInput  = new InputRecordList();
                                var listItem         = new InputRecordListFieldItem();
                                var listSort         = new InputRecordListSort();
                                var listQuery        = new InputRecordListQuery();

                                #region << details >>
                                createListInput.Id                  = new Guid("ff15f200-8e68-4683-8576-4c8244405ca9");
                                createListInput.Type                = "hidden";
                                createListInput.Name                = "admin";
                                createListInput.Label               = "Customers";
                                createListInput.Weight              = 11;
                                createListInput.Default             = false;
                                createListInput.System              = true;
                                createListInput.CssClass            = null;
                                createListInput.IconName            = "building-o";
                                createListInput.VisibleColumnsCount = 7;
                                createListInput.ColumnWidthsCSV     = null;
                                createListInput.PageSize            = 10;
                                createListInput.DynamicHtmlTemplate = null;
                                createListInput.DataSourceUrl       = null;
                                createListInput.ServiceCode         = null;
                                #endregion

                                #region << action items >>
                                createListInput.ActionItems = new List <ActionItem>();
                                var actionItem = new ActionItem();
                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_record_details";
                                    actionItem.Menu     = "record-row";
                                    actionItem.Weight   = 1;
                                    actionItem.Template = "" +
                                                          @"<a class=""btn btn-default btn-outline"" ng-href=""{{ngCtrl.getRecordDetailsUrl(record, ngCtrl)}}"">
							<i class=""fa fa-fw fa-eye""></i>
							</a>"                            ;
                                    createListInput.ActionItems.Add(actionItem);
                                }
                                {
                                    actionItem          = new ActionItem();
                                    actionItem.Name     = "wv_create_record";
                                    actionItem.Menu     = "page-title";
                                    actionItem.Weight   = 1;
                                    actionItem.Template = "" +
                                                          @"<a class=""btn btn-default btn-outline hidden-xs"" ng-show=""ngCtrl.userHasRecordPermissions('canCreate')"" 
    ng-href=""{{ngCtrl.getRecordCreateUrl(ngCtrl)}}"">
	<i class=""fa fa-fw fa-plus""></i> Add New
</a>";
                                    createListInput.ActionItems.Add(actionItem);
                                }
                                #endregion

                                #region << Columns >>
                                createListInput.Columns = new List <InputRecordListItemBase>();
                                #region << name >>
                                {
                                    var fieldName = "name";
                                    listItem            = new InputRecordListFieldItem();
                                    listItem.EntityId   = CUSTOMER_ENTITY_ID;
                                    listItem.EntityName = CUSTOMER_ENTITY_NAME;
                                    listItem.FieldId    = createListEntity.Fields.Single(x => x.Name == fieldName).Id;
                                    listItem.FieldName  = fieldName;
                                    listItem.Type       = "field";
                                    createListInput.Columns.Add(listItem);
                                }
                                #endregion

                                #endregion

                                #region << relation options >>
                                createListInput.RelationOptions = new List <EntityRelationOptionsItem>();
                                #endregion

                                #region << query >>
                                listQuery = new InputRecordListQuery();
                                #endregion

                                #region << Sort >>
                                listSort = new InputRecordListSort();
                                #endregion
                                {
                                    var response = entMan.CreateRecordList(CUSTOMER_ENTITY_ID, createListInput);
                                    if (!response.Success)
                                    {
                                        throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Updated List: admin" + " Message:" + response.Message);
                                    }
                                }
                            }
                            #endregion

                            #region << area add subscription: CRM Admin -> Customer >>
                            {
                                var updatedAreaId    = CRM_ADMIN_AREA_ID;
                                var updateAreaResult = Helpers.UpsertEntityAsAreaSubscription(entMan, recMan, updatedAreaId, CUSTOMER_ENTITY_NAME, "admin_details", "admin_create", "admin");
                                if (!updateAreaResult.Success)
                                {
                                    throw new Exception("System error 10060. Area update with id : " + updatedAreaId + " Message:" + updateAreaResult.Message);
                                }
                            }
                            #endregion

                            #region << customer lookup list >>
                            {
                                var updateListEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                                var updateList       = updateListEntity.RecordLists.Single(x => x.Name == "lookup");
                                var updateListInput  = new InputRecordList();
                                var listItem         = new InputRecordListFieldItem();
                                var listSort         = new InputRecordListSort();
                                var listQuery        = new InputRecordListQuery();

                                //Convert recordList to recordListInput
                                updateListInput = updateList.DynamicMapTo <InputRecordList>();

                                //General list details
                                //updateListInput.IconName = "";

                                //Fields
                                #region << name >>
                                listItem            = new InputRecordListFieldItem();
                                listItem.EntityId   = CUSTOMER_ENTITY_ID;
                                listItem.EntityName = "customer";
                                listItem.FieldId    = updateListEntity.Fields.Single(x => x.Name == "name").Id;
                                listItem.FieldName  = "name";
                                listItem.Type       = "field";
                                updateListInput.Columns.Add(listItem);
                                #endregion

                                //Query
                                #region << query descr >>
                                listQuery = new InputRecordListQuery();
                                #endregion


                                //Sort
                                #region << Sort >>
                                listSort           = new InputRecordListSort();
                                listSort.FieldName = "name";
                                listSort.SortType  = "ascending";
                                updateListInput.Sorts.Add(listSort);
                                #endregion
                                {
                                    var responseObject = entMan.UpdateRecordList(CUSTOMER_ENTITY_ID, updateListInput);
                                    if (!responseObject.Success)
                                    {
                                        throw new Exception("System error 10060. Entity: " + "user" + " Updated List: list_name" + " Message:" + responseObject.Message);
                                    }
                                }
                            }
                            #endregion

                            if (createSampleRecords)
                            {
                                #region << Create Sample Customer >>
                                {
                                    var sampleRecord = new EntityRecord();
                                    sampleRecord["id"]   = new Guid("fb06213f-7632-495b-bb8d-ed5ff07dc515");
                                    sampleRecord["name"] = "Buckley Miller & Wright";
                                    var createSampleRecordResult = recMan.CreateRecord(CUSTOMER_ENTITY_NAME, sampleRecord);
                                    if (!createSampleRecordResult.Success)
                                    {
                                        throw new Exception("System error 10060. Create sample record. Message:" + createSampleRecordResult.Message);
                                    }
                                }
                                #endregion

                                #region << Create Sample Customer User >>
                                {
                                    var sampleRecord = new EntityRecord();
                                    sampleRecord["id"]         = new Guid("307fe376-a1c6-495e-a7c0-2a78797565f2");
                                    sampleRecord["first_name"] = "Sample";
                                    sampleRecord["last_name"]  = "Customer";
                                    sampleRecord["username"]   = "******";
                                    sampleRecord["email"]      = "*****@*****.**";
                                    sampleRecord["password"]   = "******";
                                    sampleRecord["enabled"]    = true;
                                    sampleRecord["verified"]   = true;
                                    sampleRecord["image"]      = "/plugins/webvella-core/assets/avatar-deep-purple.png";
                                    var createSampleRecordResult = recMan.CreateRecord(SystemIds.UserEntityId, sampleRecord);
                                    if (!createSampleRecordResult.Success)
                                    {
                                        throw new Exception("System error 10060. Create sample customer record. Message:" + createSampleRecordResult.Message);
                                    }
                                }
                                #endregion

                                #region << Create Sample User Role>>
                                {
                                    var sampleRecord = new EntityRecord();
                                    sampleRecord["id"]          = new Guid("27745245-09bd-4adb-8831-3870bcae46fe");
                                    sampleRecord["name"]        = "crm_customer";
                                    sampleRecord["description"] = "Sample Customer role for CRM application";
                                    var createSampleRecordResult = recMan.CreateRecord(SystemIds.RoleEntityId, sampleRecord);
                                    if (!createSampleRecordResult.Success)
                                    {
                                        throw new Exception("System error 10060. Create sample role record. Message:" + createSampleRecordResult.Message);
                                    }
                                }
                                #endregion

                                #region << Create relation between sample customer and role >>
                                {
                                    var createRelationNtoNResponse = recMan.CreateRelationManyToManyRecord(new Guid("0c4b119e-1d7b-4b40-8d2c-9e447cc656ab"), new Guid("27745245-09bd-4adb-8831-3870bcae46fe"), new Guid("307fe376-a1c6-495e-a7c0-2a78797565f2"));
                                    if (!createRelationNtoNResponse.Success)
                                    {
                                        throw new Exception("Could not create item image relation" + createRelationNtoNResponse.Message);
                                    }
                                }
                                #endregion

                                #region << Create relation between sample customer and regular role >>
                                {
                                    var createRelationNtoNResponse = recMan.CreateRelationManyToManyRecord(new Guid("0c4b119e-1d7b-4b40-8d2c-9e447cc656ab"), new Guid("f16ec6db-626d-4c27-8de0-3e7ce542c55f"), new Guid("307fe376-a1c6-495e-a7c0-2a78797565f2"));
                                    if (!createRelationNtoNResponse.Success)
                                    {
                                        throw new Exception("Could not create item image relation" + createRelationNtoNResponse.Message);
                                    }
                                }
                                #endregion
                            }
                        }
                        #endregion

                        #region << 4. Save needed changes to the plugin setting data >>
                        {
                            string json = JsonConvert.SerializeObject(currentPluginSettings);
                            var    settingsEntityRecord = new EntityRecord();
                            settingsEntityRecord["id"]   = WEBVELLA_CRM_PLUGIN_ID;
                            settingsEntityRecord["name"] = WEBVELLA_CRM_PLUGIN_NAME;
                            settingsEntityRecord["data"] = json;
                            var settingsUpdateReponse = recMan.UpdateRecord("plugin_data", settingsEntityRecord);
                            if (!settingsUpdateReponse.Success)
                            {
                                throw new Exception("plugin 'webvella-project' failed to update its settings in the database due to: " + pluginDataQueryResponse.Message);
                            }
                        }
                        #endregion

                        connection.CommitTransaction();
                    }
                    catch (Exception ex)
                    {
                        connection.RollbackTransaction();
                        throw ex;
                    }
                }
            }
        }
示例#11
0
 private void SetInputEnable(bool enable)
 {
     InputTextField.SetEnabled(enable);
     InputButton.SetEnabled(enable);
 }
        private static void Patch20180912(EntityManager entMan, EntityRelationManager relMan, RecordManager recMan, bool createSampleRecords = false)
        {
            #region << ***Create field***  Entity: wv_bug Field Name: indexed_on >>
            {
                InputDateTimeField datetimeField = new InputDateTimeField();
                datetimeField.Id              = new Guid("3fa55ffc-eb9a-4fd1-8570-03e861ae043f");
                datetimeField.Name            = "indexed_on";
                datetimeField.Label           = "Indexed On";
                datetimeField.PlaceholderText = "";
                datetimeField.Description     = "";
                datetimeField.HelpText        = "";
                datetimeField.Required        = false;
                datetimeField.Unique          = false;
                datetimeField.Searchable      = true;
                datetimeField.Auditable       = false;
                datetimeField.System          = true;
                datetimeField.DefaultValue    = null;
                datetimeField.Format          = "yyyy-MMM-dd HH:mm";
                datetimeField.UseCurrentTimeAsDefaultValue = false;
                datetimeField.EnableSecurity        = false;
                datetimeField.Permissions           = new FieldPermissions();
                datetimeField.Permissions.CanRead   = new List <Guid>();
                datetimeField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("c11655fa-e4a3-4c2b-8f1e-0a6d87cfd20c"), datetimeField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: wv_bug Field: indexed_on Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: wv_task Field Name: indexed_on >>
            {
                InputDateTimeField datetimeField = new InputDateTimeField();
                datetimeField.Id              = new Guid("2a28b090-433d-432b-9944-b00f6a5dbd3c");
                datetimeField.Name            = "indexed_on";
                datetimeField.Label           = "Indexed On";
                datetimeField.PlaceholderText = "";
                datetimeField.Description     = "";
                datetimeField.HelpText        = "";
                datetimeField.Required        = false;
                datetimeField.Unique          = false;
                datetimeField.Searchable      = true;
                datetimeField.Auditable       = false;
                datetimeField.System          = true;
                datetimeField.DefaultValue    = null;
                datetimeField.Format          = "yyyy-MMM-dd HH:mm";
                datetimeField.UseCurrentTimeAsDefaultValue = false;
                datetimeField.EnableSecurity        = false;
                datetimeField.Permissions           = new FieldPermissions();
                datetimeField.Permissions.CanRead   = new List <Guid>();
                datetimeField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("65acced0-1650-4ff0-bbff-9937c382cd89"), datetimeField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: wv_task Field: indexed_on Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: wv_project_activity Field Name: user_id >>
            {
                InputGuidField guidField = new InputGuidField();
                guidField.Id                    = new Guid("6819bbbc-65f8-4664-aecd-a8997d130cdb");
                guidField.Name                  = "user_id";
                guidField.Label                 = "User Id";
                guidField.PlaceholderText       = "";
                guidField.Description           = "";
                guidField.HelpText              = "";
                guidField.Required              = false;
                guidField.Unique                = false;
                guidField.Searchable            = true;
                guidField.Auditable             = false;
                guidField.System                = true;
                guidField.DefaultValue          = null;
                guidField.GenerateNewId         = false;
                guidField.EnableSecurity        = false;
                guidField.Permissions           = new FieldPermissions();
                guidField.Permissions.CanRead   = new List <Guid>();
                guidField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("145a489b-4dfc-4639-b473-2dedccb93ce0"), guidField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: wv_project_activity Field: user_id Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create entity*** Entity name: search >>
            {
                #region << entity >>
                {
                    var entity = new InputEntity();
                    var systemFieldIdDictionary = new Dictionary <string, Guid>();
                    systemFieldIdDictionary["id"]                      = new Guid("a28b6c82-5ca3-4b2d-95f9-967501b0c619");
                    systemFieldIdDictionary["created_on"]              = new Guid("234f44fa-512a-445e-a693-284e23ada9d8");
                    systemFieldIdDictionary["created_by"]              = new Guid("b669d361-b1cc-4d89-87b7-c8ef661a82cd");
                    systemFieldIdDictionary["last_modified_on"]        = new Guid("df59fde6-9367-4acd-b0a3-1880dba2cfea");
                    systemFieldIdDictionary["last_modified_by"]        = new Guid("4ba95b2e-01f0-4b9b-b1be-6e6ed73351c7");
                    systemFieldIdDictionary["user_search_created_by"]  = new Guid("f7f07ebd-1d26-4fe4-95f3-114d2322ce74");
                    systemFieldIdDictionary["user_search_modified_by"] = new Guid("277fbd26-dce9-4942-af50-9ccd58d810f1");
                    entity.Id                          = new Guid("171659b7-79a3-457e-844b-6c954b59420f");
                    entity.Name                        = "search";
                    entity.Label                       = "Search";
                    entity.LabelPlural                 = "Search";
                    entity.System                      = true;
                    entity.IconName                    = "search";
                    entity.Weight                      = (decimal)10.0;
                    entity.RecordPermissions           = new RecordPermissions();
                    entity.RecordPermissions.CanCreate = new List <Guid>();
                    entity.RecordPermissions.CanRead   = new List <Guid>();
                    entity.RecordPermissions.CanUpdate = new List <Guid>();
                    entity.RecordPermissions.CanDelete = new List <Guid>();
                    //Create
                    entity.RecordPermissions.CanCreate.Add(new Guid("bdc56420-caf0-4030-8a0e-d264938e0cda"));
                    entity.RecordPermissions.CanCreate.Add(new Guid("f16ec6db-626d-4c27-8de0-3e7ce542c55f"));
                    //READ
                    entity.RecordPermissions.CanRead.Add(new Guid("bdc56420-caf0-4030-8a0e-d264938e0cda"));
                    entity.RecordPermissions.CanRead.Add(new Guid("f16ec6db-626d-4c27-8de0-3e7ce542c55f"));
                    //UPDATE
                    entity.RecordPermissions.CanUpdate.Add(new Guid("bdc56420-caf0-4030-8a0e-d264938e0cda"));
                    entity.RecordPermissions.CanUpdate.Add(new Guid("f16ec6db-626d-4c27-8de0-3e7ce542c55f"));
                    //DELETE
                    entity.RecordPermissions.CanDelete.Add(new Guid("bdc56420-caf0-4030-8a0e-d264938e0cda"));
                    entity.RecordPermissions.CanDelete.Add(new Guid("f16ec6db-626d-4c27-8de0-3e7ce542c55f"));
                    {
                        var response = entMan.CreateEntity(entity, false, false, systemFieldIdDictionary);
                        if (!response.Success)
                        {
                            throw new Exception("System error 10050. Entity: search creation Message: " + response.Message);
                        }
                    }
                }
                #endregion
            }
            #endregion

            #region << ***Create field***  Entity: search Field Name: item_id >>
            {
                InputGuidField guidField = new InputGuidField();
                guidField.Id                    = new Guid("99379d7b-defe-4e62-b9ee-b32f79d9429e");
                guidField.Name                  = "item_id";
                guidField.Label                 = "Item ID";
                guidField.PlaceholderText       = "";
                guidField.Description           = "";
                guidField.HelpText              = "";
                guidField.Required              = true;
                guidField.Unique                = true;
                guidField.Searchable            = true;
                guidField.Auditable             = false;
                guidField.System                = true;
                guidField.DefaultValue          = Guid.Parse("00000000-0000-0000-0000-000000000000");
                guidField.GenerateNewId         = true;
                guidField.EnableSecurity        = false;
                guidField.Permissions           = new FieldPermissions();
                guidField.Permissions.CanRead   = new List <Guid>();
                guidField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), guidField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: item_id Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: search Field Name: entity >>
            {
                InputTextField textboxField = new InputTextField();
                textboxField.Id                    = new Guid("c5ba7772-db1c-407f-841d-36ca15abbe69");
                textboxField.Name                  = "entity";
                textboxField.Label                 = "Entity";
                textboxField.PlaceholderText       = "";
                textboxField.Description           = "";
                textboxField.HelpText              = "";
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = true;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = "entity";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), textboxField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: entity Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: search Field Name: index >>
            {
                InputTextField textboxField = new InputTextField();
                textboxField.Id                    = new Guid("5ef4a0e0-3e47-4e22-8ae4-fb25207ed7cf");
                textboxField.Name                  = "index";
                textboxField.Label                 = "Index";
                textboxField.PlaceholderText       = "";
                textboxField.Description           = "";
                textboxField.HelpText              = "";
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = true;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = "ddddd";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), textboxField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: index Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: search Field Name: snippet >>
            {
                InputTextField textboxField = new InputTextField();
                textboxField.Id                    = new Guid("c43dc119-aebe-4114-820d-6d888cda115c");
                textboxField.Name                  = "snippet";
                textboxField.Label                 = "Snippet";
                textboxField.PlaceholderText       = "";
                textboxField.Description           = "";
                textboxField.HelpText              = "";
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = false;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = "search snippet";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), textboxField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: snippet Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: search Field Name: url >>
            {
                InputUrlField urlField = new InputUrlField();
                urlField.Id                    = new Guid("e0324495-06f3-4c03-aea0-4f1ef6357ba4");
                urlField.Name                  = "url";
                urlField.Label                 = "Url";
                urlField.PlaceholderText       = "";
                urlField.Description           = "";
                urlField.HelpText              = "";
                urlField.Required              = true;
                urlField.Unique                = false;
                urlField.Searchable            = false;
                urlField.Auditable             = false;
                urlField.System                = true;
                urlField.DefaultValue          = "/";
                urlField.MaxLength             = null;
                urlField.OpenTargetInNewWindow = false;
                urlField.EnableSecurity        = false;
                urlField.Permissions           = new FieldPermissions();
                urlField.Permissions.CanRead   = new List <Guid>();
                urlField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), urlField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: url Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: search Field Name: title >>
            {
                InputTextField textboxField = new InputTextField();
                textboxField.Id                    = new Guid("53370748-600d-446e-8995-6bb02785642a");
                textboxField.Name                  = "title";
                textboxField.Label                 = "Title";
                textboxField.PlaceholderText       = "";
                textboxField.Description           = "";
                textboxField.HelpText              = "";
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = false;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = "Search Title";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), textboxField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: title Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: search Field Name: project_id >>
            {
                InputGuidField guidField = new InputGuidField();
                guidField.Id                    = new Guid("5b24518d-4dcc-46de-b2d6-d7947dbcceee");
                guidField.Name                  = "project_id";
                guidField.Label                 = "Project ID";
                guidField.PlaceholderText       = "";
                guidField.Description           = "";
                guidField.HelpText              = "";
                guidField.Required              = true;
                guidField.Unique                = false;
                guidField.Searchable            = true;
                guidField.Auditable             = false;
                guidField.System                = true;
                guidField.DefaultValue          = Guid.Parse("00000000-0000-0000-0000-000000000000");
                guidField.GenerateNewId         = false;
                guidField.EnableSecurity        = false;
                guidField.Permissions           = new FieldPermissions();
                guidField.Permissions.CanRead   = new List <Guid>();
                guidField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), guidField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: project_id Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << View  Entity: wv_project name: search >>
            {
                var createViewEntity = entMan.ReadEntity(new Guid("7821ece9-42ce-470b-84d4-afc9eb35aa32")).Object;
                var createViewInput  = new InputRecordView();

                #region << details >>
                createViewInput.Id                  = new Guid("2010d57a-4a01-48e6-9a75-53ae63af9110");
                createViewInput.Type                = "General";
                createViewInput.Name                = "search";
                createViewInput.Label               = "search";
                createViewInput.Title               = "[{code}] {name}";
                createViewInput.Default             = false;
                createViewInput.System              = true;
                createViewInput.Weight              = Decimal.Parse("10");
                createViewInput.CssClass            = null;
                createViewInput.IconName            = "tachometer";
                createViewInput.DynamicHtmlTemplate = "/plugins/webvella-projects/templates/search.html";
                createViewInput.DataSourceUrl       = null;
                createViewInput.ServiceCode         = null;
                #endregion

                #region << regions >>
                createViewInput.Regions = new List <InputRecordViewRegion>();

                #region << Region: header >>
                {
                    var viewRegion = new InputRecordViewRegion();
                    viewRegion.Name     = "header";
                    viewRegion.Label    = "Header";
                    viewRegion.Render   = true;
                    viewRegion.Weight   = Decimal.Parse("1");
                    viewRegion.CssClass = "";
                    viewRegion.Sections = new List <InputRecordViewSection>();

                    //Save region
                    createViewInput.Regions.Add(viewRegion);
                }
                #endregion

                #endregion

                #region << Relation options >>
                {
                    createViewInput.RelationOptions = new List <EntityRelationOptionsItem>();
                }
                #endregion

                #region << Action items >>
                {
                    createViewInput.ActionItems = new List <ActionItem>();

                    #region << action item: wv_record_delete >>
                    {
                        var actionItem = new ActionItem();
                        actionItem.Name     = "wv_record_delete";
                        actionItem.Menu     = "page-title-dropdown";
                        actionItem.Weight   = Decimal.Parse("1");
                        actionItem.Template = @"<a href=""javascript:void(0)"" confirmed-click=""ngCtrl.deleteRecord(ngCtrl)"" ng-confirm-click=""Are you sure?""
										ng-if=""::ngCtrl.userHasRecordPermissions('canDelete')"">
									<i class=""fa fa-trash go-red""></i> Delete Record
								</a>"                                ;
                        createViewInput.ActionItems.Add(actionItem);
                    }
                    #endregion

                    #region << action item: wv_back_button >>
                    {
                        var actionItem = new ActionItem();
                        actionItem.Name     = "wv_back_button";
                        actionItem.Menu     = "sidebar-top";
                        actionItem.Weight   = Decimal.Parse("1");
                        actionItem.Template = @"<a class=""back clearfix"" href=""javascript:void(0)"" ng-click=""sidebarData.goBack()""><i class=""fa fa-fw fa-arrow-left""></i> <span class=""text"">Back</span></a>";
                        createViewInput.ActionItems.Add(actionItem);
                    }
                    #endregion
                }
                #endregion

                #region << Sidebar >>
                createViewInput.Sidebar          = new InputRecordViewSidebar();
                createViewInput.Sidebar.CssClass = "";
                createViewInput.Sidebar.Render   = true;
                createViewInput.Sidebar.Items    = new List <InputRecordViewSidebarItemBase>();

                #region << list from relation: project_tasks >>
                {
                    var viewItemFromRelation = new InputRecordViewSidebarRelationListItem();
                    viewItemFromRelation.EntityId         = new Guid("65acced0-1650-4ff0-bbff-9937c382cd89");
                    viewItemFromRelation.EntityName       = "wv_task";
                    viewItemFromRelation.ListId           = new Guid("44f8ed83-b7e8-4223-b02e-b5e35ed4bcc1");
                    viewItemFromRelation.ListName         = "project_tasks";
                    viewItemFromRelation.FieldLabel       = "Tasks";
                    viewItemFromRelation.FieldPlaceholder = "";
                    viewItemFromRelation.FieldHelpText    = "";
                    viewItemFromRelation.FieldRequired    = false;
                    viewItemFromRelation.FieldManageView  = "general";
                    viewItemFromRelation.FieldLookupList  = "lookup";
                    viewItemFromRelation.RelationId       = new Guid("1f860b8c-7fa1-40fa-874f-19c2b5309817");
                    viewItemFromRelation.RelationName     = "project_1_n_task";
                    viewItemFromRelation.Type             = "listFromRelation";
                    createViewInput.Sidebar.Items.Add(viewItemFromRelation);
                }
                #endregion

                #region << list from relation: project_milestones >>
                {
                    var viewItemFromRelation = new InputRecordViewSidebarRelationListItem();
                    viewItemFromRelation.EntityId         = new Guid("d691b634-016c-46ef-8ba8-8c3328797497");
                    viewItemFromRelation.EntityName       = "wv_milestone";
                    viewItemFromRelation.ListId           = new Guid("92b40989-c3a2-4a06-869a-789fba54e733");
                    viewItemFromRelation.ListName         = "project_milestones";
                    viewItemFromRelation.FieldLabel       = "Milestones";
                    viewItemFromRelation.FieldPlaceholder = "";
                    viewItemFromRelation.FieldHelpText    = "";
                    viewItemFromRelation.FieldRequired    = false;
                    viewItemFromRelation.FieldManageView  = "general";
                    viewItemFromRelation.FieldLookupList  = "lookup";
                    viewItemFromRelation.RelationId       = new Guid("0c446f98-eec2-40c1-9d66-8a3c2a2498e9");
                    viewItemFromRelation.RelationName     = "project_1_n_milestone";
                    viewItemFromRelation.Type             = "listFromRelation";
                    createViewInput.Sidebar.Items.Add(viewItemFromRelation);
                }
                #endregion

                #region << list from relation: project_bugs >>
                {
                    var viewItemFromRelation = new InputRecordViewSidebarRelationListItem();
                    viewItemFromRelation.EntityId         = new Guid("c11655fa-e4a3-4c2b-8f1e-0a6d87cfd20c");
                    viewItemFromRelation.EntityName       = "wv_bug";
                    viewItemFromRelation.ListId           = new Guid("3b2ebe34-1d02-448a-9616-5b62538fe2c7");
                    viewItemFromRelation.ListName         = "project_bugs";
                    viewItemFromRelation.FieldLabel       = "Bugs";
                    viewItemFromRelation.FieldPlaceholder = "";
                    viewItemFromRelation.FieldHelpText    = "";
                    viewItemFromRelation.FieldRequired    = false;
                    viewItemFromRelation.FieldManageView  = "general";
                    viewItemFromRelation.FieldLookupList  = "lookup";
                    viewItemFromRelation.RelationId       = new Guid("d94f100c-024c-47e7-af32-d67a49be2b6c");
                    viewItemFromRelation.RelationName     = "project_1_n_bug";
                    viewItemFromRelation.Type             = "listFromRelation";
                    createViewInput.Sidebar.Items.Add(viewItemFromRelation);
                }
                #endregion

                #region << View: general >>
                {
                    var viewItem = new InputRecordViewSidebarViewItem();
                    viewItem.EntityId   = new Guid("7821ece9-42ce-470b-84d4-afc9eb35aa32");
                    viewItem.EntityName = "wv_project";
                    viewItem.ViewId     = new Guid("211f028b-4e8e-418f-9c0e-78109f0839fc");
                    viewItem.ViewName   = "general";
                    viewItem.Type       = "view";
                    createViewInput.Sidebar.Items.Add(viewItem);
                }
                #endregion

                #endregion
                {
                    var response = entMan.CreateRecordView(new Guid("7821ece9-42ce-470b-84d4-afc9eb35aa32"), createViewInput);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: wv_project Updated view: search Message:" + response.Message);
                    }
                }
            }
            #endregion
        }
        private static void Patch20180913(EntityManager entMan, EntityRelationManager relMan, RecordManager recMan, bool createSampleRecords = false)
        {
            #region << ***Update area***  Area name: projects >>
            {
                var patchObject = new EntityRecord();
                patchObject["id"]          = new Guid("205877a1-242c-41bf-a080-49ea01d4f519");
                patchObject["attachments"] = "[{\"name\":null,\"label\":\"My Dashboard\",\"labelPlural\":null,\"iconName\":\"tachometer\",\"weight\":1,\"url\":\"/#/areas/projects/wv_project/dashboard\",\"view\":null,\"create\":null,\"list\":null},{\"name\":null,\"label\":\"Search\",\"url\":\"/#/areas/projects/wv_project/search\",\"labelPlural\":null,\"iconName\":\"search\",\"weight\":\"2\",\"view\":null,\"list\":null,\"create\":null},{\"name\":\"wv_task\",\"label\":\"Task\",\"labelPlural\":\"Tasks\",\"iconName\":\"tasks\",\"weight\":4,\"url\":null,\"view\":{\"name\":\"general\",\"label\":\"Details\"},\"create\":{\"name\":\"create\",\"label\":\"Create\"},\"list\":{\"name\":\"my_tasks\",\"label\":\"My open tasks\"}},{\"name\":\"wv_bug\",\"label\":\"Bug\",\"labelPlural\":\"Bugs\",\"iconName\":\"bug\",\"weight\":5,\"url\":null,\"view\":{\"name\":\"general\",\"label\":\"Details\"},\"create\":{\"name\":\"create\",\"label\":\"Create\"},\"list\":{\"name\":\"my_bugs\",\"label\":\"My open bugs\"}},{\"name\":\"wv_project\",\"label\":\"Project\",\"labelPlural\":\"Projects\",\"iconName\":\"product-hunt\",\"weight\":22,\"url\":null,\"view\":{\"name\":\"dashboard\",\"label\":\"Dashboard\"},\"create\":{\"name\":\"create\",\"label\":\"Create\"},\"list\":{\"name\":\"my_projects\",\"label\":\"My Projects\"}},{\"name\":null,\"label\":\"My Sprints\",\"url\":\"/#/areas/projects/wv_project/sprints\",\"labelPlural\":null,\"iconName\":\"fast-forward\",\"weight\":\"50\",\"view\":null,\"list\":null,\"create\":null}]";
                var updateAreaResult = recMan.UpdateRecord("area", patchObject);
                if (!updateAreaResult.Success)
                {
                    throw new Exception("System error 10060. Area update with name : projects. Message:" + updateAreaResult.Message);
                }
            }
            #endregion

            #region << ***Update field***  Entity: search Field Name: created_on >>
            {
                var currentEntity = entMan.ReadEntity(new Guid("171659b7-79a3-457e-844b-6c954b59420f")).Object;
                InputDateTimeField datetimeField = new InputDateTimeField();
                datetimeField.Id              = currentEntity.Fields.SingleOrDefault(x => x.Name == "created_on").Id;
                datetimeField.Name            = "created_on";
                datetimeField.Label           = "Created On";
                datetimeField.PlaceholderText = "";
                datetimeField.Description     = "";
                datetimeField.HelpText        = "";
                datetimeField.Required        = false;
                datetimeField.Unique          = false;
                datetimeField.Searchable      = true;
                datetimeField.Auditable       = false;
                datetimeField.System          = true;
                datetimeField.DefaultValue    = null;
                datetimeField.Format          = "dd MMM yyyy HH:mm";
                datetimeField.UseCurrentTimeAsDefaultValue = true;
                datetimeField.EnableSecurity        = false;
                datetimeField.Permissions           = new FieldPermissions();
                datetimeField.Permissions.CanRead   = new List <Guid>();
                datetimeField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.UpdateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), datetimeField);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: created_on Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Update field***  Entity: search Field Name: index >>
            {
                var            currentEntity = entMan.ReadEntity(new Guid("171659b7-79a3-457e-844b-6c954b59420f")).Object;
                InputTextField textboxField  = new InputTextField();
                textboxField.Id                    = currentEntity.Fields.SingleOrDefault(x => x.Name == "index").Id;
                textboxField.Name                  = "index";
                textboxField.Label                 = "Index";
                textboxField.PlaceholderText       = "";
                textboxField.Description           = "";
                textboxField.HelpText              = "";
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = false;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = "ddddd";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.UpdateField(new Guid("171659b7-79a3-457e-844b-6c954b59420f"), textboxField);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: search Field: index Message:" + response.Message);
                    }
                }
            }
            #endregion
        }
示例#14
0
        private static void Patch160430(EntityManager entMan, EntityRelationManager relMan, RecordManager recMan, bool createSampleRecords = false)
        {
            #region << Create CRM admin area >>
            //The areas are the main object for navigation for the user. You can attach entities and URLs later to them
            {
                var area = new EntityRecord();
                area["id"]        = CRM_ADMIN_AREA_ID;
                area["name"]      = "crm_admin";
                area["label"]     = "CRM Admin";
                area["icon_name"] = "users";
                area["color"]     = "pink";
                area["folder"]    = "Admin";
                area["weight"]    = 100;
                var areaRoles = new List <Guid>();
                areaRoles.Add(SystemIds.AdministratorRoleId);
                area["roles"] = JsonConvert.SerializeObject(areaRoles);
                var createAreaResult = recMan.CreateRecord("area", area);
                if (!createAreaResult.Success)
                {
                    throw new Exception("System error 10060. Area create with name : project_admin. Message:" + createAreaResult.Message);
                }
            }
            #endregion

            #region << wv_customer >>
            {
                #region << entity >>
                {
                    InputEntity entity = new InputEntity();
                    entity.Id                          = CUSTOMER_ENTITY_ID;
                    entity.Name                        = CUSTOMER_ENTITY_NAME;
                    entity.Label                       = "Customer";
                    entity.LabelPlural                 = "Customers";
                    entity.System                      = true;
                    entity.IconName                    = "building-o";
                    entity.Weight                      = 2;
                    entity.RecordPermissions           = new RecordPermissions();
                    entity.RecordPermissions.CanCreate = new List <Guid>();
                    entity.RecordPermissions.CanRead   = new List <Guid>();
                    entity.RecordPermissions.CanUpdate = new List <Guid>();
                    entity.RecordPermissions.CanDelete = new List <Guid>();
                    //Create
                    entity.RecordPermissions.CanCreate.Add(SystemIds.AdministratorRoleId);
                    entity.RecordPermissions.CanCreate.Add(SystemIds.RegularRoleId);
                    //READ
                    entity.RecordPermissions.CanRead.Add(SystemIds.AdministratorRoleId);
                    entity.RecordPermissions.CanRead.Add(SystemIds.RegularRoleId);
                    //UPDATE
                    entity.RecordPermissions.CanUpdate.Add(SystemIds.AdministratorRoleId);
                    entity.RecordPermissions.CanUpdate.Add(SystemIds.RegularRoleId);
                    //System fields and relations Ids should be hardcoded for the compare/change code generation to work later on correctly
                    var systemItemIdDictionary = new Dictionary <string, Guid>();
                    systemItemIdDictionary["id"]                           = new Guid("e8564a56-9917-4c45-a264-4c080f2d2b31");
                    systemItemIdDictionary["created_on"]                   = new Guid("1ca9c660-0042-47b3-91c7-e0f2b817633c");
                    systemItemIdDictionary["created_by"]                   = new Guid("12c29d6a-b5e5-4293-9e8a-91475d10dac9");
                    systemItemIdDictionary["last_modified_on"]             = new Guid("b6a172aa-b50a-403f-a178-f923a0d7576f");
                    systemItemIdDictionary["last_modified_by"]             = new Guid("6aab2af3-6909-4f8d-8c54-6a2403d6a25a");
                    systemItemIdDictionary["user_wv_customer_created_by"]  = new Guid("2d2045f4-0553-4ffd-bd12-cbef17aea14a");
                    systemItemIdDictionary["user_wv_customer_modified_by"] = new Guid("2ba6c8c5-2550-4f26-8611-f397c529a61c");
                    {
                        var response = entMan.CreateEntity(entity, false, false, systemItemIdDictionary);
                        if (!response.Success)
                        {
                            throw new Exception("System error 10050. Entity: " + CUSTOMER_ENTITY_NAME + " Field: entity creation" + " Message:" + response.Message);
                        }
                    }
                }
                #endregion

                #region << name >>
                {
                    InputTextField textboxField = new InputTextField();
                    textboxField.Id                    = new Guid("7fb95d0f-ab59-421d-974d-ab357e28a1f9");
                    textboxField.Name                  = "name";
                    textboxField.Label                 = "Name";
                    textboxField.PlaceholderText       = "";
                    textboxField.Description           = "";
                    textboxField.HelpText              = "";
                    textboxField.Required              = true;
                    textboxField.Unique                = false;
                    textboxField.Searchable            = true;
                    textboxField.Auditable             = false;
                    textboxField.System                = true;
                    textboxField.DefaultValue          = string.Empty;
                    textboxField.MaxLength             = null;
                    textboxField.EnableSecurity        = true;
                    textboxField.Permissions           = new FieldPermissions();
                    textboxField.Permissions.CanRead   = new List <Guid>();
                    textboxField.Permissions.CanUpdate = new List <Guid>();
                    //READ
                    textboxField.Permissions.CanRead.Add(SystemIds.AdministratorRoleId);
                    textboxField.Permissions.CanRead.Add(SystemIds.RegularRoleId);
                    //UPDATE
                    textboxField.Permissions.CanUpdate.Add(SystemIds.AdministratorRoleId);
                    {
                        var response = entMan.CreateField(CUSTOMER_ENTITY_ID, textboxField, false);
                        if (!response.Success)
                        {
                            throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Field: name" + " Message:" + response.Message);
                        }
                    }
                }
                #endregion
            }
            #endregion

            #region << View name: admin_details >>
            {
                var createViewEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                var createViewInput  = new InputRecordView();
                var viewRegion       = new InputRecordViewRegion();
                var viewSection      = new InputRecordViewSection();
                var viewRow          = new InputRecordViewRow();
                var viewColumn       = new InputRecordViewColumn();
                var viewItem         = new InputRecordViewFieldItem();

                #region << details >>
                createViewInput.Id                  = new Guid("3a0e1319-5357-49ec-9e85-8d9be2363fcf");
                createViewInput.Type                = "hidden";
                createViewInput.Name                = "admin_details";
                createViewInput.Label               = "Details";
                createViewInput.Title               = "";
                createViewInput.Default             = false;
                createViewInput.System              = true;
                createViewInput.Weight              = 15;
                createViewInput.CssClass            = null;
                createViewInput.IconName            = "building-o";
                createViewInput.DynamicHtmlTemplate = null;
                createViewInput.DataSourceUrl       = null;
                createViewInput.ServiceCode         = null;
                createViewInput.Regions             = new List <InputRecordViewRegion>();
                #endregion

                #region << Header Region >>
                viewRegion          = new InputRecordViewRegion();
                viewRegion.Name     = "header";
                viewRegion.Label    = "Header";
                viewRegion.Render   = true;
                viewRegion.Weight   = 1;
                viewRegion.CssClass = "";
                viewRegion.Sections = new List <InputRecordViewSection>();

                #region << Section >>
                viewSection           = new InputRecordViewSection();
                viewSection.Id        = new Guid("201882a6-c1f8-4f84-878d-fddfacdcb2d7");
                viewSection.Name      = "details";
                viewSection.Label     = "Details";
                viewSection.ShowLabel = false;
                viewSection.CssClass  = "";
                viewSection.Collapsed = false;
                viewSection.TabOrder  = "left-right";
                viewSection.Weight    = 1;
                viewSection.Rows      = new List <InputRecordViewRow>();

                #region << Row >>
                viewRow         = new InputRecordViewRow();
                viewRow.Id      = new Guid("ce09fdad-bb23-4f7f-b64b-190fec656711");
                viewRow.Weight  = 1;
                viewRow.Columns = new List <InputRecordViewColumn>();

                #region << Column 1 >>
                viewColumn = new InputRecordViewColumn();
                viewColumn.GridColCount = 12;
                viewColumn.Items        = new List <InputRecordViewItemBase>();


                #region << name >>
                {
                    viewItem            = new InputRecordViewFieldItem();
                    viewItem.EntityId   = CUSTOMER_ENTITY_ID;
                    viewItem.EntityName = CUSTOMER_ENTITY_NAME;
                    viewItem.FieldId    = createViewEntity.Fields.Single(x => x.Name == "name").Id;
                    viewItem.FieldName  = "name";
                    viewItem.Type       = "field";
                    viewColumn.Items.Add(viewItem);
                }
                #endregion


                //Save column
                viewRow.Columns.Add(viewColumn);
                #endregion

                //Save row
                viewSection.Rows.Add(viewRow);
                #endregion

                //Save section
                viewRegion.Sections.Add(viewSection);
                #endregion

                //Save region
                createViewInput.Regions.Add(viewRegion);
                #endregion

                #region << relation options >>
                createViewInput.RelationOptions = new List <EntityRelationOptionsItem>();
                #endregion

                #region << Sidebar >>
                createViewInput.Sidebar          = new InputRecordViewSidebar();
                createViewInput.Sidebar.CssClass = "";
                createViewInput.Sidebar.Render   = true;
                createViewInput.Sidebar.Render   = true;
                createViewInput.Sidebar.Items    = new List <InputRecordViewSidebarItemBase>();
                #endregion

                #region << action items >>
                createViewInput.ActionItems = new List <ActionItem>();
                var actionItem = new ActionItem();
                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_record_delete";
                    actionItem.Menu     = "page-title-dropdown";
                    actionItem.Weight   = 1;
                    actionItem.Template = "" +
                                          @"<a href=""javascript:void(0)"" confirmed-click=""ngCtrl.deleteRecord(ngCtrl)"" ng-confirm-click=""Are you sure?""
										ng-if=""::ngCtrl.userHasRecordPermissions('canDelete')"">
									<i class=""fa fa-trash go-red""></i> Delete Record
								</a>"                                ;
                    createViewInput.ActionItems.Add(actionItem);
                }
                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_back_button";
                    actionItem.Menu     = "sidebar-top";
                    actionItem.Weight   = 1;
                    actionItem.Template = "" +
                                          @"<a class=""back clearfix"" href=""javascript:void(0)"" ng-click=""sidebarData.goBack()""><i class=""fa fa-fw fa-arrow-left""></i> <span class=""text"">Back</span></a>";
                    createViewInput.ActionItems.Add(actionItem);
                }
                #endregion

                {
                    var response = entMan.CreateRecordView(CUSTOMER_ENTITY_ID, createViewInput);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Updated view: admin_details" + " Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << View name: admin_create >>
            {
                var createViewEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                var createViewInput  = new InputRecordView();
                var viewRegion       = new InputRecordViewRegion();
                var viewSection      = new InputRecordViewSection();
                var viewRow          = new InputRecordViewRow();
                var viewColumn       = new InputRecordViewColumn();
                var viewItem         = new InputRecordViewFieldItem();

                #region << details >>
                createViewInput.Id                  = new Guid("93043954-ae70-41a3-b4b7-665531a23a76");
                createViewInput.Type                = "create";
                createViewInput.Name                = "admin_create";
                createViewInput.Label               = "Create customer";
                createViewInput.Title               = "";
                createViewInput.Default             = false;
                createViewInput.System              = true;
                createViewInput.Weight              = 25;
                createViewInput.CssClass            = null;
                createViewInput.IconName            = "building-o";
                createViewInput.DynamicHtmlTemplate = null;
                createViewInput.DataSourceUrl       = null;
                createViewInput.ServiceCode         = null;
                createViewInput.Regions             = new List <InputRecordViewRegion>();
                #endregion

                #region << Header Region >>
                viewRegion          = new InputRecordViewRegion();
                viewRegion.Name     = "header";
                viewRegion.Label    = "Header";
                viewRegion.Render   = true;
                viewRegion.Weight   = 1;
                viewRegion.CssClass = "";
                viewRegion.Sections = new List <InputRecordViewSection>();

                #region << Section >>
                viewSection           = new InputRecordViewSection();
                viewSection.Id        = new Guid("8d82e33e-139a-4c80-99ac-3721138bdc65");
                viewSection.Name      = "details";
                viewSection.Label     = "Details";
                viewSection.ShowLabel = false;
                viewSection.CssClass  = "";
                viewSection.Collapsed = false;
                viewSection.TabOrder  = "left-right";
                viewSection.Weight    = 1;
                viewSection.Rows      = new List <InputRecordViewRow>();

                #region << Row >>
                viewRow         = new InputRecordViewRow();
                viewRow.Id      = new Guid("cdc2da04-f92a-47e1-9259-6526816fe84d");
                viewRow.Weight  = 1;
                viewRow.Columns = new List <InputRecordViewColumn>();

                #region << Column 1 >>
                viewColumn = new InputRecordViewColumn();
                viewColumn.GridColCount = 12;
                viewColumn.Items        = new List <InputRecordViewItemBase>();


                #region << name >>
                {
                    viewItem            = new InputRecordViewFieldItem();
                    viewItem.EntityId   = CUSTOMER_ENTITY_ID;
                    viewItem.EntityName = CUSTOMER_ENTITY_NAME;
                    viewItem.FieldId    = createViewEntity.Fields.Single(x => x.Name == "name").Id;
                    viewItem.FieldName  = "name";
                    viewItem.Type       = "field";
                    viewColumn.Items.Add(viewItem);
                }
                #endregion


                //Save column
                viewRow.Columns.Add(viewColumn);
                #endregion

                //Save row
                viewSection.Rows.Add(viewRow);
                #endregion

                //Save section
                viewRegion.Sections.Add(viewSection);
                #endregion

                //Save region
                createViewInput.Regions.Add(viewRegion);
                #endregion

                #region << relation options >>
                createViewInput.RelationOptions = new List <EntityRelationOptionsItem>();
                #endregion

                #region << Sidebar >>
                createViewInput.Sidebar          = new InputRecordViewSidebar();
                createViewInput.Sidebar.CssClass = "";
                createViewInput.Sidebar.Render   = true;
                createViewInput.Sidebar.Render   = true;
                createViewInput.Sidebar.Items    = new List <InputRecordViewSidebarItemBase>();
                #endregion

                #region << action items >>
                createViewInput.ActionItems = new List <ActionItem>();
                var actionItem = new ActionItem();

                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_create_and_list";
                    actionItem.Menu     = "create-bottom";
                    actionItem.Weight   = 1;
                    actionItem.Template = "" +
                                          @"<a class=""btn btn-primary"" ng-click='ngCtrl.create(""default"")' ng-if=""ngCtrl.createViewRegion != null"">Create</a>";
                    createViewInput.ActionItems.Add(actionItem);
                }
                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_create_and_details";
                    actionItem.Menu     = "create-bottom";
                    actionItem.Weight   = 2;
                    actionItem.Template = "" +
                                          @"<a class=""btn btn-default btn-outline"" ng-click='ngCtrl.create(""details"")' ng-if=""ngCtrl.createViewRegion != null"">Create & Details</a>";
                    createViewInput.ActionItems.Add(actionItem);
                }
                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_create_cancel";
                    actionItem.Menu     = "create-bottom";
                    actionItem.Weight   = 3;
                    actionItem.Template = "" +
                                          @"<a class=""btn btn-default btn-outline"" ng-click=""ngCtrl.cancel()"">Cancel</a>";
                    createViewInput.ActionItems.Add(actionItem);
                }
                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_back_button";
                    actionItem.Menu     = "sidebar-top";
                    actionItem.Weight   = 1;
                    actionItem.Template = "" +
                                          @"<a class=""back clearfix"" href=""javascript:void(0)"" ng-click=""sidebarData.goBack()""><i class=""fa fa-fw fa-arrow-left""></i> <span class=""text"">Back</span></a>";
                    createViewInput.ActionItems.Add(actionItem);
                }
                #endregion
                {
                    var response = entMan.CreateRecordView(CUSTOMER_ENTITY_ID, createViewInput);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Updated view: admin_create" + " Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << List name: admin >>
            {
                var createListEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                var createListInput  = new InputRecordList();
                var listItem         = new InputRecordListFieldItem();
                var listSort         = new InputRecordListSort();
                var listQuery        = new InputRecordListQuery();

                #region << details >>
                createListInput.Id                  = new Guid("ff15f200-8e68-4683-8576-4c8244405ca9");
                createListInput.Type                = "hidden";
                createListInput.Name                = "admin";
                createListInput.Label               = "Customers";
                createListInput.Weight              = 11;
                createListInput.Default             = false;
                createListInput.System              = true;
                createListInput.CssClass            = null;
                createListInput.IconName            = "building-o";
                createListInput.VisibleColumnsCount = 7;
                createListInput.ColumnWidthsCSV     = null;
                createListInput.PageSize            = 10;
                createListInput.DynamicHtmlTemplate = null;
                createListInput.DataSourceUrl       = null;
                createListInput.ServiceCode         = null;
                #endregion

                #region << action items >>
                createListInput.ActionItems = new List <ActionItem>();
                var actionItem = new ActionItem();
                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_record_details";
                    actionItem.Menu     = "record-row";
                    actionItem.Weight   = 1;
                    actionItem.Template = "" +
                                          @"<a class=""btn btn-default btn-outline"" ng-href=""{{::ngCtrl.getRecordDetailsUrl(record, ngCtrl)}}"">
							<i class=""fa fa-fw fa-eye""></i>
							</a>"                            ;
                    createListInput.ActionItems.Add(actionItem);
                }
                {
                    actionItem          = new ActionItem();
                    actionItem.Name     = "wv_create_record";
                    actionItem.Menu     = "page-title";
                    actionItem.Weight   = 1;
                    actionItem.Template = "" +
                                          @"<a class=""btn btn-default btn-outline hidden-xs"" ng-show=""::ngCtrl.userHasRecordPermissions('canCreate')"" 
    ng-href=""{{::ngCtrl.getRecordCreateUrl(ngCtrl)}}"">Add New</a>";
                    createListInput.ActionItems.Add(actionItem);
                }
                #endregion

                #region << Columns >>
                createListInput.Columns = new List <InputRecordListItemBase>();
                #region << name >>
                {
                    var fieldName = "name";
                    listItem            = new InputRecordListFieldItem();
                    listItem.EntityId   = CUSTOMER_ENTITY_ID;
                    listItem.EntityName = CUSTOMER_ENTITY_NAME;
                    listItem.FieldId    = createListEntity.Fields.Single(x => x.Name == fieldName).Id;
                    listItem.FieldName  = fieldName;
                    listItem.Type       = "field";
                    createListInput.Columns.Add(listItem);
                }
                #endregion

                #endregion

                #region << relation options >>
                createListInput.RelationOptions = new List <EntityRelationOptionsItem>();
                #endregion

                #region << query >>
                listQuery = new InputRecordListQuery();
                #endregion

                #region << Sort >>
                listSort = new InputRecordListSort();
                #endregion
                {
                    var response = entMan.CreateRecordList(CUSTOMER_ENTITY_ID, createListInput);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: " + CUSTOMER_ENTITY_NAME + " Updated List: admin" + " Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << area add subscription: CRM Admin -> Customer >>
            {
                var updatedAreaId    = CRM_ADMIN_AREA_ID;
                var updateAreaResult = Helpers.UpsertEntityAsAreaSubscription(entMan, recMan, updatedAreaId, CUSTOMER_ENTITY_NAME, "admin_details", "admin_create", "admin");
                if (!updateAreaResult.Success)
                {
                    throw new Exception("System error 10060. Area update with id : " + updatedAreaId + " Message:" + updateAreaResult.Message);
                }
            }
            #endregion

            #region << customer lookup list >>
            {
                var createListEntity = entMan.ReadEntity(CUSTOMER_ENTITY_ID).Object;
                var createListInput  = new InputRecordList();
                var listItem         = new InputRecordListFieldItem();
                var listSort         = new InputRecordListSort();
                var listQuery        = new InputRecordListQuery();

                //General list details
                createListInput.Id                  = new Guid("2287d4dc-0e9e-4c00-a1d4-cc2b8bf0f315");
                createListInput.Name                = "lookup";
                createListInput.Label               = "Lookup";
                createListInput.Type                = "lookup";
                createListInput.Default             = true;
                createListInput.VisibleColumnsCount = 5;
                createListInput.System              = true;
                createListInput.Weight              = 10;
                createListInput.CssClass            = null;
                createListInput.IconName            = "list";
                createListInput.Columns             = new List <InputRecordListItemBase>();
                //Fields
                #region << name >>
                listItem            = new InputRecordListFieldItem();
                listItem.EntityId   = CUSTOMER_ENTITY_ID;
                listItem.EntityName = "customer";
                listItem.FieldId    = createListEntity.Fields.Single(x => x.Name == "name").Id;
                listItem.FieldName  = "name";
                listItem.Type       = "field";
                createListInput.Columns.Add(listItem);
                #endregion

                //Query
                #region << query descr >>
                listQuery = new InputRecordListQuery();
                #endregion


                //Sort
                #region << Sort >>
                createListInput.Sorts = new List <InputRecordListSort>();
                listSort           = new InputRecordListSort();
                listSort.FieldName = "name";
                listSort.SortType  = "ascending";
                createListInput.Sorts.Add(listSort);
                #endregion

                var newActionItemList = new List <ActionItem>();
                {
                    var actionItem = new ActionItem();
                    actionItem.Name     = "wv_create_record";
                    actionItem.Menu     = "page-title";
                    actionItem.Template = "<a class=\"btn btn-default btn-outline hidden-xs\" ng-show=\"::ngCtrl.userHasRecordPermissions('canCreate')\" \n    ng-href=\"{{::ngCtrl.getRecordCreateUrl()}}\">Add New</a>";
                    actionItem.Weight   = 1;
                    newActionItemList.Add(actionItem);
                }
                {
                    var actionItem = new ActionItem();
                    actionItem.Name     = "wv_record_details";
                    actionItem.Menu     = "record-row";
                    actionItem.Template = "<a class=\"btn btn-default btn-outline\" ng-href=\"{{::ngCtrl.getRecordDetailsUrl(record)}}\">\n    <i class=\"fa fa-fw fa-eye\"></i>\n</a>";
                    actionItem.Weight   = 1;
                    newActionItemList.Add(actionItem);
                }

                createListInput.ActionItems = newActionItemList;

                {
                    var responseObject = entMan.CreateRecordList(CUSTOMER_ENTITY_ID, createListInput);
                    if (!responseObject.Success)
                    {
                        throw new Exception("System error 10060. Entity: " + "user" + " Updated List: list_name" + " Message:" + responseObject.Message);
                    }
                }
            }
            #endregion

            if (createSampleRecords)
            {
                #region << Create Sample Customer >>
                {
                    var sampleRecord = new EntityRecord();
                    sampleRecord["id"]   = new Guid("fb06213f-7632-495b-bb8d-ed5ff07dc515");
                    sampleRecord["name"] = "Buckley Miller & Wright";
                    var createSampleRecordResult = recMan.CreateRecord(CUSTOMER_ENTITY_NAME, sampleRecord);
                    if (!createSampleRecordResult.Success)
                    {
                        throw new Exception("System error 10060. Create sample record. Message:" + createSampleRecordResult.Message);
                    }
                }
                #endregion

                #region << Create Sample Customer User >>
                {
                    var sampleRecord = new EntityRecord();
                    sampleRecord["id"]         = new Guid("307fe376-a1c6-495e-a7c0-2a78797565f2");
                    sampleRecord["first_name"] = "Sample";
                    sampleRecord["last_name"]  = "Customer";
                    sampleRecord["username"]   = "******";
                    sampleRecord["email"]      = "*****@*****.**";
                    sampleRecord["password"]   = "******";
                    sampleRecord["enabled"]    = true;
                    sampleRecord["verified"]   = true;
                    sampleRecord["image"]      = "/plugins/webvella-core/assets/avatar-deep-purple.png";
                    var createSampleRecordResult = recMan.CreateRecord(SystemIds.UserEntityId, sampleRecord);
                    if (!createSampleRecordResult.Success)
                    {
                        throw new Exception("System error 10060. Create sample customer record. Message:" + createSampleRecordResult.Message);
                    }
                }
                #endregion

                #region << Create Sample User Role>>
                {
                    var sampleRecord = new EntityRecord();
                    sampleRecord["id"]          = new Guid("27745245-09bd-4adb-8831-3870bcae46fe");
                    sampleRecord["name"]        = "crm_customer";
                    sampleRecord["description"] = "Sample Customer role for CRM application";
                    var createSampleRecordResult = recMan.CreateRecord(SystemIds.RoleEntityId, sampleRecord);
                    if (!createSampleRecordResult.Success)
                    {
                        throw new Exception("System error 10060. Create sample role record. Message:" + createSampleRecordResult.Message);
                    }
                }
                #endregion

                #region << Create relation between sample customer and role >>
                {
                    var createRelationNtoNResponse = recMan.CreateRelationManyToManyRecord(new Guid("0c4b119e-1d7b-4b40-8d2c-9e447cc656ab"), new Guid("27745245-09bd-4adb-8831-3870bcae46fe"), new Guid("307fe376-a1c6-495e-a7c0-2a78797565f2"));
                    if (!createRelationNtoNResponse.Success)
                    {
                        throw new Exception("Could not create item image relation" + createRelationNtoNResponse.Message);
                    }
                }
                #endregion

                #region << Create relation between sample customer and regular role >>
                {
                    var createRelationNtoNResponse = recMan.CreateRelationManyToManyRecord(new Guid("0c4b119e-1d7b-4b40-8d2c-9e447cc656ab"), new Guid("f16ec6db-626d-4c27-8de0-3e7ce542c55f"), new Guid("307fe376-a1c6-495e-a7c0-2a78797565f2"));
                    if (!createRelationNtoNResponse.Success)
                    {
                        throw new Exception("Could not create item image relation" + createRelationNtoNResponse.Message);
                    }
                }
                #endregion
            }
        }
示例#15
0
        private void SetupViews()
        {
            View.BackgroundColor = Appearance.Colors.BackgroundColor;

            _containerView = new UIView {
                BackgroundColor = Appearance.Colors.BackgroundColor
            };

            // Header
            _headerContainer = new UIView {
                BackgroundColor = Appearance.Colors.White
            };
            _headerBottomRuler = new UIView {
                BackgroundColor = Appearance.Colors.RulerColor
            };

            using (var image = UIImage.FromBundle("Images/contact_background.jpg"))
            {
                _backgroundImage = new UIImageView(image)
                {
                    ClipsToBounds = true
                };
            }

            _image = new UIImageView {
                ClipsToBounds = true
            };
            _image.Layer.MasksToBounds = true;
            _image.Layer.CornerRadius  = 15f;
            _image.Layer.BorderColor   = Appearance.Colors.White.CGColor;
            _image.Layer.ShadowColor   = Appearance.Colors.Green.CGColor;
            _image.Layer.ShadowRadius  = 5f;
            _image.Layer.BorderWidth   = 4;

            _text = new UILabel {
                Font = Appearance.Fonts.LatoWithSize(20), TextColor = Appearance.Colors.DefaultTextColor
            };

            // Basic information
            _aboutYouHeader = new UILabel {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.SubTextColor, Text = "Basic information"
            };

            _aboutYouContainer = new UIView {
                BackgroundColor = Appearance.Colors.White
            };
            _aboutYouTopRuler = new UIView {
                BackgroundColor = Appearance.Colors.RulerColor
            };

            _displayNameHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Display name"
            };
            _displayName = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _firstNameHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "First name"
            };
            _firstName = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _lastNameHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Last name"
            };
            _lastName = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _emailHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Email"
            };
            _email = new UILabel {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor
            };

            _aboutYouBottomRuler = new UIView {
                BackgroundColor = Appearance.Colors.RulerColor
            };

            // Profile
            _profileHeader = new UILabel {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.SubTextColor, Text = "About you"
            };

            _profileContainer = new UIView {
                BackgroundColor = Appearance.Colors.White
            };
            _profileTopRuler = new UIView {
                BackgroundColor = Appearance.Colors.RulerColor
            };

            _shortIntroHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Short introcduction"
            };
            _shortIntro = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _aboutHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "About"
            };
            _about = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _cityheader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "City"
            };
            _city = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _linkedinHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "LinkedIn url"
            };
            _linkedin = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _facebookHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Facebook url"
            };
            _facebook = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _twitterHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Twitter url"
            };
            _twitter = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _googleHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Google+ url"
            };
            _google = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _instagramHeader = new UILabel {
                Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Instagram url"
            };
            _instagram = new InputTextField {
                Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn
            };

            _profileBottomRuler = new UIView {
                BackgroundColor = Appearance.Colors.RulerColor
            };

            // Preferences
            //_preferencesHeader = new UILabel { Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.SubTextColor, Text = "Platform settings" };

            //_preferencesContainer = new UIView { BackgroundColor = Appearance.Colors.White };
            //_preferencesTopRuler = new UIView { BackgroundColor = Appearance.Colors.RulerColor };

            //_locationHeader = new UILabel { Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Select your location" };
            //_location = new InputTextField { Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn };

            //_languageHeader = new UILabel { Font = Appearance.Fonts.LatoBoldWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, Text = "Select your language" };
            //_language = new InputTextField { Font = Appearance.Fonts.LatoWithSize(14), TextColor = Appearance.Colors.DefaultTextColor, EdgeInsets = new UIEdgeInsets(0, 5, 0, 0), ShouldReturn = ShouldReturn };

            //_preferencesBottomRuler = new UIView { BackgroundColor = Appearance.Colors.RulerColor };

            _containerView.AddSubviews(_headerContainer,
                                       _aboutYouContainer,
                                       _backgroundImage,
                                       _text,
                                       _image,
                                       _headerBottomRuler,
                                       _aboutYouTopRuler,
                                       _aboutYouHeader,
                                       _displayNameHeader,
                                       _displayName,
                                       _firstName,
                                       _firstNameHeader,
                                       _lastNameHeader,
                                       _lastName,
                                       _email,
                                       _emailHeader,
                                       _aboutYouBottomRuler,
                                       _profileContainer,
                                       _profileHeader,
                                       _profileTopRuler,
                                       _profileBottomRuler,
                                       _shortIntro,
                                       _about,
                                       _city,
                                       _linkedin,
                                       _facebook,
                                       _twitter,
                                       _google,
                                       _instagram,
                                       _shortIntroHeader,
                                       _aboutHeader,
                                       _cityheader,
                                       _linkedinHeader,
                                       _facebookHeader,
                                       _twitterHeader,
                                       _googleHeader,
                                       _instagramHeader);

            // Add container to scrollview and scrollview to view
            ScrollView.AddSubviews(_containerView);
        }
示例#16
0
        public IActionResult OnPost()
        {
            if (!ModelState.IsValid)
            {
                throw new Exception("Antiforgery check failed.");
            }

            InitPage();

            if (ErpEntity == null)
            {
                return(NotFound());
            }

            if (String.IsNullOrWhiteSpace(ReturnUrl))
            {
                ReturnUrl = $"/sdk/objects/entity/r/{RecordId}/rl/fields/c/select";
            }

            //empty html input is not posted, so we init it with string.empty
            if (DefaultValue == null)
            {
                DefaultValue = string.Empty;
            }

            var entMan = new EntityManager();

            try
            {
                var newFieldId = Guid.NewGuid();
                if (Id != null)
                {
                    newFieldId = Id.Value;
                }

                var        response = new FieldResponse();
                InputField input    = null;
                switch (Type)
                {
                case FieldType.AutoNumberField:
                {
                    decimal defaultDecimal = 1;
                    if (Decimal.TryParse(DefaultValue, out decimal result))
                    {
                        defaultDecimal = result;
                    }

                    input = new InputAutoNumberField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultDecimal,
                        StartingNumber  = StartingNumber,
                        DisplayFormat   = DisplayFormat,
                        EnableSecurity  = EnableSecurity
                    };
                }
                break;

                case FieldType.CheckboxField:
                {
                    bool?defaultValue = null;
                    if (Boolean.TryParse(DefaultValue, out bool result))
                    {
                        defaultValue = result;
                    }
                    input = new InputCheckboxField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity
                    };
                }
                break;

                case FieldType.CurrencyField:
                {
                    decimal?defaultDecimal = null;
                    if (Decimal.TryParse(DefaultValue, out decimal result))
                    {
                        defaultDecimal = result;
                    }
                    input = new InputCurrencyField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultDecimal,
                        EnableSecurity  = EnableSecurity,
                        MinValue        = MinValue,
                        MaxValue        = MaxValue,
                        Currency        = Helpers.GetCurrencyType(CurrencyCode)
                    };
                }
                break;

                case FieldType.DateField:
                {
                    DateTime?defaultValue = null;
                    if (DateTime.TryParse(DefaultValue, out DateTime result))
                    {
                        defaultValue = result;
                    }
                    input = new InputDateField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity,
                        Format          = Format,
                        UseCurrentTimeAsDefaultValue = UseCurrentTimeAsDefaultValue
                    };
                }
                break;

                case FieldType.DateTimeField:
                {
                    DateTime?defaultValue = null;
                    if (DateTime.TryParse(DefaultValue, out DateTime result))
                    {
                        defaultValue = result;
                    }
                    input = new InputDateTimeField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity,
                        Format          = Format,
                        UseCurrentTimeAsDefaultValue = UseCurrentTimeAsDefaultValue
                    };
                }
                break;

                case FieldType.EmailField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputEmailField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity,
                        MaxLength       = MaxLength
                    };
                }
                break;

                case FieldType.FileField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputFileField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity
                    };
                }
                break;

                case FieldType.HtmlField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputHtmlField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity
                    };
                }
                break;

                case FieldType.ImageField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputImageField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity
                    };
                }
                break;

                case FieldType.MultiLineTextField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputMultiLineTextField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity,
                        MaxLength       = MaxLength
                    };
                }
                break;

                case FieldType.MultiSelectField:
                {
                    var selectOptions      = (SelectOptions ?? string.Empty).Split(Environment.NewLine);
                    var defaultOptions     = (DefaultValue ?? string.Empty).Split(Environment.NewLine);
                    var multiSelectOptions = new List <SelectOption>();
                    var defaultValues      = new List <string>();

                    foreach (var option in selectOptions)
                    {
                        if (!String.IsNullOrWhiteSpace(option))
                        {
                            var optionArray = option.Split(',');
                            var key         = "";
                            var value       = "";
                            var iconClass   = "";
                            var color       = "";
                            if (optionArray.Length > 0 && !String.IsNullOrWhiteSpace(optionArray[0]))
                            {
                                key = optionArray[0].Trim().ToLowerInvariant();
                            }
                            if (optionArray.Length > 1 && !String.IsNullOrWhiteSpace(optionArray[1]))
                            {
                                value = optionArray[1].Trim();
                            }
                            else if (optionArray.Length > 0 && !String.IsNullOrWhiteSpace(optionArray[0]))
                            {
                                value = key;
                            }
                            if (optionArray.Length > 2 && !String.IsNullOrWhiteSpace(optionArray[2]))
                            {
                                iconClass = optionArray[2].Trim();
                            }
                            if (optionArray.Length > 3 && !String.IsNullOrWhiteSpace(optionArray[3]))
                            {
                                color = optionArray[3].Trim();
                            }
                            if (!String.IsNullOrWhiteSpace(key) && !String.IsNullOrWhiteSpace(value))
                            {
                                multiSelectOptions.Add(new SelectOption()
                                    {
                                        Value     = key,
                                        Label     = value,
                                        IconClass = iconClass,
                                        Color     = color
                                    });
                            }
                        }
                    }

                    foreach (var option in defaultOptions)
                    {
                        var fixedOption = option.Trim().ToLowerInvariant();
                        if (!String.IsNullOrWhiteSpace(option) && multiSelectOptions.Any(x => x.Value == fixedOption))
                        {
                            defaultValues.Add(fixedOption);
                        }
                        else if (!String.IsNullOrWhiteSpace(option) && !multiSelectOptions.Any(x => x.Value == fixedOption))
                        {
                            Validation.Errors.Add(new ValidationError("DefaultValue", "one or more of the default values are not found as select options"));
                            throw Validation;
                        }
                    }

                    input = new InputMultiSelectField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        EnableSecurity  = EnableSecurity,
                        Options         = multiSelectOptions,
                        DefaultValue    = defaultValues
                    };
                }
                break;

                case FieldType.NumberField:
                {
                    decimal?defaultDecimal = null;
                    if (Decimal.TryParse(DefaultValue, out decimal result))
                    {
                        defaultDecimal = result;
                    }
                    input = new InputNumberField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultDecimal,
                        EnableSecurity  = EnableSecurity,
                        MinValue        = MinValue,
                        MaxValue        = MaxValue,
                        DecimalPlaces   = DecimalPlaces
                    };
                }
                break;

                case FieldType.PasswordField:
                {
                    input = new InputPasswordField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        MinLength       = MinLength,
                        Encrypted       = Encrypted,
                        EnableSecurity  = EnableSecurity,
                        MaxLength       = MaxLength
                    };
                }
                break;

                case FieldType.PercentField:
                {
                    decimal?defaultDecimal = null;
                    if (Decimal.TryParse(DefaultValue, out decimal result))
                    {
                        defaultDecimal = result;
                    }
                    input = new InputNumberField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultDecimal,
                        EnableSecurity  = EnableSecurity,
                        MinValue        = MinValue,
                        MaxValue        = MaxValue,
                        DecimalPlaces   = DecimalPlaces
                    };
                }
                break;

                case FieldType.PhoneField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputPhoneField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity,
                        MaxLength       = MaxLength
                    };
                }
                break;

                case FieldType.GuidField:
                {
                    Guid?defaultGuid = null;
                    if (Guid.TryParse(DefaultValue, out Guid result))
                    {
                        defaultGuid = result;
                    }
                    input = new InputGuidField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultGuid,
                        EnableSecurity  = EnableSecurity,
                        GenerateNewId   = GenerateNewId
                    };
                }
                break;

                case FieldType.SelectField:
                {
                    var selectOptions      = SelectOptions.Split(Environment.NewLine);
                    var modelSelectOptions = new List <SelectOption>();

                    foreach (var option in selectOptions)
                    {
                        if (!String.IsNullOrWhiteSpace(option))
                        {
                            var optionArray = option.Split(',');
                            var key         = "";
                            var value       = "";
                            var iconClass   = "";
                            var color       = "";
                            if (optionArray.Length > 0 && !String.IsNullOrWhiteSpace(optionArray[0]))
                            {
                                key = optionArray[0].Trim().ToLowerInvariant();
                            }
                            if (optionArray.Length > 1 && !String.IsNullOrWhiteSpace(optionArray[1]))
                            {
                                value = optionArray[1].Trim();
                            }
                            else if (optionArray.Length > 0 && !String.IsNullOrWhiteSpace(optionArray[0]))
                            {
                                value = key;
                            }
                            if (optionArray.Length > 2 && !String.IsNullOrWhiteSpace(optionArray[2]))
                            {
                                iconClass = optionArray[2].Trim();
                            }
                            if (optionArray.Length > 3 && !String.IsNullOrWhiteSpace(optionArray[3]))
                            {
                                color = optionArray[3].Trim();
                            }
                            if (!String.IsNullOrWhiteSpace(key) && !String.IsNullOrWhiteSpace(value))
                            {
                                modelSelectOptions.Add(new SelectOption()
                                    {
                                        Value     = key,
                                        Label     = value,
                                        IconClass = iconClass,
                                        Color     = color
                                    });
                            }
                        }
                    }

                    DefaultValue = DefaultValue.Trim().ToLowerInvariant();

                    if (!String.IsNullOrWhiteSpace(DefaultValue) && !modelSelectOptions.Any(x => x.Value == DefaultValue))
                    {
                        Validation.Errors.Add(new ValidationError("DefaultValue", "one or more of the default values are not found as select options"));
                        throw Validation;
                    }

                    input = new InputSelectField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = DefaultValue,
                        EnableSecurity  = EnableSecurity,
                        Options         = modelSelectOptions
                    };
                }
                break;

                case FieldType.UrlField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputUrlField()
                    {
                        Id                    = newFieldId,
                        Name                  = Name,
                        Label                 = Label,
                        Required              = Required,
                        Description           = Description,
                        Unique                = Unique,
                        HelpText              = HelpText,
                        System                = System,
                        PlaceholderText       = PlaceholderText,
                        Searchable            = Searchable,
                        DefaultValue          = defaultValue,
                        EnableSecurity        = EnableSecurity,
                        MaxLength             = MaxLength,
                        OpenTargetInNewWindow = OpenTargetInNewWindow
                    };
                }
                break;

                case FieldType.TextField:
                {
                    string defaultValue = null;
                    if (DefaultValue.ToLowerInvariant() != "null")
                    {
                        defaultValue = DefaultValue;
                    }

                    input = new InputTextField()
                    {
                        Id              = newFieldId,
                        Name            = Name,
                        Label           = Label,
                        Required        = Required,
                        Description     = Description,
                        Unique          = Unique,
                        HelpText        = HelpText,
                        System          = System,
                        PlaceholderText = PlaceholderText,
                        Searchable      = Searchable,
                        DefaultValue    = defaultValue,
                        EnableSecurity  = EnableSecurity,
                        MaxLength       = MaxLength
                    };
                }
                break;

                default:
                    throw new Exception("Field Type not recognized");
                }

                var recordPermissionsKeyValues = JsonConvert.DeserializeObject <List <KeyStringList> >(FieldPermissions);
                input.Permissions           = new FieldPermissions();
                input.Permissions.CanRead   = new List <Guid>();
                input.Permissions.CanUpdate = new List <Guid>();


                foreach (var role in recordPermissionsKeyValues)
                {
                    var roleId = Guid.Empty;
                    if (Guid.TryParse(role.Key, out Guid result))
                    {
                        roleId = result;
                    }
                    if (roleId != Guid.Empty)
                    {
                        if (role.Values.Contains("read"))
                        {
                            input.Permissions.CanRead.Add(roleId);
                        }
                        if (role.Values.Contains("update"))
                        {
                            input.Permissions.CanUpdate.Add(roleId);
                        }
                    }
                }

                response = entMan.CreateField(ErpEntity.Id, input);
                if (!response.Success)
                {
                    var exception = new ValidationException(response.Message);
                    exception.Errors = response.Errors.MapTo <ValidationError>();
                    throw exception;
                }

                // because of https://github.com/aspnet/Mvc/issues/6711, i added TempDataExtensions int
                // WebVella.Erp.Web.Utils and using Put and Get<> instead of
                // TempData["ScreenMessage"] = new ScreenMessage() { Message = "Field created successfully" };
                TempData.Put("ScreenMessage", new ScreenMessage()
                {
                    Message = "Field created successfully"
                });
                return(Redirect($"/sdk/objects/entity/r/{ErpEntity.Id}/rl/fields/l"));
            }
            catch (ValidationException ex)
            {
                Validation.Message = ex.Message;
                Validation.Errors  = ex.Errors;
            }
            catch (Exception ex)
            {
                Validation.Message = ex.Message;
                Validation.Errors.Add(new ValidationError("", ex.Message, isSystem: true));
            }

            HeaderToolbar.AddRange(AdminPageUtils.GetEntityAdminSubNav(ErpEntity, "fields"));

            ErpRequestContext.PageContext = PageContext;

            BeforeRender();
            return(Page());
        }
示例#17
0
        private static void Patch20190419(EntityManager entMan, EntityRelationManager relMan, RecordManager recMan)
        {
            #region << ***Create field***  Entity: email Field Name: sender >>
            {
                InputTextField textboxField = new InputTextField();
                textboxField.Id                    = new Guid("8f59eaa9-873e-4461-83fb-34ecbbc88e7c");
                textboxField.Name                  = "sender";
                textboxField.Label                 = "Sender";
                textboxField.PlaceholderText       = null;
                textboxField.Description           = null;
                textboxField.HelpText              = null;
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = true;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = "[]";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("085e2442-820a-4df7-ab92-516ce23197c4"), textboxField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: email Field: sender Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: email Field Name: recipients >>
            {
                InputTextField textboxField = new InputTextField();
                textboxField.Id                    = new Guid("ab748700-d13b-4df4-917e-093d74879a8e");
                textboxField.Name                  = "recipients";
                textboxField.Label                 = "Recipients";
                textboxField.PlaceholderText       = "[]";
                textboxField.Description           = null;
                textboxField.HelpText              = null;
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = true;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = "";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("085e2442-820a-4df7-ab92-516ce23197c4"), textboxField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: email Field: recipients Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Update field***  Entity: email Field Name: x_search >>
            {
                var            currentEntity = entMan.ReadEntity(new Guid("085e2442-820a-4df7-ab92-516ce23197c4")).Object;
                InputTextField textboxField  = new InputTextField();
                textboxField.Id                    = currentEntity.Fields.SingleOrDefault(x => x.Name == "x_search").Id;
                textboxField.Name                  = "x_search";
                textboxField.Label                 = "x_search";
                textboxField.PlaceholderText       = null;
                textboxField.Description           = null;
                textboxField.HelpText              = null;
                textboxField.Required              = true;
                textboxField.Unique                = false;
                textboxField.Searchable            = false;
                textboxField.Auditable             = false;
                textboxField.System                = false;
                textboxField.DefaultValue          = "";
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.UpdateField(new Guid("085e2442-820a-4df7-ab92-516ce23197c4"), textboxField);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: email Field: x_search Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Update app*** App name: sdk >>
            {
                var id          = new Guid("56a8548a-19d0-497f-8e5b-242abfdc4082");
                var name        = "sdk";
                var label       = "Software Development Kit";
                var description = "SDK & Development Tools";
                var iconClass   = "fa fa-cogs";
                var author      = "WebVella";
                var color       = "#dc3545";
                var weight      = 1000;
                var access      = new List <Guid>();
                access.Add(new Guid("bdc56420-caf0-4030-8a0e-d264938e0cda"));

                new WebVella.Erp.Web.Services.AppService().UpdateApplication(id, name, label, description, iconClass, author, color, weight, access, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update app*** App name: mail >>
            {
                var id          = new Guid("9d3b5497-e136-43b7-ad87-857e615a54c9");
                var name        = "mail";
                var label       = "Mail";
                var description = "Provides services for sending emails.";
                var iconClass   = "far fa-envelope";
                var author      = "WebVella";
                var color       = "#8bc34a";
                var weight      = 10;
                var access      = new List <Guid>();
                access.Add(new Guid("bdc56420-caf0-4030-8a0e-d264938e0cda"));

                new WebVella.Erp.Web.Services.AppService().UpdateApplication(id, name, label, description, iconClass, author, color, weight, access, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap area*** Sitemap area name: objects >>
            {
                var id                      = new Guid("d3237d8c-c074-46d7-82c2-1385cbfff35a");
                var appId                   = new Guid("56a8548a-19d0-497f-8e5b-242abfdc4082");
                var name                    = "objects";
                var label                   = "Objects";
                var description             = @"Schema and Layout management";
                var iconClass               = "fa fa-pencil-ruler";
                var color                   = "#2196F3";
                var weight                  = 1;
                var showGroupNames          = false;
                var access                  = new List <Guid>();
                var labelTranslations       = new List <WebVella.Erp.Web.Models.TranslationResource>();
                var descriptionTranslations = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateArea(id, appId, name, label, labelTranslations, description, descriptionTranslations, iconClass, color, weight, showGroupNames, access, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap area*** Sitemap area name: access >>
            {
                var id                      = new Guid("c5c4cefc-1402-4a8b-9867-7f2a059b745d");
                var appId                   = new Guid("56a8548a-19d0-497f-8e5b-242abfdc4082");
                var name                    = "access";
                var label                   = "Access";
                var description             = @"Manage users and roles";
                var iconClass               = "fa fa-key";
                var color                   = "#673AB7";
                var weight                  = 2;
                var showGroupNames          = false;
                var access                  = new List <Guid>();
                var labelTranslations       = new List <WebVella.Erp.Web.Models.TranslationResource>();
                var descriptionTranslations = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateArea(id, appId, name, label, labelTranslations, description, descriptionTranslations, iconClass, color, weight, showGroupNames, access, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap area*** Sitemap area name: server >>
            {
                var id                      = new Guid("fee72214-f1c4-4ed5-8bda-35698dc11528");
                var appId                   = new Guid("56a8548a-19d0-497f-8e5b-242abfdc4082");
                var name                    = "server";
                var label                   = "Server";
                var description             = @"Background jobs and maintenance";
                var iconClass               = "fa fa-database";
                var color                   = "#F44336";
                var weight                  = 3;
                var showGroupNames          = false;
                var access                  = new List <Guid>();
                var labelTranslations       = new List <WebVella.Erp.Web.Models.TranslationResource>();
                var descriptionTranslations = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateArea(id, appId, name, label, labelTranslations, description, descriptionTranslations, iconClass, color, weight, showGroupNames, access, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap node*** Sitemap node name: page >>
            {
                var  id                 = new Guid("5b132ac0-703e-4342-a13d-c7ff93d07a4f");
                var  areaId             = new Guid("d3237d8c-c074-46d7-82c2-1385cbfff35a");
                Guid?entityId           = null;
                var  name               = "page";
                var  label              = "Pages";
                var  url                = "/sdk/objects/page/l";
                var  iconClass          = "fa fa-file";
                var  weight             = 1;
                var  type               = ((int)3);
                var  access             = new List <Guid>();
                var  entityListPages    = new List <Guid>();
                var  entityCreatePages  = new List <Guid>();
                var  entityDetailsPages = new List <Guid>();
                var  entityManagePages  = new List <Guid>();
                var  labelTranslations  = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateAreaNode(id, areaId, name, label, labelTranslations, iconClass, url, type, entityId, weight, access, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap node*** Sitemap node name: data_source >>
            {
                var  id                 = new Guid("9b30bf96-67d9-4d20-bf07-e6ef1c44d553");
                var  areaId             = new Guid("d3237d8c-c074-46d7-82c2-1385cbfff35a");
                Guid?entityId           = null;
                var  name               = "data_source";
                var  label              = "Data sources";
                var  url                = "/sdk/objects/data_source/l/list";
                var  iconClass          = "fa fa-cloud-download-alt";
                var  weight             = 2;
                var  type               = ((int)3);
                var  access             = new List <Guid>();
                var  entityListPages    = new List <Guid>();
                var  entityCreatePages  = new List <Guid>();
                var  entityDetailsPages = new List <Guid>();
                var  entityManagePages  = new List <Guid>();
                var  labelTranslations  = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateAreaNode(id, areaId, name, label, labelTranslations, iconClass, url, type, entityId, weight, access, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap node*** Sitemap node name: application >>
            {
                var  id                 = new Guid("02d75ea5-8fc6-4f95-9933-0eed6b36ca49");
                var  areaId             = new Guid("d3237d8c-c074-46d7-82c2-1385cbfff35a");
                Guid?entityId           = null;
                var  name               = "application";
                var  label              = "Applications";
                var  url                = "/sdk/objects/application/l/list";
                var  iconClass          = "fa fa-th";
                var  weight             = 3;
                var  type               = ((int)3);
                var  access             = new List <Guid>();
                var  entityListPages    = new List <Guid>();
                var  entityCreatePages  = new List <Guid>();
                var  entityDetailsPages = new List <Guid>();
                var  entityManagePages  = new List <Guid>();
                var  labelTranslations  = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateAreaNode(id, areaId, name, label, labelTranslations, iconClass, url, type, entityId, weight, access, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap node*** Sitemap node name: entity >>
            {
                var  id                 = new Guid("dfa7ec55-b55b-404f-b251-889f1d81df29");
                var  areaId             = new Guid("d3237d8c-c074-46d7-82c2-1385cbfff35a");
                Guid?entityId           = null;
                var  name               = "entity";
                var  label              = "Entities";
                var  url                = "/sdk/objects/entity/l";
                var  iconClass          = "fa fa-database";
                var  weight             = 4;
                var  type               = ((int)3);
                var  access             = new List <Guid>();
                var  entityListPages    = new List <Guid>();
                var  entityCreatePages  = new List <Guid>();
                var  entityDetailsPages = new List <Guid>();
                var  entityManagePages  = new List <Guid>();
                var  labelTranslations  = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateAreaNode(id, areaId, name, label, labelTranslations, iconClass, url, type, entityId, weight, access, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap node*** Sitemap node name: user >>
            {
                var  id                 = new Guid("ff578868-817e-433d-988f-bb8d4e9baa0d");
                var  areaId             = new Guid("c5c4cefc-1402-4a8b-9867-7f2a059b745d");
                Guid?entityId           = null;
                var  name               = "user";
                var  label              = "Users";
                var  url                = "/sdk/access/user/l/list";
                var  iconClass          = "fa fa-user";
                var  weight             = 1;
                var  type               = ((int)3);
                var  access             = new List <Guid>();
                var  entityListPages    = new List <Guid>();
                var  entityCreatePages  = new List <Guid>();
                var  entityDetailsPages = new List <Guid>();
                var  entityManagePages  = new List <Guid>();
                var  labelTranslations  = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateAreaNode(id, areaId, name, label, labelTranslations, iconClass, url, type, entityId, weight, access, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap node*** Sitemap node name: job >>
            {
                var  id                 = new Guid("396ec481-3b2e-461c-b514-743fb3252003");
                var  areaId             = new Guid("fee72214-f1c4-4ed5-8bda-35698dc11528");
                Guid?entityId           = null;
                var  name               = "job";
                var  label              = "Background jobs";
                var  url                = "/sdk/server/job/l/plan";
                var  iconClass          = "fa fa-cogs";
                var  weight             = 1;
                var  type               = ((int)3);
                var  access             = new List <Guid>();
                var  entityListPages    = new List <Guid>();
                var  entityCreatePages  = new List <Guid>();
                var  entityDetailsPages = new List <Guid>();
                var  entityManagePages  = new List <Guid>();
                var  labelTranslations  = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateAreaNode(id, areaId, name, label, labelTranslations, iconClass, url, type, entityId, weight, access, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update sitemap node*** Sitemap node name: log >>
            {
                var  id                 = new Guid("78a29ac8-d2aa-4379-b990-08f7f164a895");
                var  areaId             = new Guid("fee72214-f1c4-4ed5-8bda-35698dc11528");
                Guid?entityId           = null;
                var  name               = "log";
                var  label              = "Logs";
                var  url                = "/sdk/server/log/l/list";
                var  iconClass          = "fas fa-sticky-note";
                var  weight             = 2;
                var  type               = ((int)3);
                var  access             = new List <Guid>();
                var  entityListPages    = new List <Guid>();
                var  entityCreatePages  = new List <Guid>();
                var  entityDetailsPages = new List <Guid>();
                var  entityManagePages  = new List <Guid>();
                var  labelTranslations  = new List <WebVella.Erp.Web.Models.TranslationResource>();

                new WebVella.Erp.Web.Services.AppService().UpdateAreaNode(id, areaId, name, label, labelTranslations, iconClass, url, type, entityId, weight, access, entityListPages, entityCreatePages, entityDetailsPages, entityManagePages, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            #region << ***Update page body node*** Page: all_emails ID: d46a084d-4390-4134-80f4-c2fa4ceba811 >>
            {
                var  id            = new Guid("d46a084d-4390-4134-80f4-c2fa4ceba811");
                Guid?parentId      = new Guid("5dfef806-4448-4bce-8a5d-91e8587cbe33");
                Guid?nodeId        = null;
                Guid pageId        = new Guid("3374a8ee-653b-43f6-a4e8-c6db9a4f76d2");
                var  componentName = "WebVella.Erp.Web.Components.PcButton";
                var  containerId   = "column1";
                var  options       = @"{
  ""type"": ""2"",
  ""text"": """",
  ""color"": ""0"",
  ""size"": ""3"",
  ""class"": """",
  ""id"": """",
  ""icon_class"": ""fa fa-eye"",
  ""is_block"": ""false"",
  ""is_outline"": ""false"",
  ""is_visible"": """",
  ""is_active"": ""false"",
  ""is_disabled"": ""false"",
  ""onclick"": """",
  ""href"": ""{\""type\"":\""1\"",\""string\"":\""using System;\\nusing System.Collections.Generic;\\nusing WebVella.Erp.Web.Models;\\nusing WebVella.Erp.Api.Models;\\n\\npublic class ViewEmailUrlCodeVariable : ICodeVariable\\n{\\n\\tpublic object Evaluate(BaseErpPageModel pageModel)\\n\\t{\\n\\t\\tif (pageModel == null)\\n\\t\\t\\treturn null;\\n\\n\\t\\tvar queryRec = pageModel.TryGetDataSourceProperty<EntityRecord>(\\\""RequestQuery\\\"");\\n\\t\\tvar recordId = pageModel.TryGetDataSourceProperty<Guid>(\\\""RowRecord.id\\\"");\\n\\n\\t\\tif (recordId == null)\\n\\t\\t\\treturn null;\\n\\n        string queryString = string.Empty;\\n        if(queryRec != null)\\n        {\\n            foreach(var key in queryRec.Properties.Keys )\\n            {\\n                queryString +=  $\\\""{key}={queryRec[key]}&\\\"";\\n            }\\n        }\\n        \\n        var returnUrl = System.Net.WebUtility.UrlEncode( $\\\""/mail/emails/all/l?{queryString}\\\"" );\\n\\t\\treturn $\\\""/mail/emails/all/r/{recordId}/details?returnUrl={returnUrl}\\\"";\\n\\t}\\n}\\n\"",\""default\"":\""\""}"",
  ""new_tab"": ""false"",
  ""form"": """"
}";
                var  weight        = 1;

                new WebVella.Erp.Web.Services.PageService().UpdatePageBodyNode(id, parentId, pageId, nodeId, weight, componentName, containerId, options, WebVella.Erp.Database.DbContext.Current.Transaction);
            }
            #endregion

            FixSenderAndRecipients(recMan);

            #region << ***Delete field*** Entity: email Field Name: recipient_name >>
            {
                {
                    var response = entMan.DeleteField(new Guid("085e2442-820a-4df7-ab92-516ce23197c4"), new Guid("a3015639-7fd9-4231-89e3-76a7a133dd6d"));
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Delete field failed for Field: recipient_name Entity: email. Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Delete field*** Entity: email Field Name: sender_name >>
            {
                {
                    var response = entMan.DeleteField(new Guid("085e2442-820a-4df7-ab92-516ce23197c4"), new Guid("4d9e646c-0105-4370-ad21-d6547a7cabb1"));
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Delete field failed for Field: sender_name Entity: email. Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Delete field*** Entity: email Field Name: recipient_email >>
            {
                {
                    var response = entMan.DeleteField(new Guid("085e2442-820a-4df7-ab92-516ce23197c4"), new Guid("cae76d3b-bf91-47bc-aec0-d7ac26eced7b"));
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Delete field failed for Field: recipient_email Entity: email. Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Delete field*** Entity: email Field Name: sender_email >>
            {
                {
                    var response = entMan.DeleteField(new Guid("085e2442-820a-4df7-ab92-516ce23197c4"), new Guid("94845377-b845-49fe-b693-789f1ed5740e"));
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Delete field failed for Field: sender_email Entity: email. Message:" + response.Message);
                    }
                }
            }
            #endregion
        }
示例#18
0
 private void DoneProvinceAction()
 {
     FromTextField.EndEditing(false);
     ToTextField.EndEditing(false);
     InputTextField.EndEditing(false);
 }
        private static void Patch20190205(EntityManager entMan, EntityRelationManager relMan, RecordManager recMan)
        {
            #region << ***Update field***  Entity: timelog Field Name: minutes >>
            {
                var currentEntity            = entMan.ReadEntity(new Guid("750153c5-1df9-408f-b856-727078a525bc")).Object;
                InputNumberField numberField = new InputNumberField();
                numberField.Id                    = currentEntity.Fields.SingleOrDefault(x => x.Name == "minutes").Id;
                numberField.Name                  = "minutes";
                numberField.Label                 = "Minutes";
                numberField.PlaceholderText       = null;
                numberField.Description           = "0 will not create timelog";
                numberField.HelpText              = null;
                numberField.Required              = true;
                numberField.Unique                = false;
                numberField.Searchable            = false;
                numberField.Auditable             = false;
                numberField.System                = true;
                numberField.DefaultValue          = Decimal.Parse("0.0");
                numberField.MinValue              = null;
                numberField.MaxValue              = null;
                numberField.DecimalPlaces         = byte.Parse("0");
                numberField.EnableSecurity        = false;
                numberField.Permissions           = new FieldPermissions();
                numberField.Permissions.CanRead   = new List <Guid>();
                numberField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.UpdateField(new Guid("750153c5-1df9-408f-b856-727078a525bc"), numberField);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: timelog Field: minutes Message:" + response.Message);
                    }
                }
            }
            #endregion

            #region << ***Create field***  Entity: task Field Name: recurrence_template >>
            {
                InputTextField textboxField = new InputTextField();
                textboxField.Id                    = new Guid("9973acd9-86eb-41de-8c93-295b17876adb");
                textboxField.Name                  = "recurrence_template";
                textboxField.Label                 = "Recurrence Template";
                textboxField.PlaceholderText       = null;
                textboxField.Description           = null;
                textboxField.HelpText              = null;
                textboxField.Required              = false;
                textboxField.Unique                = false;
                textboxField.Searchable            = false;
                textboxField.Auditable             = false;
                textboxField.System                = true;
                textboxField.DefaultValue          = null;
                textboxField.MaxLength             = null;
                textboxField.EnableSecurity        = false;
                textboxField.Permissions           = new FieldPermissions();
                textboxField.Permissions.CanRead   = new List <Guid>();
                textboxField.Permissions.CanUpdate = new List <Guid>();
                //READ
                //UPDATE
                {
                    var response = entMan.CreateField(new Guid("9386226e-381e-4522-b27b-fb5514d77902"), textboxField, false);
                    if (!response.Success)
                    {
                        throw new Exception("System error 10060. Entity: task Field: recurrence_template Message:" + response.Message);
                    }
                }
            }
            #endregion
        }