public void Import(IObjectSpace os, String file_name) { FileHelperEngine <DealDataImport> engine = new FileHelperEngine <DealDataImport>(); engine.Options.IgnoreFirstLines = 1; engine.Options.IgnoreEmptyLines = true; Int32 line = 0; // DealDataImport[] deal_data = engine.ReadStream(reader); DealDataImport[] deal_data = engine.ReadFile(file_name); IList <fmCOrder> orders = new List <fmCOrder>(); IList <crmStage> stages = new List <crmStage>(); IList <crmDeliveryUnit> delivery_units = new List <crmDeliveryUnit>(); IList <crmDeliveryItem> delivery_items = new List <crmDeliveryItem>(); IList <crmPaymentUnit> payment_units = new List <crmPaymentUnit>(); IList <crmPaymentItem> payment_items = new List <crmPaymentItem>(); IList <csNomenclature> materials = os.GetObjects <csNomenclature>(); foreach (DealDataImport record in deal_data) { fmCOrder order = null; crmStage stage = null; crmDeliveryUnit delivery_unit = null; crmDeliveryItem delivery_item = null; crmPaymentUnit payment_unit = null; line++; // crmPaymentItem payment_item = null; if (!String.IsNullOrEmpty(record.OrderCode)) { order = orders.FirstOrDefault(x => x.Code == record.OrderCode); if (order == null) { order = os.FindObject <fmCOrder>(new BinaryOperator("Code", record.OrderCode, BinaryOperatorType.Equal)); if (order == null) { throw new ArgumentException("Неизвестный заказ: " + record.OrderCode + " Строка: " + line, "OrderCode"); } else { orders.Add(order); } } } if (String.IsNullOrEmpty(record.StageCode)) { throw new ArgumentException("Номер этапа пустой. Строка: " + line, "StageCode"); } if (record.StageCode.Substring(0, 3) == "Adv") { stage = StageStructure.FirstStage; } else { stage = StageStructure.Stages.FirstOrDefault(x => x.Code == record.StageCode); if (stage == null) { stage = StageStructure.FirstStage.SubStagesCreate(); stage.Code = record.StageCode; } if (!stages.Contains(stage)) { stage.Order = order; stage.StageType = Contract.StageType.FINANCE; stage.DeliveryMethod = DeliveryMethod.UNITS_SHEDULE; stage.PaymentMethod = PaymentMethod.SCHEDULE; // stage.DateEnd = stage.DateBegin; // stage.DateFinish = stage.DateEnd; stages.Add(stage); } } if (record.StageCode.Substring(0, 3) != "Adv") { if (order == null) { throw new ArgumentException("Заказ не найден", "OrderCode"); } if (record.DateContract == null) { throw new ArgumentException("Незаполнена плановая дата исполнения. Строка: " + line, "DateContract"); } delivery_unit = stage.DeliveryPlan.DeliveryUnits.FirstOrDefault(x => x.DatePlane == record.DateContract); if (record.DateContract > stage.DateEnd) { stage.DateEnd = (DateTime)record.DateContract; } if (delivery_unit == null) { delivery_unit = stage.DeliveryPlan.DeliveryUnitCreate(); delivery_unit.DatePlane = (DateTime)record.DateContract; } if (!delivery_units.Contains(delivery_unit)) { delivery_units.Add(delivery_unit); } delivery_unit.Order = order; if (record.Count == null) { throw new ArgumentException("Кол-во пустое. Строка: " + line, "Count"); } if (record.Price == null) { throw new ArgumentException("Цена пустая. Строка: " + line, "Price"); } if (String.IsNullOrEmpty(record.NomenclatureCode)) { throw new ArgumentException("Номенклатура пустая. Строка: " + line, "NomenclatureCode"); } if (!record.NomenclatureCode.Contains("*I") && !record.NomenclatureCode.Contains("*E")) { // csMaterial material = ; csNomenclature nomenclature = materials.FirstOrDefault(x => x.CodeTechnical == record.NomenclatureCode); if (nomenclature == null) { throw new ArgumentException("Номенклатура: " + record.NomenclatureCode + " ненайдена. Строка: " + line, "NomenclatureCode"); } delivery_item = delivery_unit.DeliveryItems.FirstOrDefault(x => x.Nomenclature == nomenclature); if (delivery_item == null) { if (nomenclature is csMaterial) { delivery_item = delivery_unit.DeliveryItemsCreateMaterial(); ((crmDeliveryMaterial)delivery_item).Material = nomenclature as csMaterial; } else if (nomenclature is csService) { delivery_item = delivery_unit.DeliveryItemsCreateService(); ((crmDeliveryService)delivery_item).Service = nomenclature as csService; } else { throw new ArgumentException("Номенклатура: " + record.NomenclatureCode + " неверного типа. Строка: " + line, "NomenclatureCode"); } } delivery_item.CostCalculateMethod = CostCalculateMethod.CALC_COST; delivery_item.NDSCalculateMethod = NDSCalculateMethod.FROM_COST; delivery_item.FullCalculateMethod = FullCalculateMethod.CALC_FULL; delivery_item.Price = (Decimal)record.Price; delivery_item.CountUnit = delivery_item.Nomenclature.BaseUnit; if (delivery_items.Contains(delivery_item)) { delivery_item.CountValue += (Decimal)record.Count; } else { delivery_item.CountValue = (Decimal)record.Count; delivery_items.Add(delivery_item); } } } if (record.DateContract == null) { throw new ArgumentException("Дата плановая исполнения не заполнена. Строка: " + line, "DateContract"); } payment_unit = stage.PaymentPlan.PaymentUnits.FirstOrDefault(x => x.DatePlane == record.DateContract && x is crmPaymentCasheLess); //if (payment_unit != null && !payment_units.Contains(payment_unit)) { // os.Delete(payment_unit); // payment_unit = null; //} if (payment_unit == null) { payment_unit = stage.PaymentPlan.PaymentCasheLessCreate(); payment_unit.DatePlane = (DateTime)record.DateContract; if (payment_unit.DatePlane > stage.DateFinish) { stage.DateFinish = payment_unit.DatePlane; } } payment_unit.Order = order; if (!payment_units.Contains(payment_unit)) { ((crmPaymentCasheLess)payment_unit).SummFull = (Decimal)record.SummaPayment; payment_units.Add(payment_unit); } else { ((crmPaymentCasheLess)payment_unit).SummFull += (Decimal)record.SummaPayment; } // payment_item = payment_unit.PaymentItems.FirstOrDefault(x => x.Order == order); // if (payment_item == null) { // payment_item = payment_unit.PaymentItemsCreateMoney(); // } //if (payment_unit.PaymentItems.Count == 0) { // payment_item = payment_unit.PaymentItemsCreateMoney(); //} //else { // payment_item = payment_unit.PaymentItems[0]; //} //if (payment_items.Contains(payment_item)) { // payment_item.SummFull += (Decimal)record.SummaPayment; // payment_item.AccountSumma += (Decimal)record.SummaPayment; //} //else { // payment_item.SummFull = (Decimal)record.SummaPayment; // payment_item.AccountSumma = (Decimal)record.SummaPayment; // payment_items.Add(payment_item); //} } IList <crmDeliveryUnit> del_delivery_units = new List <crmDeliveryUnit>(); IList <crmDeliveryItem> del_delivery_items = new List <crmDeliveryItem>(); IList <crmPaymentUnit> del_payment_units = new List <crmPaymentUnit>(); IList <crmPaymentItem> del_payment_items = new List <crmPaymentItem>(); foreach (crmStage stage in stages) { foreach (crmDeliveryUnit delivery_unit in stage.DeliveryPlan.DeliveryUnits) { if (!delivery_units.Contains(delivery_unit)) { del_delivery_units.Add(delivery_unit); foreach (crmDeliveryItem item in delivery_unit.DeliveryItems) { del_delivery_items.Add(item); } } else { foreach (crmDeliveryItem item in delivery_unit.DeliveryItems) { if (!delivery_items.Contains(item)) { del_delivery_items.Add(item); } } } } foreach (crmPaymentUnit payment_unit in stage.PaymentPlan.PaymentUnits) { if (!payment_units.Contains(payment_unit)) { del_payment_units.Add(payment_unit); foreach (crmPaymentItem item in payment_unit.PaymentItems) { del_payment_items.Add(item); } } else { foreach (crmPaymentItem item in payment_unit.PaymentItems) { if (!payment_items.Contains(item)) { del_payment_items.Add(item); } } } } } // Не удаляем PaymentItems, поскольку не создаем их, а создаем PaymentUnitCashLess, который сам создает Item // os.Delete(del_payment_items); os.Delete(del_payment_units); os.Delete(del_delivery_items); os.Delete(del_delivery_units); }
public void Import(IObjectSpace os, String file_name) { FileHelperEngine <DealDataImport> engine = new FileHelperEngine <DealDataImport>(); engine.Options.IgnoreFirstLines = 1; engine.Options.IgnoreEmptyLines = true; // DealDataImport[] deal_data = engine.ReadStream(reader); DealDataImport[] deal_data = engine.ReadFile(file_name); IList <fmCOrder> orders = new List <fmCOrder>(); IList <crmStage> stages = new List <crmStage>(); IList <crmDeliveryUnit> delivery_units = new List <crmDeliveryUnit>(); IList <crmDeliveryItem> delivery_items = new List <crmDeliveryItem>(); IList <crmPaymentUnit> payment_units = new List <crmPaymentUnit>(); IList <crmPaymentItem> payment_items = new List <crmPaymentItem>(); IList <csMaterial> materials = os.GetObjects <csMaterial>(); foreach (DealDataImport record in deal_data) { fmCOrder order = null; crmStage stage = null; crmDeliveryUnit delivery_unit = null; crmDeliveryItem delivery_item = null; crmPaymentUnit payment_unit = null; crmPaymentItem payment_item = null; if (String.IsNullOrEmpty(record.StageCode)) { throw new ArgumentException("Stage Code is Empty", "StageCode"); } if (record.StageCode.Substring(0, 3) == "Adv") { stage = StageStructure.FirstStage; } else { stage = StageStructure.Stages.FirstOrDefault(x => x.Code == record.StageCode); if (stage == null) { stage = StageStructure.FirstStage.SubStagesCreate(); stage.Code = record.StageCode; } if (!stages.Contains(stage)) { stage.StageType = Contract.StageType.FINANCE; stage.DeliveryMethod = DeliveryMethod.UNITS_SHEDULE; stage.PaymentMethod = PaymentMethod.SCHEDULE; // stage.DateEnd = stage.DateBegin; // stage.DateFinish = stage.DateEnd; stages.Add(stage); } } if (record.StageCode.Substring(0, 3) != "Adv") { if (String.IsNullOrEmpty(record.OrderCode)) { throw new ArgumentException("Order Code is Empty", "OrderCode"); } order = orders.FirstOrDefault(x => x.Code == record.OrderCode); if (order == null) { order = os.FindObject <fmCOrder>(new BinaryOperator("Code", record.OrderCode, BinaryOperatorType.Equal)); if (order == null) { throw new ArgumentException("Order unknow", "OrderCode"); } else { orders.Add(order); } stage.Order = order; } if (record.DateContract == null) { throw new ArgumentException("Date Contract is Empty", "DateContract"); } delivery_unit = stage.DeliveryPlan.DeliveryUnits.FirstOrDefault(x => x.DatePlane == record.DateContract); if (record.DateContract > stage.DateEnd) { stage.DateEnd = (DateTime)record.DateContract; } if (delivery_unit == null) { delivery_unit = stage.DeliveryPlan.DeliveryUnitCreate(); delivery_unit.DatePlane = (DateTime)record.DateContract; } if (!delivery_units.Contains(delivery_unit)) { delivery_units.Add(delivery_unit); } delivery_unit.Order = order; if (record.Count == null) { throw new ArgumentException("Count is Empty", "Count"); } if (record.Price == null) { throw new ArgumentException("Price is Empty", "Price"); } if (String.IsNullOrEmpty(record.NomenclatureCode)) { throw new ArgumentException("Nomenclature Code is Empty", "NomenclatureCode"); } if (!record.NomenclatureCode.Contains("*I") && !record.NomenclatureCode.Contains("*E")) { csMaterial material = materials.FirstOrDefault(x => x.CodeTechnical == record.NomenclatureCode); if (material == null) { throw new ArgumentException("Nomenclature unknow", "NomenclatureCode"); } delivery_item = delivery_unit.DeliveryItems.FirstOrDefault(x => x.Nomenclature == material); if (delivery_item == null) { delivery_item = delivery_unit.DeliveryItemsCreateMaterial(); ((crmDeliveryMaterial)delivery_item).Material = material; } delivery_item.CostCalculateMethod = CostCalculateMethod.CALC_COST; delivery_item.NDSCalculateMethod = NDSCalculateMethod.FROM_COST; delivery_item.FullCalculateMethod = FullCalculateMethod.CALC_FULL; delivery_item.Price = (Decimal)record.Price; delivery_item.CountUnit = delivery_item.Nomenclature.BaseUnit; if (delivery_items.Contains(delivery_item)) { delivery_item.CountValue += (Decimal)record.Count; } else { delivery_item.CountValue = (Decimal)record.Count; delivery_items.Add(delivery_item); } } } if (record.DateContract == null) { throw new ArgumentException("Date Contract is Empty", "DateContract"); } payment_unit = stage.PaymentPlan.PaymentUnits.FirstOrDefault(x => x.DatePlane == record.DateContract && x is crmPaymentCasheLess); if (payment_unit == null) { payment_unit = stage.PaymentPlan.PaymentCasheLessCreate(); payment_unit.DatePlane = (DateTime)record.DateContract; if (payment_unit.DatePlane > stage.DateFinish) { stage.DateFinish = payment_unit.DatePlane; } } if (!payment_units.Contains(payment_unit)) { ((crmPaymentCasheLess)payment_unit).SummFull = (Decimal)record.SummaPayment; payment_units.Add(payment_unit); } else { ((crmPaymentCasheLess)payment_unit).SummFull += (Decimal)record.SummaPayment; } // payment_item = payment_unit.PaymentItems.FirstOrDefault(x => x.Order == order); // if (payment_item == null) { // payment_item = payment_unit.PaymentItemsCreateMoney(); // } //if (payment_unit.PaymentItems.Count == 0) { // payment_item = payment_unit.PaymentItemsCreateMoney(); //} //else { // payment_item = payment_unit.PaymentItems[0]; //} //if (payment_items.Contains(payment_item)) { // payment_item.SummFull += (Decimal)record.SummaPayment; // payment_item.AccountSumma += (Decimal)record.SummaPayment; //} //else { // payment_item.SummFull = (Decimal)record.SummaPayment; // payment_item.AccountSumma = (Decimal)record.SummaPayment; // payment_items.Add(payment_item); //} } IList <crmDeliveryUnit> del_delivery_units = new List <crmDeliveryUnit>(); IList <crmPaymentUnit> del_payment_units = new List <crmPaymentUnit>(); foreach (crmStage stage in stages) { foreach (crmDeliveryUnit delivery_unit in stage.DeliveryPlan.DeliveryUnits) { if (!delivery_units.Contains(delivery_unit)) { del_delivery_units.Add(delivery_unit); } } foreach (crmPaymentUnit payment_unit in stage.PaymentPlan.PaymentUnits) { if (!payment_units.Contains(payment_unit)) { del_payment_units.Add(payment_unit); } } } os.Delete(del_delivery_units); os.Delete(del_payment_units); }
protected void FillDatabaseForAnalysis(Session ssn) { IObjectSpace objectSpace = new ObjectSpace((UnitOfWork)ssn); int RecordCountGenerated = 10000; // Максимальное количество генерируемых записей в журнале регистрации crmCashFlowRegister Guid token = Guid.NewGuid(); // Делаем три валюты IList <csValuta> valutaList = new List <csValuta>(); csValuta valutaRUR = objectSpace.CreateObject <csValuta>(); valutaRUR.Code = "RUR"; valutaRUR.NameShort = "Руб."; valutaRUR.NameFull = "Рубль"; valutaList.Add(valutaRUR); csValuta valutaUSD = objectSpace.CreateObject <csValuta>(); valutaUSD.Code = "USD"; valutaUSD.NameShort = "bak"; valutaUSD.NameFull = "Dollar"; valutaList.Add(valutaUSD); csValuta valutaEUR = objectSpace.CreateObject <csValuta>(); valutaEUR.Code = "EUR"; valutaEUR.NameShort = "euro"; valutaEUR.NameFull = "Euro"; valutaList.Add(valutaEUR); objectSpace.CommitChanges(); //// Создаём maxContractDocumentCount документов //int maxContractDocumentCount = 300; //IList<fmSubject> ContractDocumentList = new List<fmSubject>(); //for (int i = 0; i < maxContractDocumentCount; i++) { // fmSubject сontractDocument = objectSpace.CreateObject<fmSubject>(); // сontractDocument.Code = "S" + i.ToString(); // сontractDocument.Name = "Subj" + i.ToString(); // сontractDocument.DateBegin = DateTime.Now; // сontractDocument.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30)); // ContractDocumentList.Add(subject); //} //objectSpace.CommitChanges(); // Создаём maxSubjectCount тем int maxSubjectCount = 120; IList <fmCSubjectExt> subjectList = new List <fmCSubjectExt>(); for (int i = 0; i < maxSubjectCount; i++) { fmCSubjectExt subject = objectSpace.CreateObject <fmCSubjectExt>(); subject.Code = "S" + i.ToString(); subject.Name = "Subj" + i.ToString(); subject.DateBegin = DateTime.Now; subject.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30)); subjectList.Add(subject); } objectSpace.CommitChanges(); // Создаём maxCostItemCount int maxCostItemCount = 10; IList <fmCostItem> costItemList = new List <fmCostItem>(); for (int i = 0; i < maxCostItemCount; i++) { fmCostItem costItem = objectSpace.CreateObject <fmCostItem>(); costItem.Code = "CI" + i.ToString(); costItem.Name = "CostItem" + i.ToString(); costItemList.Add(costItem); } objectSpace.CommitChanges(); // Заготавливаем maxCostModelCount int maxCostModelCount = 5; IList <crmCostModel> CostModelList = new List <crmCostModel>(); for (int i = 0; i < maxCostModelCount; i++) { crmCostModel costModel = objectSpace.CreateObject <crmCostModel>(); costModel.Code = "CM: " + i.ToString(); costModel.Description = "CostModel: " + i.ToString(); costModel.Name = "CostModel " + i.ToString(); CostModelList.Add(costModel); //objectSpace.CommitChanges(); } objectSpace.CommitChanges(); /* * // Заготавливаем maxContragentPartyRuCount штук контрагентов * int maxContragentPartyRuCount = 120; * IList<crmPartyRu> ContragentPartyRuList = new List<crmPartyRu>(); * * for (int i = 0; i < maxContragentPartyRuCount; i++) { * crmPartyRu partyRu = objectSpace.CreateObject<crmPartyRu>(); * * partyRu.Code = "cF"; * partyRu.Description = "ContragentParty " + i.ToString(); * * //crmPhysicalPerson person = objectSpace.CreateObject<crmPhysicalPerson>(); * //person.INN = "CP INN" + i; * //person.FirstName = "Гадя " + i; * //person.MiddleName = "Петрович " + i; * //person.MiddleName = "Хренова " + i; * * crmCPerson person = objectSpace.CreateObject<crmCPerson>(); * person.INN = "CP INN" + i; * //person.FirstName = "Гадя " + i; * //person.MiddleName = "Петрович " + i; * //person.MiddleName = "Хренова " + i; * * partyRu.Person = person; * person.Partys.Add(partyRu); * * ContragentPartyRuList.Add(partyRu); * * //objectSpace.CommitChanges(); * } * * objectSpace.CommitChanges(); */ // Заготавливаем maxContragentcLegalPersonCount штук контрагентов int maxCLegalPersonCount = 120; IList <crmCLegalPerson> CLegalPersonList = new List <crmCLegalPerson>(); for (int i = 0; i < maxCLegalPersonCount; i++) { crmCLegalPerson cLegalPerson = objectSpace.CreateObject <crmCLegalPerson>(); cLegalPerson.Name = "ИнтекоАГ" + i; cLegalPerson.NameFull = "ИнтекоАГ" + i; cLegalPerson.INN = "ИНН 1111111111"; cLegalPerson.Code = "LP" + i; cLegalPerson.Description = "LegalPerson Description" + i; cLegalPerson.KPP = "КПП 222222222"; cLegalPerson.RegCode = "RC"; //cLegalPerson.Person.Address = address; //cLegalPerson.Party.AddressFact = address; //cLegalPerson.Party.AddressPost = address; cLegalPerson.Party.Person = cLegalPerson.Person; CLegalPersonList.Add(cLegalPerson); } objectSpace.CommitChanges(); // Заготавливаем maxContractPartyCount штук участников договоров int maxContractPartyCount = 50; IList <crmContractParty> ContractPartyList = new List <crmContractParty>(); for (int i = 0; i < maxContractPartyCount; i++) { crmContractParty contractParty = objectSpace.CreateObject <crmContractParty>(); contractParty.INN = "INN: " + i.ToString(); contractParty.KPP = "KPP: " + i.ToString(); contractParty.Name = "ContractParty " + i.ToString(); contractParty.Party = CLegalPersonList[GetRandomIntegerFromInterval(1, CLegalPersonList.Count) - 1].Party; contractParty.RegNumber = "RegNumber " + i.ToString(); ContractPartyList.Add(contractParty); //objectSpace.CommitChanges(); } objectSpace.CommitChanges(); // SHU 2011-12-26 Order не вводится, т.к. имеет срабатывает правило Validation Required для какого-то поля // Заготавливаем maxOrderCount штук заказов int maxOrderCount = 30; IList <fmCOrderExt> OrderList = new List <fmCOrderExt>(); for (int i = 0; i < maxOrderCount; i++) { fmCOrderExt order = objectSpace.CreateObject <fmCOrderExt>(); //order.Code = "Ord: " + i.ToString(); order.Description = "Order: " + i.ToString(); //order.Name = "Order " + i.ToString(); //order.DateBegin = DateTime.Now; //order.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30)); order.Subject = subjectList[GetRandomIntegerFromInterval(1, subjectList.Count) - 1]; OrderList.Add(order); //objectSpace.CommitChanges(); } objectSpace.CommitChanges(); // Заготавливаем maxNDSRateCount штук формул расчёта НДС int maxNDSRateCount = 1; IList <csNDSRate> NDSRateList = new List <csNDSRate>(); for (int i = 0; i < maxNDSRateCount; i++) { csNDSRate ndsRate = objectSpace.CreateObject <csNDSRate>(); ndsRate.Code = "20/120"; // + i.ToString(); ndsRate.Numerator = 20; // + i.ToString(); ndsRate.Denominator = 120; // + i.ToString(); ndsRate.Name = "20/120"; //ndsRate.RateOfNDS = 120/100; NDSRateList.Add(ndsRate); //objectSpace.CommitChanges(); } objectSpace.CommitChanges(); // Создаём maxStageCount этапов int maxStageCount = 20; IList <crmStage> stageList = new List <crmStage>(); for (int i = 0; i < maxStageCount; i++) { crmDeliveryPlan deliveryPlan = objectSpace.CreateObject <crmDeliveryPlan>(); deliveryPlan.DateBegin = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 5)); deliveryPlan.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 15)); deliveryPlan.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; deliveryPlan.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1]; deliveryPlan.DeliveryMethod = DeliveryMethod.UNIT_AT_THE_END; deliveryPlan.NDSRate = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1]; deliveryPlan.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; crmPaymentPlan paymentPlan = objectSpace.CreateObject <crmPaymentPlan>(); paymentPlan.DateBegin = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 5)); paymentPlan.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 15)); paymentPlan.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; paymentPlan.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1]; paymentPlan.NDSRate = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1]; paymentPlan.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; crmStage stage = objectSpace.CreateObject <crmStage>(); deliveryPlan.Stage = stage; stage.Code = "S" + i.ToString(); //stage.DeliveryDate = null; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 20)); ////stage.CurrentCost = "Stg" + i.ToString(); ////stage.CurrentPayment = "Stg" + i.ToString(); //stage.Customer = null; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; ////stage.DeliveryItem = "Stg" + i.ToString(); ////stage.DeliveryItems = "Stg" + i.ToString(); // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.DeliveryMethod = DeliveryMethod.UNIT_AT_THE_END; ////stage.DeliveryUnits = "Stg" + i.ToString(); stage.DescriptionLong = "Stage" + i.ToString(); stage.DescriptionShort = "Stg" + i.ToString(); //stage.FullCode = "Stg" + i.ToString(); // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.Order = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1]; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.PaymentMethod = PaymentMethod.ADVANCE; stage.DeliveryPlan = deliveryPlan; // ДОРАБОТАТЬ!!! "Stg" + i.ToString(); stage.PaymentPlan = paymentPlan; // ДОРАБОТАТЬ!!! "Stg" + i.ToString(); stage.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; stage.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1]; //stage.PaymentUnits = "Stg" + i.ToString(); // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.PaymentValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; //stage.Settlement = "Stg" + i.ToString(); stage.SettlementDate = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 50)); stage.StageStructure = null; // ДОРАБОТАТЬ!!! "Stg" + i.ToString(); //stage.StageMain = "Stg" + i.ToString(); // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.StageType = StageType.FINANCE; //stage.Supplier = null; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; stage.DateFinish = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 40)); // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.DateBegin = DateTime.Now; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30)); stageList.Add(stage); } objectSpace.CommitChanges(); // Создаём maxContractCategoryCount Категорий контрактов int maxContractCategoryCount = 10; IList <crmContractCategory> сontractCategoryList = new List <crmContractCategory>(); for (int i = 0; i < maxContractCategoryCount; i++) { crmContractCategory contractCategory = objectSpace.CreateObject <crmContractCategory>(); contractCategory.Code = "CC" + i.ToString(); contractCategory.Name = "ContractCategory " + i.ToString(); сontractCategoryList.Add(contractCategory); } objectSpace.CommitChanges(); // Создаём maxDepartmentCount подразделений int maxDepartmentCount = 20; IList <hrmDepartment> departmentList = new List <hrmDepartment>(); for (int i = 0; i < maxDepartmentCount; i++) { hrmDepartment department = objectSpace.CreateObject <hrmDepartment>(); department.Code = "Dep" + i.ToString(); department.Name = "Department " + i.ToString(); departmentList.Add(department); } objectSpace.CommitChanges(); // Создаём maxStaffCount сотрудников int maxStaffCount = 30; IList <hrmStaff> staffList = new List <hrmStaff>(); IList <crmPhysicalPerson> physicalPersonList = new List <crmPhysicalPerson>(); for (int i = 0; i < maxStaffCount; i++) { crmPhysicalPerson physicalPerson = objectSpace.CreateObject <crmPhysicalPerson>(); physicalPerson.FirstName = "Иван " + i.ToString(); physicalPerson.MiddleName = "Иванович " + i.ToString(); physicalPerson.LastName = "Иванов " + i.ToString(); physicalPerson.INN = "ИНН " + i.ToString(); hrmStaff staff = objectSpace.CreateObject <hrmStaff>(); staff.PhysicalPerson = physicalPerson; staff.Department = departmentList[GetRandomIntegerFromInterval(1, departmentList.Count) - 1]; staffList.Add(staff); } // Создаём maxDocumentCategoryCount видов категорий документов int maxDocumentCategoryCount = 10; IList <crmContractDocumentType> contractDocumentTypeList = new List <crmContractDocumentType>(); for (int i = 0; i < maxDocumentCategoryCount; i++) { crmContractDocumentType contractDocumentType = objectSpace.CreateObject <crmContractDocumentType>(); contractDocumentType.Code = "CD " + i.ToString(); contractDocumentType.Name = "Contract Document Type " + i.ToString(); contractDocumentTypeList.Add(contractDocumentType); } objectSpace.CommitChanges(); // Создаём maxPaymentItemCount int maxPaymentItemCount = 10; IList <crmPaymentMoney> paymentItemList = new List <crmPaymentMoney>(); for (int i = 0; i < maxPaymentItemCount; i++) { crmPaymentMoney paymentItem = objectSpace.CreateObject <crmPaymentMoney>(); paymentItem.AccountSumma = GetRandomIntegerFromInterval(1, 100); paymentItem.AccountValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; //paymentItem.CostItem; //paymentItem.CostModel; //paymentItem.CurrentCost; paymentItem.Date = DateTime.Now; paymentItem.Description = "PaymentItem " + i.ToString(); paymentItemList.Add(paymentItem); } objectSpace.CommitChanges(); // Создаём maxObligationUnitCount обязательств int maxObligationUnitCount = 20; IList <crmObligationUnit> obligationUnitList = new List <crmObligationUnit>(); for (int i = 0; i < maxObligationUnitCount; i++) { crmPaymentUnit obligationUnit = objectSpace.CreateObject <crmPaymentUnit>(); obligationUnit.Code = "PU" + i.ToString(); obligationUnit.Name = "PaymentUnit" + i.ToString(); obligationUnit.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; obligationUnit.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1]; ////obligationUnit.Creditor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; //obligationUnit.CurrentCost = "Subj" + i.ToString(); ////obligationUnit.Debitor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; obligationUnit.NDSRate = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1]; obligationUnit.Order = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1]; obligationUnit.Receiver = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; obligationUnit.Sender = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; ////obligationUnit.Stage = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1]; ////obligationUnit.SummCost = GetRandomIntegerFromInterval(1, 100); ////obligationUnit.SummNDS = GetRandomIntegerFromInterval(1, 100); obligationUnit.SummFull = GetRandomIntegerFromInterval(1, 100); obligationUnit.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; obligationUnit.DatePlane = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 40)); obligationUnit.DateBegin = DateTime.Now; obligationUnit.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30)); obligationUnitList.Add(obligationUnit); } objectSpace.CommitChanges(); //const int maxObligationUnitCount = 30; //IList<crmObligationUnit> obligationUnitList = new List<crmObligationUnit>(); for (int i = 0; i < maxObligationUnitCount; i++) { crmDeliveryUnit obligationUnit = objectSpace.CreateObject <crmDeliveryUnit>(); obligationUnit.Code = "DU" + i.ToString(); obligationUnit.Name = "DeliveryUnit" + i.ToString(); obligationUnit.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; obligationUnit.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1]; ////obligationUnit.Creditor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; //obligationUnit.CurrentCost = "Subj" + i.ToString(); ////obligationUnit.Debitor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; obligationUnit.NDSRate = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1]; if (OrderList.Count > 0) { obligationUnit.Order = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1]; } obligationUnit.Receiver = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; obligationUnit.Sender = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1]; ////obligationUnit.Stage = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1]; ////obligationUnit.SummCost = GetRandomIntegerFromInterval(1, 100); ////obligationUnit.SummNDS = GetRandomIntegerFromInterval(1, 100); obligationUnit.SummFull = GetRandomIntegerFromInterval(1, 100); obligationUnit.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; obligationUnit.DatePlane = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 40)); obligationUnit.DateBegin = DateTime.Now; obligationUnit.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30)); obligationUnitList.Add(obligationUnit); } objectSpace.CommitChanges(); /* * // Заготавливаем maxPrimaryPartyRuCount штук первичных участников договоров * int maxPrimaryPartyRuCount = 7; * IList<crmPartyRu> primaryPartyRuList = new List<crmPartyRu>(); * * for (int i = 0; i < maxPrimaryPartyRuCount; i++) { * crmPartyRu partyRu = objectSpace.CreateObject<crmPartyRu>(); * * partyRu.Code = "pF"; * partyRu.Description = "PrimaryParty " + i.ToString(); * * //crmPhysicalPerson person = objectSpace.CreateObject<crmPhysicalPerson>(); * //person.INN = "PP INN" + i; * //person.FirstName = "Ганс " + i; * //person.MiddleName = "Христиан " + i; * //person.MiddleName = "Андерсен " + i; * * crmCPerson person = objectSpace.CreateObject<crmCPerson>(); * person.INN = "PP INN" + i; * //person.FirstName = "Ганс " + i; * //person.MiddleName = "Христиан " + i; * //person.MiddleName = "Андерсен " + i; * * partyRu.Person = person; * person.Partys.Add(partyRu); * * primaryPartyRuList.Add(partyRu); * } * * objectSpace.CommitChanges(); */ // Заготавливаем maxContragentcLegalPersonCount штук контрагентов int maxPrimaryCLegalPersonCount = 120; IList <crmCLegalPerson> PrimaryCLegalPersonList = new List <crmCLegalPerson>(); for (int i = 0; i < maxPrimaryCLegalPersonCount; i++) { crmCLegalPerson cLegalPerson = objectSpace.CreateObject <crmCLegalPerson>(); cLegalPerson.Name = "Кремль" + i; cLegalPerson.NameFull = "Кремль" + i; cLegalPerson.INN = "ИНН ААААААААА"; cLegalPerson.Code = "LPK" + i; cLegalPerson.Description = "LegalPerson Кремль Description" + i; cLegalPerson.KPP = "КПП ББББББББ"; cLegalPerson.RegCode = "RCK"; //cLegalPerson.Person.Address = address; //cLegalPerson.Party.AddressFact = address; //cLegalPerson.Party.AddressPost = address; cLegalPerson.Party.Person = cLegalPerson.Person; PrimaryCLegalPersonList.Add(cLegalPerson); } objectSpace.CommitChanges(); // Создаём maxContractCount контрактов int maxContractCount = 300; IList <crmContract> contractList = new List <crmContract>(); for (int i = 0; i < maxContractCount; i++) { crmContractDocument contractDocument = objectSpace.CreateObject <crmContractDocument>(); contractDocument.Date = DateTime.Now; contractDocument.DocumentCategory = contractDocumentTypeList[GetRandomIntegerFromInterval(1, contractDocumentTypeList.Count) - 1]; contractDocument.Number = "Doc № " + i.ToString(); crmContractDeal contractDeal = objectSpace.CreateObject <crmContractDeal>(); contractDeal.Category = сontractCategoryList[GetRandomIntegerFromInterval(1, сontractCategoryList.Count) - 1]; contractDeal.ContractKind = ContractKind.CONTRACT; contractDeal.CuratorDepartment = departmentList[GetRandomIntegerFromInterval(1, departmentList.Count) - 1]; //contractDeal.Customer = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party; contractDeal.DateRegistration = DateTime.Now; //contractDeal.Supplier = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party; contractDeal.UserRegistrator = staffList[GetRandomIntegerFromInterval(1, staffList.Count) - 1]; contractDeal.DepartmentRegistrator = contractDeal.UserRegistrator.Department; //contractDeal.Customer = ContragentPartyRuList[GetRandomIntegerFromInterval(1, ContragentPartyRuList.Count) - 1]; //contractDeal.DealVersions //contractDeal.Project = ; //contractDeal.State //contractDeal.Supplier = ContragentPartyRuList[GetRandomIntegerFromInterval(1, ContragentPartyRuList.Count) - 1]; //--- crmDealVersion dealVersion = objectSpace.CreateObject <crmDealVersion>(); //dealVersion.Category = сontractCategoryList[GetRandomIntegerFromInterval(1, сontractCategoryList.Count) - 1]; //dealVersion.ContractDeal = contractDeal; //dealVersion.ContractDocument = contractDocument; //dealVersion.ContractDocuments.Add(contractDocument); //dealVersion.Customer = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party; dealVersion.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; //dealVersion.Supplier = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party; dealVersion.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1]; //dealVersion.Curator = contractDeal.CuratorDepartment; dealVersion.DateBegin = DateTime.Now; dealVersion.DateEnd = DateTime.Now.AddDays(10); dealVersion.DateFinish = DateTime.Now.AddDays(20); dealVersion.DealCode = "DC " + i.ToString(); //dealVersion.DealDocument = contractDocument; //dealVersion.DealNomenclatures.Add( if (dealVersion != null) { dealVersion.DescriptionLong = "Полное описание для " + dealVersion.DealCode; dealVersion.DescriptionShort = "Краткое описание для " + dealVersion.DealCode; } dealVersion.NDSRate = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1]; if (OrderList.Count > 0) { dealVersion.Order = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1]; } dealVersion.PaymentValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; //dealVersion.Registrator = contractDeal.DepartmentRegistrator; dealVersion.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; //dealVersion.StageStructure //--- contractDeal.Current = dealVersion; contractDeal.DealVersions.Add(dealVersion); crmContract contract = objectSpace.CreateObject <crmContract>(); contract.ContractCategory = сontractCategoryList[GetRandomIntegerFromInterval(1, сontractCategoryList.Count) - 1]; contractDeal.Contract = contract; contractDeal.ContractDocument = contractDocument; contractDeal.ContractDocuments.Add(contractDocument); contractDocument.Contract = contract; contract.ContractDeals.Add(contractDeal); contract.ContractDocuments.Add(contractDocument); //contract.ContractDocument = DateTime.Now; //contract.Delo = "Delo " + i.ToString(); contract.Description = "Описание документа " + i.ToString(); contract.UserRegistrator = contractDeal.UserRegistrator; contract.DepartmentRegistrator = contract.UserRegistrator.Department; contractList.Add(contract); //this.ObjectSpace.CommitChanges(); if ((i % 100) == 0) { objectSpace.CommitChanges(); } } objectSpace.CommitChanges(); // Создаём записи регистра crmDebtorCreditorDebtRegister for (int i = 0; i < RecordCountGenerated; i++) { //try { // crmDebtorCreditorDebtRegister crmDebtorCreditorDebtRegister debtorCreditorDebtRegister = objectSpace.CreateObject <crmDebtorCreditorDebtRegister>(); debtorCreditorDebtRegister.Token = token; debtorCreditorDebtRegister.ContragentParty = CLegalPersonList[GetRandomIntegerFromInterval(1, CLegalPersonList.Count) - 1].Party; debtorCreditorDebtRegister.PrimaryParty = PrimaryCLegalPersonList[GetRandomIntegerFromInterval(1, PrimaryCLegalPersonList.Count) - 1].Party; debtorCreditorDebtRegister.Contract = contractList[GetRandomIntegerFromInterval(1, contractList.Count) - 1]; debtorCreditorDebtRegister.ContractDeal = debtorCreditorDebtRegister.Contract.ContractDeals[0]; debtorCreditorDebtRegister.CreditValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; debtorCreditorDebtRegister.CreditCost = GetRandomIntegerFromInterval(1, 100); debtorCreditorDebtRegister.CreditCostInRUR = GetRandomIntegerFromInterval(1, 100); debtorCreditorDebtRegister.DebitValuta = debtorCreditorDebtRegister.CreditValuta; debtorCreditorDebtRegister.DebitCost = GetRandomIntegerFromInterval(1, 100); debtorCreditorDebtRegister.DebitCostInRUR = GetRandomIntegerFromInterval(1, 100); debtorCreditorDebtRegister.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; if (OrderList.Count > 0) { debtorCreditorDebtRegister.fmOrder = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1]; } debtorCreditorDebtRegister.ObligationUnit = obligationUnitList[GetRandomIntegerFromInterval(1, obligationUnitList.Count) - 1]; debtorCreditorDebtRegister.ObligationUnitDateTime = DateTime.Now; debtorCreditorDebtRegister.PlaneFact = ((i % 2) == 0) ? PlaneFact.PLAN : PlaneFact.FACT; debtorCreditorDebtRegister.Stage = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1]; //debtorCreditorDebtRegister.StageTech = ; if (subjectList.Count > 0) { debtorCreditorDebtRegister.Subject = subjectList[GetRandomIntegerFromInterval(1, subjectList.Count) - 1]; } //cashFlowRegister.Save(); //objectSpace.CommitChanges(); //} catch { //} if ((i % 1000) == 0) { objectSpace.CommitChanges(); } } objectSpace.CommitChanges(); // Создаём записи регистра crmCashFlowRegister for (int i = 0; i < RecordCountGenerated; i++) { //try { // crmCashFlowRegister crmCashFlowRegister cashFlowRegister = objectSpace.CreateObject <crmCashFlowRegister>(); cashFlowRegister.Token = token; cashFlowRegister.ContragentParty = CLegalPersonList[GetRandomIntegerFromInterval(1, CLegalPersonList.Count) - 1].Party; cashFlowRegister.PrimaryParty = PrimaryCLegalPersonList[GetRandomIntegerFromInterval(1, PrimaryCLegalPersonList.Count) - 1].Party; cashFlowRegister.Contract = contractList[GetRandomIntegerFromInterval(1, contractList.Count) - 1]; cashFlowRegister.ContractDeal = cashFlowRegister.Contract.ContractDeals[0]; //cashFlowRegister.Contract.ContractDeals[0]; cashFlowRegister.Cost = GetRandomIntegerFromInterval(1, 100); //cashFlowRegister.CostInRUR = GetRandomIntegerFromInterval(1, 100); cashFlowRegister.SumIn = GetRandomIntegerFromInterval(1, 100); cashFlowRegister.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1]; if (OrderList.Count > 0) { cashFlowRegister.fmOrder = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1]; } if (obligationUnitList.Count > 0) { cashFlowRegister.ObligationUnit = obligationUnitList[GetRandomIntegerFromInterval(1, obligationUnitList.Count) - 1]; } cashFlowRegister.ObligationUnitDateTime = DateTime.Now; cashFlowRegister.PaymentCost = GetRandomIntegerFromInterval(1, 100); cashFlowRegister.PaymentItem = paymentItemList[GetRandomIntegerFromInterval(1, paymentItemList.Count) - 1]; cashFlowRegister.PaymentValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; //cashFlowRegister.PlaneFact = ((i % 2) == 0) ? PlaneFact.PLAN : PlaneFact.FACT; cashFlowRegister.Section = CashFlowRegisterSection.CONTRACT_PLAN; // Исправить на нормальное назначение //cashFlowRegister.Stage = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1]; //cashFlowRegister.StageTech = ; if (subjectList.Count > 0) { cashFlowRegister.Subject = subjectList[GetRandomIntegerFromInterval(1, subjectList.Count) - 1]; } cashFlowRegister.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1]; //cashFlowRegister.FinancialDeal //cashFlowRegister.Save(); //objectSpace.CommitChanges(); //} catch { //} if ((i % 1000) == 0) { objectSpace.CommitChanges(); } } objectSpace.CommitChanges(); }