/// <summary> /// 새로운 MasterCodeItem을 생성합니다. /// </summary> /// <param name="masterCode">MasterCode 인스턴스</param> /// <param name="itemCode">Item Code</param> /// <param name="itemName">Item Name (표시명)</param> /// <param name="itemValue">Item Value (값)</param> /// <param name="viewOrder">정렬 순서</param> /// <returns>새로운 <see cref="MasterCodeItem"/></returns> public MasterCodeItem CreateMasterCodeItem(MasterCode masterCode, string itemCode, string itemName, string itemValue, int? viewOrder) { masterCode.ShouldNotBeNull("masterCode"); itemCode.ShouldNotBeWhiteSpace("itemCode"); if(IsDebugEnabled) log.Debug(@"새로운 MasterCodeItem을 생성합니다... masterCode={0}, itemCode={1}, itemName={2}, itemValue={3}, viewOrder={4}", masterCode, itemCode, itemName, itemValue, viewOrder); var codeItem = new MasterCodeItem(masterCode, itemCode, itemName, itemValue) { ViewOrder = viewOrder }; masterCode.Items.Add(codeItem); // UnitOfWork.CurrentSession.SaveOrUpdate(masterCode); // 정렬 순서를 넣는다. if(viewOrder.HasValue == false) codeItem.ViewOrder = Math.Max(0, masterCode.Items.Count - 1); return Repository<MasterCodeItem>.SaveOrUpdate(codeItem); }
protected virtual void CreateMasterCode() { var products = NAccessContext.Domains.ProductRepository.FindAllActiveProduct(); foreach(var product in products) { foreach(var masterCodeCode in SampleData.GetCodes("MASTER_CODE_", SampleData.AvgSampleCount)) { var code = new MasterCode(product, masterCodeCode, masterCodeCode) { Description = "MasterCode " + masterCodeCode }; int viewOrder = 0; foreach(var itemCode in SampleData.GetCodes("CODE_ITEM_CODE_", SampleData.MaxSampleCount)) { var item = new MasterCodeItem(code, itemCode, itemCode, itemCode) { Description = "MasterCodeItem " + itemCode, ViewOrder = viewOrder }; code.Items.Add(item); //Console.WriteLine("Item[{0}] HashCode=[{1}]", item.Code, item.GetHashCode()); viewOrder++; } Assert.AreEqual(viewOrder, code.Items.Count); Repository<MasterCode>.SaveOrUpdate(code); } } UnitOfWork.Current.TransactionalFlush(); }