public void Value_ReturnsValueOfInput() { CreateATextfield(); var textFieldElement = Driver.FindElement(By.Name(_TextFieldName)); var inputTextField = new InputTextField(textFieldElement, Driver); Assert.AreEqual("Test1", inputTextField.Value); }
private void SetupSubViews() { _searchInput = new InputTextField { BackgroundColor = iOS.Appearance.Colors.BackgroundColor }; _searchInput.Layer.BorderColor = iOS.Appearance.Colors.BarShadowColor.CGColor; ContentView.AddSubview(_searchInput); }
private static void OnBrowse(InputTextField textField) { DialogHelperResult result = DialogHelper.OpenFile(DialogFilter.All, string.Empty); if (result.Result == true) { textField.Text = result.FileName; } }
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); }
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); }
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); }
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; } }
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; } } } }
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 }
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 } }
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); }
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()); }
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 }
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 }