public void MultiLevelCascade() { //if( dialect is Dialect.HSQLDialect ) return; object mid; object m0id; using (ISession s = OpenSession()) { Detail detail = new Detail(); SubDetail subdetail = new SubDetail(); Master m = new Master(); Master m0 = new Master(); m0id = s.Save(m0); m0.AddDetail(detail); detail.Master = m0; m.MoreDetails.Add(detail); detail.SubDetails = new HashedSet(); detail.SubDetails.Add(subdetail); mid = s.Save(m); s.Flush(); } using (ISession s = OpenSession()) { Master m = (Master)s.Load(typeof(Master), mid); IEnumerator enumer = m.MoreDetails.GetEnumerator(); enumer.MoveNext(); Assert.IsTrue(((Detail)enumer.Current).SubDetails.Count != 0); s.Delete(m); s.Delete(s.Load(typeof(Master), m0id)); s.Flush(); } }
public async Task MultiLevelCascadeAsync() { //if( dialect is Dialect.HSQLDialect ) return; object mid; object m0id; using (ISession s = OpenSession()) { Detail detail = new Detail(); SubDetail subdetail = new SubDetail(); Master m = new Master(); Master m0 = new Master(); m0id = await(s.SaveAsync(m0)); m0.AddDetail(detail); detail.Master = m0; m.MoreDetails.Add(detail); detail.SubDetails = new HashSet <SubDetail> { subdetail }; mid = await(s.SaveAsync(m)); await(s.FlushAsync()); } using (ISession s = OpenSession()) { Master m = (Master)await(s.LoadAsync(typeof(Master), mid)); IEnumerator enumer = m.MoreDetails.GetEnumerator(); enumer.MoveNext(); Assert.IsTrue(((Detail)enumer.Current).SubDetails.Count != 0); await(s.DeleteAsync(m)); await(s.DeleteAsync(await(s.LoadAsync(typeof(Master), m0id)))); await(s.FlushAsync()); } }
static void Main(string[] args) { RootObject obj = new RootObject(); obj.No = "1"; obj.Age = 7; int lenght = 3; int counter = 0; for (int i = 0; i < lenght; i++) { SubDetail detail = new SubDetail(); detail.Sub1 = (counter + 1).ToString(); detail.Sub2 = (counter + 1).ToString(); detail.Sub3 = (counter + 1).ToString(); if (obj.SubDetail == null) { obj.SubDetail = new List <SubDetail>(); } obj.SubDetail.Add(detail); } var jsonString = JsonConvert.SerializeObject(obj); Console.WriteLine(jsonString); }
private void refreshSubindicators(QueryManager qm, int dbCheck) { Dictionary <string, object> parameters = new Dictionary <string, object> { { "@IND_ID", indCode.Text }, { "@TARG_ID", hiddenTargId.Text } }; try { DataSet mainDs = qm.executeReaderDataSet("SELECT I.Indicator_Code, " + "I.Indicator_descEn, I.Indicator_descAr, T.Target_ID, T.Target_DescEn, " + "T.Target_DescAr, G.Goal_ID, G.Goal_DescEn, G.Goal_DescAr, " + "S.Subindicator_Code, S.Subindicator_DescAr, S.Subindicator_DescEn, S.Is_Uploaded, S.Dimensions, " + "S.SERIES, S.UNIT_MULT, S.UNIT_MEASURE, S.OBS_STATUS " + "FROM GOAL G INNER JOIN Target T ON G.Goal_ID = T.Goal_ID " + "INNER JOIN Ind_Code IC ON T.Target_ID = IC.Target_ID " + "INNER JOIN Indicator I ON IC.Indicator_Code = I.Indicator_Code " + "INNER JOIN Subindicator S ON S.Indicator_Code = I.Indicator_Code " + "WHERE I.Indicator_Code IN(@IND_ID) AND IC.Target_ID IN (@TARG_ID)" + "AND S.Is_Valid = 1 " + "ORDER BY S.Subindicator_Code", parameters); SubDetail.DataSource = mainDs; SubDetail.DataBind(); DataSet dsObsStatus = qm.executeReaderDataSet("SELECT OBS_STATUS," + " (OBS_STATUS + ' - ' + OBS_STATUS_DESC_EN) DESC_EN" + " FROM CL_OBS_STATUS" + " ORDER BY OBS_STATUS"); DataSet dsUnitMeasure = qm.executeReaderDataSet("SELECT UNIT_MEASURE," + " (UNIT_MEASURE + ' - ' + UNIT_MEASURE_DESC_EN) DESC_EN" + " FROM CL_UNIT_MEASURE" + " ORDER BY UNIT_MEASURE"); DataSet dsUnitMultiplier = qm.executeReaderDataSet("SELECT UNIT_MULT," + " (UNIT_MULT + ' - ' + UNIT_MULT_DESC_EN) DESC_EN" + " FROM CL_UNIT_MULT" + " ORDER BY UNIT_MULT"); RepeaterItem rp = this.SubDetail.Items[this.SubDetail.Items.Count - 1]; HiddenField goalIdField = (HiddenField)rp.FindControl("goalId"); goalId = goalIdField.Value; backLink.HRef = "./target.aspx?goalId=" + goalIdField.Value; newSubSeries.Value = ""; newUnitMeasure.DataSource = dsUnitMeasure; newUnitMeasure.DataBind(); newUnitMultiplier.DataSource = dsUnitMultiplier; newUnitMultiplier.DataBind(); newObsStatus.DataSource = dsObsStatus; newObsStatus.DataBind(); newSubDescEN.Value = ""; newSubDescAR.Value = ""; for (int i = 0; i < this.SubDetail.Items.Count; i++) { RepeaterItem rp2 = this.SubDetail.Items[i]; DropDownList ddl = (DropDownList)rp2.FindControl("obsStatus"); ddl.DataSource = dsObsStatus; ddl.DataBind(); ddl.SelectedValue = mainDs.Tables[0].Rows[i][17].ToString().Trim(); ddl = (DropDownList)rp2.FindControl("unitMeasure"); ddl.DataSource = dsUnitMeasure; ddl.DataBind(); ddl.SelectedValue = mainDs.Tables[0].Rows[i][16].ToString().Trim(); ddl = (DropDownList)rp2.FindControl("unitMultiplier"); ddl.DataSource = dsUnitMultiplier; ddl.DataBind(); ddl.SelectedValue = mainDs.Tables[0].Rows[i][15].ToString().Trim(); } } catch { //there are no subindicators from this indicator SqlDataReader reader = qm.executeReader( "SELECT T.Target_ID, G.Goal_ID FROM GOAL G INNER JOIN Target T ON G.Goal_ID = T.Goal_ID " + "INNER JOIN Ind_Code IC ON T.Target_ID = IC.Target_ID WHERE IC.Indicator_Code IN(@ID) AND IC.Target_ID IN (@TARG_ID)", parameters); try { while (reader.Read()) { goalId = reader["Goal_ID"].ToString(); backLink.HRef = "./target.aspx?goalId=" + goalId; } } finally { reader.Close(); } } switch (dbCheck) { case 0: saveMessage.Text = ""; break; case 1: saveMessage.Text = "<div class='db-alert db-success hideMe'>Data updated successfully</div>"; break; case 2: saveMessage.Text = "<div class='db-alert db-error hideMe'>Warning! Data not updated.</div>"; break; } }