Tuesday, 29 October 2013

Hash Table

 public IList<DynamicForm_Data> GetAllDynamicFormDatasControlDetailsByFormId(int formId)
        {
            DynamicForm_Data dynamicForm_Data = new DynamicForm_Data();
            IList<DynamicForm_Data> dynamicForm_Datas = new List<DynamicForm_Data>();
            try
            {
                List<string> columnNames = new List<string>();
                //List<string> columnValues = new List<string>();

                List<Hashtable> ColumnValuesInHashtable = new List<Hashtable>();

                string queryForColumns = "SELECT ControlName, ControlCaption, ControlTypeId, IsPrimaryKey FROM dbo.DynamicForm_Controls WHERE (FormId = " + formId + ") AND (ControlCaption <> 'AutogeneratedPrimaryKey')";

                SqlCommand sqlcommandForColumn = new SqlCommand(queryForColumns);
                IDataReader dataReaderForColumn = objDataAccess.ExecuteReader(sqlcommandForColumn);
                while (dataReaderForColumn.Read())
                {  
                   if(dataReaderForColumn["IsPrimaryKey"].ToString() == "True")
                    columnNames.Add(dataReaderForColumn["ControlCaption"].ToString()+" (PK)");
                    else
                       columnNames.Add(dataReaderForColumn["ControlCaption"].ToString());
                }
                dataReaderForColumn.Close();
                sqlcommandForColumn.Dispose();

                string query = "SELECT dbo.DynamicForm_Controls.ControlName,dbo.DynamicForm_Controls.ControlCaption, dbo.DynamicFormDatas.ControlValue, dbo.DynamicForm_Controls.ControlTypeId, dbo.DynamicFormDatas.ControlId, dbo.DynamicFormDatas.GroupId FROM  dbo.DynamicFormDatas LEFT OUTER JOIN dbo.DynamicForm_Controls ON dbo.DynamicFormDatas.ControlId = dbo.DynamicForm_Controls.Id WHERE (dbo.DynamicFormDatas.FormId = " + formId + ")";

                SqlCommand sqlCommand = new SqlCommand(query);
                IDataReader dataReader = objDataAccess.ExecuteReader(sqlCommand);
                while (dataReader.Read())
                {
                    //string value = dataReader["ControlValue"].ToString();
                    //columnValues.Add(value);
                    Hashtable hashtable = new Hashtable();
                    hashtable.Add(dataReader["GroupId"].ToString(), dataReader["ControlValue"].ToString());
                    ColumnValuesInHashtable.Add(hashtable);
                }

                dataReader.Close();
                sqlCommand.Dispose();
                dynamicForm_Data.DynamicForm_DataColumnName = columnNames;
                //dynamicForm_Data.DynamicForm_DataColumnValue = columnValues;
                dynamicForm_Data.DynamicForm_DataColumnValueInHashtable = ColumnValuesInHashtable;
                dynamicForm_Datas.Add(dynamicForm_Data);
            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message, exception);
            }
            return dynamicForm_Datas;
        }

Split Function

string[] separateDataTypeAndPrecision = (((UltraTextEditor)sender).Tag.ToString()).Split(',');

Dictionary

 Dictionary<int, string> moduleDetailInfo = new Dictionary<int, string>();

            IList<DynamicFormApplicationDataSource> moduleDetails = new DynamicFormApplicationDataSourceManager().GetModulesByModuleId(Convert.ToInt32(cmbModuleName.Value)).ToList();
            foreach (var moduleDetail in moduleDetails)
            {
                if (moduleDetail.IsPk)
                {
                    txtKeyField.Text = moduleDetail.Name;
                    txtKeyField.Tag = moduleDetail.Id;
                }
                else if (moduleDetail.DataType == "varchar")
                    moduleDetailInfo.Add(moduleDetail.Id, moduleDetail.Name);
            }
            cmbValueField.DataSource = new BindingSource(moduleDetailInfo, null);
            cmbValueField.ValueMember = "Key";
            cmbValueField.DisplayMember = "Value";