private void PopulateMUMDefaultConfig() { using (Session session = XpoHelper.GetNewSession()) { //Get item list XPCollection <Item> itemList = new XPCollection <Item>(session, new BinaryOperator("RowStatus", Utility.Constant.ROWSTATUS_ACTIVE)); //Get specification unit type NAS.DAL.Nomenclature.UnitItem.UnitType specUnitType = session.FindObject <NAS.DAL.Nomenclature.UnitItem.UnitType>(new BinaryOperator("Code", "SPECIFICATION")); foreach (var item in itemList) { int countHasConfigSpecUnit = item.itemUnitTypeConfigs.Count(r => r.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE && r.UnitTypeId == specUnitType); if (countHasConfigSpecUnit != 0) { continue; } //Config SPECIFICATION for the item int countSpecConfigUnit = item.itemUnitTypeConfigs.Count(r => r.UnitTypeId == specUnitType); ItemUnitTypeConfig config; if (countSpecConfigUnit != 0) { config = item.itemUnitTypeConfigs.Where(r => r.UnitTypeId == specUnitType).FirstOrDefault(); config.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; } else { config = new ItemUnitTypeConfig(session) { ItemId = item, RowStatus = Utility.Constant.ROWSTATUS_ACTIVE, UnitTypeId = specUnitType }; } //Config isMaster flag int countIsMaster = item.itemUnitTypeConfigs.Count(r => r.IsMaster); if (countIsMaster == 0) { config.IsMaster = true; } config.Save(); //Active SPECIFICATION units of the item var specItemUnitList = item.ItemUnits.Where(r => r.UnitId != null && r.UnitId.UnitTypeId == specUnitType && r.UnitId.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE); foreach (var specItemUnit in specItemUnitList) { specItemUnit.RowStatus = Utility.Constant.ROWSTATUS_ACTIVE; specItemUnit.Save(); } } } }
public static void Populate() { Session session = null; try { session = XpoHelper.GetNewSession(); //insert default data into Unit table if (!Util.isExistXpoObject <Unit>("Name", Utility.Constant.NAAN_DEFAULT_NAME)) { Unit unit = new Unit(session) { Name = Utility.Constant.NAAN_DEFAULT_NAME, Description = "", RowStatus = -1, RowCreationTimeStamp = DateTime.Now }; unit.Save(); } //DND NAS.DAL.Nomenclature.Organization.Organization orgID = session.FindObject <NAS.DAL.Nomenclature.Organization.Organization>(new BinaryOperator("Code", "QUASAPHARCO")); NAS.DAL.Nomenclature.UnitItem.UnitType unitTypeID_LENGTH = session.FindObject <NAS.DAL.Nomenclature.UnitItem.UnitType>(new BinaryOperator("Code", "LENGTH")); NAS.DAL.Nomenclature.UnitItem.UnitType unitTypeID_WEIGHT = session.FindObject <NAS.DAL.Nomenclature.UnitItem.UnitType>(new BinaryOperator("Code", "WEIGHT")); NAS.DAL.Nomenclature.UnitItem.UnitType unitTypeID_CAPACITY = session.FindObject <NAS.DAL.Nomenclature.UnitItem.UnitType>(new BinaryOperator("Code", "CAPACITY")); NAS.DAL.Nomenclature.UnitItem.UnitType unitTypeID_ACREAGE = session.FindObject <NAS.DAL.Nomenclature.UnitItem.UnitType>(new BinaryOperator("Code", "AREA")); if (orgID == null) { throw new Exception(@"Không có dữ liệu tổ chức QUASAPHARCO trong Database"); } if (unitTypeID_ACREAGE == null) { throw new Exception(@"không có dữ liệu ACREAGE trong Database"); } if (unitTypeID_LENGTH == null) { throw new Exception(@"Không có dữ liệu LENGTH trong Database"); } if (unitTypeID_WEIGHT == null) { throw new Exception(@"Không có dữ liệu WEIGHT trong Database"); } if (unitTypeID_CAPACITY == null) { throw new Exception(@"Không có dữ liệu CAPACITY trong Database"); } string[] Lenghts = { "mm", "cm", "dm", "m", "km" }; string[] Weights = { "mg", "g", "kg", "tan" }; string[] Capacitys = { "ml", "lit", "m³" }; string[] AREA = { "mm²", "cm²", "dm²", "m²" }; string[] Name_Lenght = { "Millimeter", "Centimeter", "Decimeter", "Meter", "Kilometer" }; string[] Name_Weight = { "Milligram", "Gram", "Kilogram", "Ton" }; string[] Name_Capacity = { "Milliliter", "Liter", "Cubic Meters" }; string[] Name_AREA = { "Square Milliliter", "Square Centimeter", "Square Decimeter", "Square Meter" }; int i = 0; #region ADD Lenghts if (unitTypeID_LENGTH != null) { for (i = 0; i < Lenghts.Length; i++) { if (!Util.isExistXpoObject <Unit>("Code", Lenghts[i], Utility.Constant.ROWSTATUS_DEFAULT, Utility.Constant.ROWSTATUS_ACTIVE)) { Unit unit = new Unit(session) { Code = Lenghts[i], Name = Name_Lenght[i], RowStatus = Utility.Constant.ROWSTATUS_DEFAULT, OrganizationId = orgID, UnitTypeId = unitTypeID_LENGTH, RowCreationTimeStamp = DateTime.Now }; unit.Save(); } else { Unit unit = session.FindObject <Unit>(new BinaryOperator("Code", Lenghts[i], BinaryOperatorType.Equal)); unit.Name = Name_Lenght[i]; unit.RowStatus = Utility.Constant.ROWSTATUS_DEFAULT; unit.OrganizationId = orgID; unit.UnitTypeId = unitTypeID_LENGTH; unit.Save(); } } } else { throw new Exception(@"Không có dữ liệu Length trong Database"); } #endregion #region ADD Weights if (unitTypeID_WEIGHT != null) { for (i = 0; i < Weights.Length; i++) { if (!Util.isExistXpoObject <Unit>("Code", Weights[i], Utility.Constant.ROWSTATUS_DEFAULT, Utility.Constant.ROWSTATUS_ACTIVE)) { Unit unit = new Unit(session) { Code = Weights[i], Name = Name_Weight[i], RowStatus = Utility.Constant.ROWSTATUS_DEFAULT, OrganizationId = orgID, UnitTypeId = unitTypeID_WEIGHT, RowCreationTimeStamp = DateTime.Now }; unit.Save(); } else { Unit unit = session.FindObject <Unit>(new BinaryOperator("Code", Weights[i], BinaryOperatorType.Equal)); unit.Name = Name_Weight[i]; unit.RowStatus = Utility.Constant.ROWSTATUS_DEFAULT; unit.OrganizationId = orgID; unit.UnitTypeId = unitTypeID_WEIGHT; unit.Save(); } } } else { throw new Exception(@"Không có dữ liệu Weight trong Database"); } #endregion #region ADD Capacitys if (unitTypeID_CAPACITY != null) { for (i = 0; i < Capacitys.Length; i++) { if (!Util.isExistXpoObject <Unit>("Code", Capacitys[i], Utility.Constant.ROWSTATUS_DEFAULT, Utility.Constant.ROWSTATUS_ACTIVE)) { Unit unit = new Unit(session) { Code = Capacitys[i], Name = Name_Capacity[i], RowStatus = Utility.Constant.ROWSTATUS_DEFAULT, OrganizationId = orgID, UnitTypeId = unitTypeID_CAPACITY, RowCreationTimeStamp = DateTime.Now }; unit.Save(); } else { Unit unit = session.FindObject <Unit>(new BinaryOperator("Code", Capacitys[i], BinaryOperatorType.Equal)); unit.Name = Name_Capacity[i]; unit.RowStatus = Utility.Constant.ROWSTATUS_DEFAULT; unit.OrganizationId = orgID; unit.UnitTypeId = unitTypeID_CAPACITY; unit.Save(); } } } else { throw new Exception(@"Không có dữ liệu Capacitys trong Database"); } #endregion #region ADD Acreage if (unitTypeID_ACREAGE != null) { for (i = 0; i < AREA.Length; i++) { if (!Util.isExistXpoObject <Unit>("Code", AREA[i], Utility.Constant.ROWSTATUS_DEFAULT, Utility.Constant.ROWSTATUS_ACTIVE)) { Unit unit = new Unit(session) { Code = AREA[i], Name = Name_AREA[i], RowStatus = Utility.Constant.ROWSTATUS_DEFAULT, OrganizationId = orgID, UnitTypeId = unitTypeID_ACREAGE, RowCreationTimeStamp = DateTime.Now }; unit.Save(); } else { Unit unit = session.FindObject <Unit>(new BinaryOperator("Code", AREA[i], BinaryOperatorType.Equal)); unit.Name = Name_AREA[i]; unit.RowStatus = Utility.Constant.ROWSTATUS_DEFAULT; unit.OrganizationId = orgID; unit.UnitTypeId = unitTypeID_ACREAGE; unit.Save(); } } } else { throw new Exception(@"Không có dữ liệu Acreage trong Database"); } #endregion //END DND } catch (Exception) { session.RollbackTransaction(); throw; } finally { if (session != null) { session.Dispose(); } } }