public void AdjustUserRemainingBudget(string year, int userID, decimal adjustment) { CustomTableItem userBudgetDetails = CustomTableItemProvider.GetItems(CustomTableClassName).WhereEquals("UserID", userID).WhereEquals("Year", year).FirstOrDefault(); if (userBudgetDetails != null) { userBudgetDetails.SetValue("UserRemainingBudget", userBudgetDetails.GetValue("UserRemainingBudget", default(decimal)) + (adjustment)); userBudgetDetails.Update(); } }
/// <summary> /// Gets and updates custom table item. Called when the "Get and update item" button is pressed. /// Expects the CreateCustomTableItem method to be run first. /// </summary> private bool GetAndUpdateCustomTableItem() { // Create new Custom table item provider CustomTableItemProvider customTableProvider = new CustomTableItemProvider(CMSContext.CurrentUser); string customTableClassName = "customtable.sampletable"; // Check if Custom table 'Sample table' exists DataClassInfo customTable = DataClassInfoProvider.GetDataClass(customTableClassName); if (customTable != null) { // Prepare the parameters string where = "ItemText LIKE N'New text'"; int topN = 1; string columns = "ItemID"; // Get the data set according to the parameters DataSet dataSet = customTableProvider.GetItems(customTableClassName, where, null, topN, columns); if (!DataHelper.DataSourceIsEmpty(dataSet)) { // Get the custom table item ID int itemID = ValidationHelper.GetInteger(dataSet.Tables[0].Rows[0][0], 0); // Get the custom table item CustomTableItem updateCustomTableItem = customTableProvider.GetItem(itemID, customTableClassName); if (updateCustomTableItem != null) { string itemText = ValidationHelper.GetString(updateCustomTableItem.GetValue("ItemText"), ""); // Set new values updateCustomTableItem.SetValue("ItemText", itemText.ToLowerCSafe()); // Save the changes updateCustomTableItem.Update(); return(true); } } } return(false); }
/// <summary> /// Gets and bulk updates custom table items. Called when the "Get and bulk update items" button is pressed. /// Expects the CreateCustomTableItem method to be run first. /// </summary> private bool GetAndBulkUpdateCustomTableItems() { // Create new Custom table item provider CustomTableItemProvider customTableProvider = new CustomTableItemProvider(CMSContext.CurrentUser); string customTableClassName = "customtable.sampletable"; // Check if Custom table 'Sample table' exists DataClassInfo customTable = DataClassInfoProvider.GetDataClass(customTableClassName); if (customTable != null) { // Prepare the parameters string where = "ItemText LIKE N'New text%'"; // Get the data DataSet customTableItems = customTableProvider.GetItems(customTableClassName, where, null); if (!DataHelper.DataSourceIsEmpty(customTableItems)) { // Loop through the individual items foreach (DataRow customTableItemDr in customTableItems.Tables[0].Rows) { // Create object from DataRow CustomTableItem modifyCustomTableItem = CustomTableItem.New(customTableItemDr, customTableClassName); string itemText = ValidationHelper.GetString(modifyCustomTableItem.GetValue("ItemText"), ""); // Set new values modifyCustomTableItem.SetValue("ItemText", itemText.ToUpper()); // Save the changes modifyCustomTableItem.Update(); } return(true); } } return(false); }
public void EditPOSNumber(int posId, bool status) { string customTableClassName = "KDA.POSNumber"; try { // Gets the custom table DataClassInfo brandTable = DataClassInfoProvider.GetDataClassInfo(customTableClassName); if (brandTable != null) { // Gets all data records from the POS table whose 'ItemId' field value equal to PosId CustomTableItem customTableData = CustomTableItemProvider.GetItem(posId, customTableClassName); if (customTableData != null) { customTableData.SetValue("Enable", ValidationHelper.GetBoolean(status, false)); customTableData.Update(); } } } catch (Exception ex) { EventLogProvider.LogInformation("CMSWebParts_Kadena_POS_POSForm", "GetBrands", ex.Message); } }
void btnGUID_Click(object sender, EventArgs e) { try { // Create GUID field FormFieldInfo ffiGuid = new FormFieldInfo(); // Fill FormInfo object ffiGuid.Name = "ItemGUID"; ffiGuid.Caption = "GUID"; ffiGuid.DataType = FormFieldDataTypeEnum.GUID; ffiGuid.DefaultValue = ""; ffiGuid.Description = ""; ffiGuid.FieldType = FormFieldControlTypeEnum.CustomUserControl; ffiGuid.Settings["controlname"] = Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.LabelControl).ToLower(); ffiGuid.PrimaryKey = false; ffiGuid.System = true; ffiGuid.Visible = false; ffiGuid.Size = 0; ffiGuid.AllowEmpty = false; FormInfo.AddFormField(ffiGuid); // Update table structure - columns could be added bool old = TableManager.UpdateSystemFields; TableManager.UpdateSystemFields = true; string schema = FormInfo.GetXmlDefinition(); TableManager.UpdateTableBySchema(dci.ClassTableName, schema); TableManager.UpdateSystemFields = old; // Update xml schema and form definition dci.ClassFormDefinition = schema; dci.ClassXmlSchema = TableManager.GetXmlSchema(dci.ClassTableName); dci.Generalized.LogEvents = false; // Save the data DataClassInfoProvider.SetDataClass(dci); dci.Generalized.LogEvents = true; // Generate default queries SqlGenerator.GenerateDefaultQueries(dci, true, false); // Clear cached data CMSObjectHelper.RemoveReadOnlyObjects(CustomTableItemProvider.GetObjectType(className), true); CustomTableItemProvider.Remove(className, true); // Clear the object type hashtable ProviderStringDictionary.ReloadDictionaries(className, true); // Clear the classes hashtable ProviderStringDictionary.ReloadDictionaries("cms.class", true); // Clear class strucures ClassStructureInfo.Remove(className, true); // Ensure GUIDs for all items CustomTableItemProvider tableProvider = new CustomTableItemProvider(); tableProvider.UpdateSystemFields = false; tableProvider.LogSynchronization = false; DataSet dsItems = tableProvider.GetItems(className, null, null); if (!DataHelper.DataSourceIsEmpty(dsItems)) { foreach (DataRow dr in dsItems.Tables[0].Rows) { CustomTableItem item = new CustomTableItem(dr, className, tableProvider); item.ItemGUID = Guid.NewGuid(); item.Update(); } } // Log event UserInfo currentUser = CMSContext.CurrentUser; EventLog.LogEvent(EventLogProvider.EVENT_TYPE_INFORMATION, DateTime.Now, "Custom table", "GENERATEGUID", currentUser.UserID, currentUser.UserName, 0, null, null, string.Format(ResHelper.GetAPIString("customtable.GUIDGenerated", "Field 'ItemGUID' for custom table '{0}' was created and GUID values were generated."), dci.ClassName), 0, null); URLHelper.Redirect(URLHelper.AddParameterToUrl(URLRewriter.CurrentURL, "gen", "1")); } catch (Exception ex) { lblError.Visible = true; lblError.Text = GetString("customtable.ErrorGUID") + ex.Message; // Log event EventLog.LogEvent("Custom table", "GENERATEGUID", ex); } }
/// <summary> /// Adds GUID field to form definition. /// </summary> private void CreateGUID() { bool success; try { if (FormInfo == null) { return; } // Create GUID field FormFieldInfo ffiGuid = new FormFieldInfo(); // Fill FormInfo object ffiGuid.Name = "ItemGUID"; ffiGuid.SetPropertyValue(FormFieldPropertyEnum.FieldCaption, "GUID"); ffiGuid.DataType = FieldDataType.Guid; ffiGuid.SetPropertyValue(FormFieldPropertyEnum.DefaultValue, string.Empty); ffiGuid.SetPropertyValue(FormFieldPropertyEnum.FieldDescription, String.Empty); ffiGuid.PrimaryKey = false; ffiGuid.System = true; ffiGuid.Visible = false; ffiGuid.Size = 0; ffiGuid.AllowEmpty = false; FormInfo.AddFormItem(ffiGuid); // Update definition dci.ClassFormDefinition = FormInfo.GetXmlDefinition(); using (CMSActionContext context = new CMSActionContext()) { // Disable logging into event log context.LogEvents = false; DataClassInfoProvider.SetDataClassInfo(dci); } // Clear the default queries QueryInfoProvider.ClearDefaultQueries(dci, true); // Clear the object type hashtable AbstractProviderDictionary.ReloadDictionaries(className, true); // Clear the classes hashtable AbstractProviderDictionary.ReloadDictionaries("cms.class", true); // Clear class strucures ClassStructureInfo.Remove(className, true); // Ensure GUIDs for all items using (CMSActionContext ctx = new CMSActionContext()) { ctx.UpdateSystemFields = false; ctx.LogSynchronization = false; DataSet dsItems = CustomTableItemProvider.GetItems(className); if (!DataHelper.DataSourceIsEmpty(dsItems)) { foreach (DataRow dr in dsItems.Tables[0].Rows) { CustomTableItem item = CustomTableItem.New(className, dr); item.ItemGUID = Guid.NewGuid(); item.Update(); } } } // Log event UserInfo currentUser = MembershipContext.AuthenticatedUser; var logData = new EventLogData(EventTypeEnum.Information, "Custom table", "GENERATEGUID") { EventDescription = String.Format(ResHelper.GetAPIString("customtable.GUIDGenerated", "Field 'ItemGUID' for custom table '{0}' was created and GUID values were generated."), dci.ClassName), UserID = currentUser.UserID, UserName = currentUser.UserName, }; Service.Resolve <IEventLogService>().LogEvent(logData); success = true; } catch (Exception ex) { success = false; FieldEditor.ShowError(GetString("customtable.ErrorGUID")); // Log event Service.Resolve <IEventLogService>().LogException("Custom table", "GENERATEGUID", ex); } if (success) { URLHelper.Redirect(URLHelper.AddParameterToUrl(RequestContext.CurrentURL, "gen", "1")); } }
/// <summary> /// Adds GUID field to form definition. /// </summary> private void CreateGUID() { try { // Create GUID field FormFieldInfo ffiGuid = new FormFieldInfo(); // Fill FormInfo object ffiGuid.Name = "ItemGUID"; ffiGuid.SetPropertyValue(FormFieldPropertyEnum.FieldCaption, "GUID"); ffiGuid.DataType = FieldDataType.Guid; ffiGuid.SetPropertyValue(FormFieldPropertyEnum.DefaultValue, string.Empty); ffiGuid.SetPropertyValue(FormFieldPropertyEnum.FieldDescription, String.Empty); ffiGuid.FieldType = FormFieldControlTypeEnum.CustomUserControl; ffiGuid.Settings["controlname"] = Enum.GetName(typeof(FormFieldControlTypeEnum), FormFieldControlTypeEnum.LabelControl).ToLowerCSafe(); ffiGuid.PrimaryKey = false; ffiGuid.System = true; ffiGuid.Visible = false; ffiGuid.Size = 0; ffiGuid.AllowEmpty = false; FormInfo.AddFormItem(ffiGuid); // Update table structure - columns could be added bool old = TableManager.UpdateSystemFields; TableManager.UpdateSystemFields = true; string schema = FormInfo.GetXmlDefinition(); TableManager tm = new TableManager(null); tm.UpdateTableByDefinition(dci.ClassTableName, schema); TableManager.UpdateSystemFields = old; // Update xml schema and form definition dci.ClassFormDefinition = schema; dci.ClassXmlSchema = tm.GetXmlSchema(dci.ClassTableName); dci.Generalized.LogEvents = false; // Save the data DataClassInfoProvider.SetDataClassInfo(dci); dci.Generalized.LogEvents = true; // Clear the default queries QueryInfoProvider.ClearDefaultQueries(dci, true, false); // Clear the object type hashtable ProviderStringDictionary.ReloadDictionaries(className, true); // Clear the classes hashtable ProviderStringDictionary.ReloadDictionaries("cms.class", true); // Clear class strucures ClassStructureInfo.Remove(className, true); // Ensure GUIDs for all items using (CMSActionContext ctx = new CMSActionContext()) { ctx.UpdateSystemFields = false; ctx.LogSynchronization = false; DataSet dsItems = CustomTableItemProvider.GetItems(className); if (!DataHelper.DataSourceIsEmpty(dsItems)) { foreach (DataRow dr in dsItems.Tables[0].Rows) { CustomTableItem item = CustomTableItem.New(className, dr); item.ItemGUID = Guid.NewGuid(); item.Update(); } } } // Log event UserInfo currentUser = MembershipContext.AuthenticatedUser; EventLogProvider.LogEvent(EventType.INFORMATION, "Custom table", "GENERATEGUID", string.Format(ResHelper.GetAPIString("customtable.GUIDGenerated", "Field 'ItemGUID' for custom table '{0}' was created and GUID values were generated."), dci.ClassName), null, currentUser.UserID, currentUser.UserName); URLHelper.Redirect(URLHelper.AddParameterToUrl(RequestContext.CurrentURL, "gen", "1")); } catch (Exception ex) { FieldEditor.ShowError(GetString("customtable.ErrorGUID") + ex.Message); // Log event EventLogProvider.LogException("Custom table", "GENERATEGUID", ex); } }
public void LoadIndividualData(int pageFrom, int pageTo) { StringBuilder documentsAddedStatus = new StringBuilder(); string Query = "select * from (select distinct MasterCustomerId,LabelName,ROW_NUMBER() over (ORDER BY MasterCustomerId) AS Number from dbo.Sme_CommiteesMaster) as com where Number>=" + pageFrom + "AND Number<=" + pageTo; var queryToGetCommittees = new QueryParameters(Query, null, CMS.DataEngine.QueryTypeEnum.SQLQuery, false); DataSet ds = ConnectionHelper.ExecuteQuery(queryToGetCommittees); //ExecQuery(Query); //("pb.account_types.select_accounts", null, where, null); string CommitteeMemberId = string.Empty; DateTime BeginDate = new DateTime(); string CommitteeMasterCustomer = string.Empty; string CommitteeMemberLastFirstName = string.Empty; string CommitteeSubCustomer = string.Empty; DateTime EndDate = new DateTime(); string MemberAddressId = string.Empty; string MemberAddressTypeCodeString = string.Empty; string MemberMasterCustomer = string.Empty; string ParticipationStatusCodeString = string.Empty; string PositionCodeDescriptionDisplay = string.Empty; string PositionCodeString = string.Empty; string VotingStatusCodeString = string.Empty; string CommitteeLabelName = string.Empty; if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { Uri ServiceUri = new Uri("http://smemitst.personifycloud.com/PersonifyDataServices/PersonifyDatasme.svc"); PersonifyEntitiesBase DataAccessLayer = new PersonifyEntitiesBase(ServiceUri); DataAccessLayer.Credentials = new NetworkCredential("admin", "admin"); var CommiteeMembers = DataAccessLayer.CommitteeMembers.Where(p => p.CommitteeMasterCustomer == dr["MasterCustomerId"]) .Select(o => o) .ToList(); if (CommiteeMembers != null) { foreach (var member in CommiteeMembers) { CommitteeMemberId = member.CommitteeMemberId.ToString(); BeginDate = Convert.ToDateTime(member.BeginDate); CommitteeMasterCustomer = member.CommitteeMasterCustomer; CommitteeMemberLastFirstName = member.CommitteeMemberLastFirstName; CommitteeSubCustomer = member.CommitteeSubCustomer.ToString(); MemberAddressId = member.MemberAddressId.ToString(); MemberAddressTypeCodeString = member.MemberAddressTypeCodeString; MemberMasterCustomer = member.MemberMasterCustomer; ParticipationStatusCodeString = member.ParticipationStatusCodeString; PositionCodeDescriptionDisplay = member.PositionCodeDescriptionDisplay.ToString(); PositionCodeString = member.PositionCodeString; VotingStatusCodeString = member.VotingStatusCodeString.ToString(); CommitteeLabelName = member.CommitteeLabelName; EndDate = Convert.ToDateTime(member.EndDate); string customTableClassName = "Sme.CommiteesMembers"; string where = "CommitteeMemberId='" + CommitteeMemberId + "' AND CommitteeMemberLastFirstName='" + CommitteeMemberLastFirstName.Replace("'", "''") + "'"; // Check if Custom table 'Sme.CommiteesMembers' exists DataClassInfo customTable = DataClassInfoProvider.GetDataClassInfo(customTableClassName); DataSet customTableRecord = CustomTableItemProvider.GetItems(customTableClassName, where); int memberID = 0; if (!DataHelper.DataSourceIsEmpty(customTableRecord)) { // Get the custom table item ID memberID = ValidationHelper.GetInteger(customTableRecord.Tables[0].Rows[0][0], 0); } if (customTable != null) { if (memberID == 0) { if (EndDate >= DateTime.Now || PositionCodeDescriptionDisplay.ToLower().Contains("president")) { // Create new item for custom table with "Sme.CommiteesMembers" code name CustomTableItem item = CustomTableItem.New("Sme.CommiteesMembers"); item.SetValue("CommitteeMemberId", CommitteeMemberId); item.SetValue("BeginDate", BeginDate); item.SetValue("CommitteeMasterCustomer", CommitteeMasterCustomer); item.SetValue("CommitteeMemberLastFirstName", CommitteeMemberLastFirstName.Replace("'", "''")); item.SetValue("CommitteeSubCustomer", CommitteeSubCustomer); item.SetValue("MemberAddressId", MemberAddressId); item.SetValue("MemberAddressTypeCodeString", MemberAddressTypeCodeString); item.SetValue("MemberMasterCustomer", MemberMasterCustomer); item.SetValue("ParticipationStatusCodeString", ParticipationStatusCodeString); item.SetValue("PositionCodeDescriptionDisplay", PositionCodeDescriptionDisplay); item.SetValue("PositionCodeString", PositionCodeString); item.SetValue("VotingStatusCodeString", VotingStatusCodeString); item.SetValue("CommitteeLabelName", CommitteeLabelName); item.SetValue("EndDate", EndDate); item.Insert(); } /*documentsAddedStatus.Append( * "Added CommitteeLabelName : " + CommitteeLabelName + " in the CommitteeMemberId: " + CommitteeMemberId + "at" + DateTime.Now + Environment.NewLine);*/ } else { if (!DataHelper.DataSourceIsEmpty(customTableRecord)) { // Get the custom table item CustomTableItem updateItem = CustomTableItemProvider.GetItem(memberID, customTableClassName); if (updateItem != null) { if (EndDate >= DateTime.Now || PositionCodeDescriptionDisplay.ToLower().Contains("president")) { //updateItem.SetValue("CommitteeMemberId", CommitteeMemberId); updateItem.SetValue("BeginDate", BeginDate); updateItem.SetValue("CommitteeMasterCustomer", CommitteeMasterCustomer); updateItem.SetValue("CommitteeMemberLastFirstName", CommitteeMemberLastFirstName.Replace("'", "''")); updateItem.SetValue("CommitteeSubCustomer", CommitteeSubCustomer); updateItem.SetValue("MemberAddressId", MemberAddressId); updateItem.SetValue( "MemberAddressTypeCodeString", MemberAddressTypeCodeString); updateItem.SetValue("MemberMasterCustomer", MemberMasterCustomer); updateItem.SetValue( "ParticipationStatusCodeString", ParticipationStatusCodeString); updateItem.SetValue( "PositionCodeDescriptionDisplay", PositionCodeDescriptionDisplay); updateItem.SetValue("PositionCodeString", PositionCodeString); updateItem.SetValue("VotingStatusCodeString", VotingStatusCodeString); updateItem.SetValue("CommitteeLabelName", CommitteeLabelName); updateItem.SetValue("EndDate", EndDate); updateItem.Update(); /*documentsAddedStatus.Append( * "Updated CommitteeLabelName : " + CommitteeLabelName + " in the CommitteeMemberId: " + CommitteeMemberId + "at" + DateTime.Now + Environment.NewLine);*/ } } } } } } } /*string rootFolder = "CMSWebParts"; * string folderName = "SME"; * string fileName = "CommitteeMembersStatusLogged.txt"; * string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, rootFolder, folderName, fileName); * * using (StreamWriter writer = new StreamWriter(filePath, true)) * { * writer.WriteLine(documentsAddedStatus); * writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine); * writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine); * }*/ } } }
/// <summary> /// Lấy mã định danh mới /// </summary> /// <param name="dataYear">Mã theo năm</param> /// <param name="dataTable">Tiếp đầu ngữ của bảng</param> /// <param name="dataLen">Chiều dài số tự tăng</param> /// <param name="dataTXT">Mô tả về mã định danh</param> /// <returns>Mã định danh</returns> public static string Fn_Get_MaDinhDanh(string dataYear, string dataTable, int dataLen, string dataTXT) { string maDinhDanh; string dataYY = string.IsNullOrEmpty(dataYear) ? DateTime.Now.Year.ToString().Substring(2, 2) : dataYear.Substring(2, 2); // Create new Custom table item provider CustomTableItemProvider customTableProvider = new CustomTableItemProvider(CMSContext.CurrentUser); // Prepares the code name of the custom table string Code_MaLuuTru = "DX.MaLuuTru"; // Check if Custom table exists DataClassInfo DX_MaLuuTru = DataClassInfoProvider.GetDataClass(Code_MaLuuTru); maDinhDanh = "19000001"; if (DX_MaLuuTru != null) { // Prepare the parameters string where = string.Format("MaTXT = '{0}{1}'", dataTable, dataYY); // Get the data set according to the parameters DataSet dataSet = customTableProvider.GetItems(Code_MaLuuTru, where, null, 1, "ItemID"); if (!DataHelper.DataSourceIsEmpty(dataSet)) { // Get the custom table item ID int itemID = ValidationHelper.GetInteger(dataSet.Tables[0].Rows[0][0], 0); // Get the custom table item CustomTableItem DX_MaLuuTru_Item = customTableProvider.GetItem(itemID, Code_MaLuuTru); if (DX_MaLuuTru_Item != null) { string maTXT = ValidationHelper.GetString(DX_MaLuuTru_Item.GetValue("MaTXT"), ""); int maNUM = ValidationHelper.GetInteger(DX_MaLuuTru_Item.GetValue("MaNUM"), 0); int maLEN = ValidationHelper.GetInteger(DX_MaLuuTru_Item.GetValue("MaLEN"), 0); // Set new values DX_MaLuuTru_Item.SetValue("MaNUM", maNUM + 1); // Save the changes DX_MaLuuTru_Item.Update(); StringBuilder sb = new StringBuilder(); string newText = sb.Append('0', maLEN - maNUM.ToString().Length).ToString() + maNUM + 1; maDinhDanh = maTXT + newText; } } else { // Create new custom table item CustomTableItem newItem = new CustomTableItem(Code_MaLuuTru, customTableProvider); // Set the ItemText field value newItem.SetValue("MaTXT", dataTable + dataYY); newItem.SetValue("maNUM", 1); newItem.SetValue("maLEN", dataLen); newItem.SetValue("ActiveNUM", true); newItem.SetValue("MoTaTXT", dataTXT); // Insert the custom table item into database newItem.Insert(); StringBuilder sb = new StringBuilder(); string newText = dataTable + dataYY + sb.Append('0', dataLen - 0.ToString().Length).ToString() + 1; maDinhDanh = newText; } } // Return return(maDinhDanh); }
/// <summary> /// Gets and bulk updates custom table items. Called when the "Get and bulk update items" button is pressed. /// Expects the CreateCustomTableItem method to be run first. /// </summary> private bool GetAndBulkUpdateCustomTableItems() { // Create new Custom table item provider CustomTableItemProvider customTableProvider = new CustomTableItemProvider(CMSContext.CurrentUser); string customTableClassName = "customtable.sampletable"; // Check if Custom table 'Sample table' exists DataClassInfo customTable = DataClassInfoProvider.GetDataClass(customTableClassName); if (customTable != null) { // Prepare the parameters string where = "ItemText LIKE N'New text%'"; // Get the data DataSet customTableItems = customTableProvider.GetItems(customTableClassName, where, null); if (!DataHelper.DataSourceIsEmpty(customTableItems)) { // Loop through the individual items foreach (DataRow customTableItemDr in customTableItems.Tables[0].Rows) { // Create object from DataRow CustomTableItem modifyCustomTableItem = new CustomTableItem(customTableItemDr, customTableClassName); string itemText = ValidationHelper.GetString(modifyCustomTableItem.GetValue("ItemText"), ""); // Set new values modifyCustomTableItem.SetValue("ItemText", itemText.ToUpper()); // Save the changes modifyCustomTableItem.Update(); } return true; } } return false; }