// //////////////////////////////////////////////////////////////////////// // PUBLIC METHODS // /// <summary> /// InsertDirect /// </summary> /// <param name="countryId">countryId</param> /// <param name="provinceId">provinceId</param> /// <param name="countyId">countyId</param> /// <param name="cityId">cityId</param> /// <param name="section_">section_</param> /// <param name="address">address</param> /// <param name="lateralID">lateralID</param> /// <param name="latitudeAtSection">latitudeAtSection</param> /// <param name="longitudeAtSection">longitudeAtSection</param> /// <param name="latitudeAtPropertyLine">latitudeAtPropertyLine</param> /// <param name="longitudeAtPropertyLine">longitudeAtPropertyLine</param> /// <param name="state">state</param> /// <param name="size_">size_</param> /// <param name="distanceFromUSMH">distanceFromUSMH</param> /// <param name="distanceFromDSMH">distanceFromDSMH</param> /// <param name="mapSize">mapSize</param> /// <param name="deleted">deleted</param> /// <param name="companyId">companyId</param> /// <param name="connectionType">connectionType</param> /// <returns></returns> public int InsertDirect(Int64? countryId, Int64? provinceId, Int64? countyId, Int64? cityId, int section_, string address, string lateralID, string latitudeAtSection, string longitudeAtSection, string latitudeAtPropertyLine, string longitudeAtPropertyLine, string state, string size_, string distanceFromUSMH, string distanceFromDSMH, string mapSize, bool deleted, int companyId, string connectionType) { AssetSewerLateralGateway assetSewerLateralGateway = new AssetSewerLateralGateway(); assetSewerLateralGateway.LoadBySectionLateralId(section_, lateralID, companyId); int lateral_assetId = 0; if (assetSewerLateralGateway.Table.Rows.Count == 0) { // Insert Asset lateral_assetId = new Asset(new DataSet()).InsertDirect("Sewer", countryId, provinceId, countyId, cityId, deleted, companyId); new AssetSewer(new DataSet()).InsertDirect(lateral_assetId, "Lateral", deleted, companyId); assetSewerLateralGateway.Insert(lateral_assetId, section_, address, lateralID, latitudeAtSection, longitudeAtSection, latitudeAtPropertyLine, longitudeAtPropertyLine, state, size_, distanceFromUSMH, distanceFromDSMH, mapSize, deleted, companyId, connectionType); // Update Section // ... load section AssetSewerSectionGateway assetSewerSectionGateway = new AssetSewerSectionGateway(); assetSewerSectionGateway.LoadByAssetId(section_, companyId); // ... get old values of section string sectionIdS = assetSewerSectionGateway.GetSectionId(section_); string streetS = assetSewerSectionGateway.GetStreet(section_); int? usmhIdS = assetSewerSectionGateway.GetUSMH(section_); int? dsmhIdS = assetSewerSectionGateway.GetDSMH(section_); string mapSizeS = assetSewerSectionGateway.GetMapSize(section_); string size_S = assetSewerSectionGateway.GetSize_(section_); string mapLengthS = assetSewerSectionGateway.GetMapSize(section_); string lengthS = assetSewerSectionGateway.GetLength(section_); int? lateralsS = assetSewerSectionGateway.GetLaterals(section_); int? liveLateralsS = assetSewerSectionGateway.GetLiveLaterals(section_); string flowDirectionS = assetSewerSectionGateway.GetFlowDirection(section_); string usmhDepthS = assetSewerSectionGateway.GetUSMHDepth(section_); string dsmhDepthS = assetSewerSectionGateway.GetDSMHDepth(section_); string flowOrderIdS = assetSewerSectionGateway.GetFlowOrderID(section_); // ... calculate new values of section int? newLaterals = lateralsS; if (newLaterals.HasValue) { newLaterals = newLaterals + 1; } else { newLaterals = 1; } int? newLiveLaterals = liveLateralsS; if (state == "Live") { if (newLiveLaterals.HasValue) { newLiveLaterals = newLiveLaterals + 1; } else { newLiveLaterals = 1; } } else { newLiveLaterals = 0; } // ... update section AssetSewerSection assetSewerSection = new AssetSewerSection(assetSewerSectionGateway.Data); assetSewerSection.UpdateDirect(section_, sectionIdS, streetS, usmhIdS, dsmhIdS, mapSizeS, size_S, mapLengthS, lengthS, lateralsS, liveLateralsS, flowDirectionS, usmhDepthS, dsmhDepthS, deleted, companyId, flowOrderIdS, section_, sectionIdS, streetS, usmhIdS, dsmhIdS, mapSizeS, size_S, mapLengthS, lengthS, newLaterals, newLiveLaterals, flowDirectionS, usmhDepthS, dsmhDepthS, deleted, companyId, flowOrderIdS); } else { lateral_assetId = assetSewerLateralGateway.GetAssetID(section_, lateralID); } return lateral_assetId; }