public MainGroup(Data.GoodiesGroup mainGroup, List <Data.GoodiesGroup> subGroups) { ID = mainGroup.ID; name = mainGroup.CName; code = mainGroup.Code; SubGroups = new List <SubGroup>(); foreach (var item in subGroups) { SubGroups.Add(new SubGroup() { name = item.CName, code = item.Code, Id = item.ID }); } }
protected void btnRegister_Click(object sender, EventArgs e) { try { var goodiesGroupBusiness = Business.GetGoodiesGroupBusiness(); if (txtMainGroupCode.Text.Trim().Length == 0) { throw new Exception(Localize.ex_no_main_group_code); } if (txtMainGroupTitle.Text.Trim().Length == 0) { throw new Exception(Localize.ex_no_main_group_title); } if (txtSubsidiaryGroupCode.Text.Trim().Length != 0 && txtSubsidiaryGroupTitle.Text.Trim().Length == 0) { throw new Exception(Localize.ex_no_subsidiary_group_title); } if (txtSubsidiaryGroupCode.Text.Trim().Length == 0 && txtSubsidiaryGroupTitle.Text.Trim().Length != 0) { throw new Exception(Localize.ex_no_subsidiary_group_code); } Data.GoodiesGroup mainGroup, subsidiaryGroup = null; if (MainGroupId.HasValue && SubsidiaryGroupId.HasValue) { subsidiaryGroup = goodiesGroupBusiness.GetById(SubsidiaryGroupId.Value); mainGroup = goodiesGroupBusiness.GetById(subsidiaryGroup.ParentId.Value); } else if (MainGroupId.HasValue) { mainGroup = goodiesGroupBusiness.GetById(MainGroupId.Value); } else { mainGroup = goodiesGroupBusiness.GetByCode(txtMainGroupCode.Text); if (mainGroup == null) { mainGroup = new Data.GoodiesGroup(); } subsidiaryGroup = goodiesGroupBusiness.GetByCode(txtMainGroupCode.Text + txtSubsidiaryGroupCode.Text); if (subsidiaryGroup == null) { subsidiaryGroup = new Data.GoodiesGroup(); } else { throw new Exception(Localize.ex_duplicated_subsidiary_group_code); } } mainGroup.Code = txtMainGroupCode.Text; mainGroup.CName = txtMainGroupTitle.Text; mainGroup.CodeTitleId = Common.Constants.CodeTitle.CommodityMainGroup; if (subsidiaryGroup != null) { subsidiaryGroup.Code = txtMainGroupCode.Text + txtSubsidiaryGroupCode.Text; subsidiaryGroup.CName = txtSubsidiaryGroupTitle.Text; subsidiaryGroup.CodeTitleId = Common.Constants.CodeTitle.CommoditySubsidiaryGroup; if (goodiesGroupBusiness.IsNameExist(subsidiaryGroup)) { throw new Exception(Localize.ex_duplicated_subsidiary_group_name); } } if (goodiesGroupBusiness.IsNameExist(mainGroup)) { throw new Exception(Localize.ex_duplicated_main_group_name); } using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted, Timeout = new TimeSpan(2, 0, 0) })) { goodiesGroupBusiness.Save(mainGroup, string.Empty); if (subsidiaryGroup != null && txtSubsidiaryGroupTitle.Text != string.Empty && txtSubsidiaryGroupCode.Text != string.Empty) { subsidiaryGroup.ParentId = mainGroup.ID; goodiesGroupBusiness.Save(subsidiaryGroup, mainGroup.uniquepath); } scope.Complete(); } this.Close(); } catch (Exception ex) { AccountingKernel.Forms.Base.BaseWindow.ShowError(ex); } }