public bool CreateStationsBC() { if (Cancel) { return(false); } TVItemService tvItemServiceR = new TVItemService(LanguageEnum.en, user); TVItemModel tvItemModelRoot = tvItemServiceR.GetRootTVItemModelDB(); if (!CheckModelOK <TVItemModel>(tvItemModelRoot)) { return(false); } TVItemModel tvItemModelCanada = tvItemServiceR.GetChildTVItemModelWithParentIDAndTVTextAndTVTypeDB(tvItemModelRoot.TVItemID, "Canada", TVTypeEnum.Country); if (!CheckModelOK <TVItemModel>(tvItemModelCanada)) { return(false); } TVItemModel tvItemModelBC = tvItemServiceR.GetChildTVItemModelWithParentIDAndTVTextAndTVTypeDB(tvItemModelCanada.TVItemID, "British Columbia", TVTypeEnum.Province); if (!CheckModelOK <TVItemModel>(tvItemModelBC)) { return(false); } List <TVItemModel> tvItemModelSubsectorBCList = tvItemServiceR.GetChildrenTVItemModelListWithTVItemIDAndTVTypeDB(tvItemModelBC.TVItemID, TVTypeEnum.Subsector); if (tvItemModelSubsectorBCList.Count == 0) { richTextBoxStatus.AppendText("Could not find TVItem Subsector under British Columbia\r\n"); return(false); } lblStatus.Text = "Starting ... LoadStationsBC"; Application.DoEvents(); int StartBCCreateStationBC = int.Parse(textBoxBCCreateStationsBC.Text); List <BCStation> BCWQMSiteList = new List <BCStation>(); TVItemModel TVItemModelSubsectorBC = new TVItemModel(); List <TT> tideTextInDBList = new List <TT>(); List <AM> analyseMethodInDBList = new List <AM>(); List <Mat> matrixInDBList = new List <Mat>(); List <Lab> labInDBList = new List <Lab>(); int TotalCount = tvItemModelSubsectorBCList.Count(); int Count = 0; foreach (TVItemModel tvItemModelSubsector in tvItemModelSubsectorBCList) { if (Cancel) { return(false); } Count += 1; lblStatus.Text = (Count * 100 / TotalCount).ToString() + " ... CreateStationsBC for " + tvItemModelSubsector.TVText; lblStatus2.Text = Count + " of " + TotalCount; Application.DoEvents(); textBoxBCCreateStationsBC.Text = Count.ToString(); if (StartBCCreateStationBC > Count) { continue; } // doing Land base stations List <TempData.BCLandSampleStation> bcLandSampleStation = new List <TempData.BCLandSampleStation>(); using (TempData.TempDataToolDBEntities dbDT = new TempData.TempDataToolDBEntities()) { string TVText = tvItemModelSubsector.TVText.Substring(0, 4); bcLandSampleStation = (from c in dbDT.BCLandSampleStations where c.SS_SHELLFI == TVText orderby c.BCLandSampleStationID select c).ToList <TempData.BCLandSampleStation>(); } int CountSta = 0; int TotalCountSta = bcLandSampleStation.Count; foreach (TempData.BCLandSampleStation bcmss in bcLandSampleStation) { if (Cancel) { return(false); } CountSta += 1; lblStatus2.Text = "Doing Land Base ... " + CountSta + " of " + TotalCountSta; Application.DoEvents(); string TVText = bcmss.SS_STATION; TVItemService tvItemService = new TVItemService(LanguageEnum.en, user); MapInfoService mapInfoService = new MapInfoService(LanguageEnum.en, user); MWQMSiteService mwqmSiteService = new MWQMSiteService(LanguageEnum.en, user); TVItemModel tvItemModelMWQMSite = tvItemService.GetChildTVItemModelWithParentIDAndTVTextAndTVTypeDB(tvItemModelSubsector.TVItemID, TVText, TVTypeEnum.MWQMSite); if (!string.IsNullOrWhiteSpace(tvItemModelMWQMSite.Error)) { tvItemModelMWQMSite = tvItemService.PostCreateTVItem(tvItemModelSubsector.TVItemID, TVText, TVText, TVTypeEnum.MWQMSite); if (!CheckModelOK <TVItemModel>(tvItemModelMWQMSite)) { return(false); } List <Coord> coordList2 = new List <Coord>() { new Coord() { Lat = (float)(bcmss.LAT == null ? 50.0f : bcmss.LAT), Lng = (float)(bcmss.LON == null ? -132.0f : bcmss.LON), } }; if (coordList2[0].Lat == 124.40966796875 && coordList2[0].Lng == -48.585498809814453) { coordList2[0].Lat = 48.585498809814453f; coordList2[0].Lng = -124.40966796875f; } MapInfoModel mapInfoModelRet = mapInfoService.CreateMapInfoObjectDB(coordList2, MapInfoDrawTypeEnum.Point, TVTypeEnum.MWQMSite, tvItemModelMWQMSite.TVItemID); if (!CheckModelOK <MapInfoModel>(mapInfoModelRet)) { return(false); } MWQMSiteModel mwqmSiteModelNew = new MWQMSiteModel() { MWQMSiteTVItemID = tvItemModelMWQMSite.TVItemID, MWQMSiteNumber = bcmss.SS_STATION.ToString(), MWQMSiteTVText = TVText, MWQMSiteDescription = "empty", }; MWQMSiteModel mwqmSiteModelRet = mwqmSiteService.PostAddMWQMSiteDB(mwqmSiteModelNew); if (!CheckModelOK <MWQMSiteModel>(mwqmSiteModelRet)) { return(false); } } } // doing Marine base stations List <TempData.BCMarineSampleStation> bcMarineSampleStation = new List <TempData.BCMarineSampleStation>(); using (TempData.TempDataToolDBEntities dbDT = new TempData.TempDataToolDBEntities()) { string TVText = tvItemModelSubsector.TVText.Substring(0, 4); bcMarineSampleStation = (from c in dbDT.BCMarineSampleStations where c.SS_SHELLFI == TVText orderby c.BCMarineSampleStationID select c).ToList <TempData.BCMarineSampleStation>(); } CountSta = 0; TotalCountSta = bcMarineSampleStation.Count; foreach (TempData.BCMarineSampleStation bcmss in bcMarineSampleStation) { if (Cancel) { return(false); } CountSta += 1; lblStatus2.Text = "Doing Marine Base ... " + CountSta + " of " + TotalCountSta; Application.DoEvents(); string TVText = bcmss.SS_STATION; TVItemService tvItemService = new TVItemService(LanguageEnum.en, user); MapInfoService mapInfoService = new MapInfoService(LanguageEnum.en, user); MWQMSiteService mwqmSiteService = new MWQMSiteService(LanguageEnum.en, user); TVItemModel tvItemModelMWQMSite = tvItemService.GetChildTVItemModelWithParentIDAndTVTextAndTVTypeDB(tvItemModelSubsector.TVItemID, TVText, TVTypeEnum.MWQMSite); if (!string.IsNullOrWhiteSpace(tvItemModelMWQMSite.Error)) { tvItemModelMWQMSite = tvItemService.PostCreateTVItem(tvItemModelSubsector.TVItemID, TVText, TVText, TVTypeEnum.MWQMSite); if (!CheckModelOK <TVItemModel>(tvItemModelMWQMSite)) { return(false); } List <Coord> coordList2 = new List <Coord>() { new Coord() { Lat = (float)(bcmss.LAT == null ? 50.0f : bcmss.LAT), Lng = (float)(bcmss.LON == null ? -132.0f : bcmss.LON), } }; MapInfoModel mapInfoModelRet = mapInfoService.CreateMapInfoObjectDB(coordList2, MapInfoDrawTypeEnum.Point, TVTypeEnum.MWQMSite, tvItemModelMWQMSite.TVItemID); if (!CheckModelOK <MapInfoModel>(mapInfoModelRet)) { return(false); } MWQMSiteModel mwqmSiteModelNew = new MWQMSiteModel() { MWQMSiteTVItemID = tvItemModelMWQMSite.TVItemID, MWQMSiteNumber = bcmss.SS_STATION.ToString(), MWQMSiteTVText = TVText, MWQMSiteDescription = "empty", }; MWQMSiteModel mwqmSiteModelRet = mwqmSiteService.PostAddMWQMSiteDB(mwqmSiteModelNew); if (!CheckModelOK <MWQMSiteModel>(mwqmSiteModelRet)) { return(false); } } } } return(true); }
public bool CreateStationsQC() { TVItemService tvItemService = new TVItemService(LanguageEnum.en, user); TVItemLanguageService tvItemLanguageService = new TVItemLanguageService(LanguageEnum.en, user); MapInfoService mapInfoService = new MapInfoService(LanguageEnum.en, user); MWQMSiteService mwqmSiteService = new MWQMSiteService(LanguageEnum.en, user); TVItemModel tvItemModelRoot = tvItemService.GetRootTVItemModelDB(); if (!CheckModelOK <TVItemModel>(tvItemModelRoot)) { return(false); } TVItemModel tvItemModelCanada = tvItemService.GetChildTVItemModelWithParentIDAndTVTextAndTVTypeDB(tvItemModelRoot.TVItemID, "Canada", TVTypeEnum.Country); if (!CheckModelOK <TVItemModel>(tvItemModelCanada)) { return(false); } TVItemModel tvItemModelQC = tvItemService.GetChildTVItemModelWithParentIDAndTVTextAndTVTypeDB(tvItemModelCanada.TVItemID, "Québec", TVTypeEnum.Province); if (!CheckModelOK <TVItemModel>(tvItemModelQC)) { return(false); } List <TVItemModel> tvItemModelSubsectorQCList = tvItemService.GetChildrenTVItemModelListWithTVItemIDAndTVTypeDB(tvItemModelQC.TVItemID, TVTypeEnum.Subsector); if (tvItemModelSubsectorQCList.Count == 0) { richTextBoxStatus.AppendText("Could not find TVItem Subsector under British Columbia\r\n"); return(false); } lblStatus.Text = "Starting ... CreateStationsQC"; Application.DoEvents(); int StartQCCreateStationQC = int.Parse(textBoxQCCreateStationsQC.Text); List <Obs> obsTypeList = new List <Obs>(); List <string> sectorList = new List <string>(); List <TT> tideTextInDBList = new List <TT>(); List <AM> analyseMethodInDBList = new List <AM>(); List <Mat> matrixInDBList = new List <Mat>(); List <Lab> labInDBList = new List <Lab>(); List <SampleStatus> sampleStatusInDBList = new List <SampleStatus>(); List <TempData.QCSubsectorAssociation> qcSubAssList = new List <TempData.QCSubsectorAssociation>(); using (TempData.TempDataToolDBEntities dbDT = new TempData.TempDataToolDBEntities()) { qcSubAssList = (from c in dbDT.QCSubsectorAssociations select c).ToList <TempData.QCSubsectorAssociation>(); } using (PCCSM.pccsmEntities dbQC = new PCCSM.pccsmEntities()) { sectorList = (from s in dbQC.geo_stations_p where s.secteur != null select s.secteur).Distinct().OrderBy(c => c).ToList(); } List <TVItemModel> tvItemModelSubsectorList = tvItemService.GetChildrenTVItemModelListWithTVItemIDAndTVTypeDB(tvItemModelQC.TVItemID, TVTypeEnum.Subsector); List <TVItemModel> tvItemModelSiteList = tvItemService.GetChildrenTVItemModelListWithTVItemIDAndTVTypeDB(tvItemModelQC.TVItemID, TVTypeEnum.MWQMSite); TempData.QCSubsectorAssociation qcSubsectAss = new TempData.QCSubsectorAssociation(); // doing every sector with the exception of MS__ List <PCCSM.geo_stations_p> staQCList = new List <PCCSM.geo_stations_p>(); using (PCCSM.pccsmEntities dbQC = new PCCSM.pccsmEntities()) { staQCList = (from c in dbQC.geo_stations_p where (c.x != null && c.y != null) && c.secteur != null orderby c.secteur, c.station select c).ToList <PCCSM.geo_stations_p>(); } List <TVItemLanguage> tvItemSiteLanguageList = new List <TVItemLanguage>(); int TVItemIDSSOld = 0; int count = 0; int total = staQCList.Count; foreach (PCCSM.geo_stations_p geoStat in staQCList) { if (Cancel) { return(false); } textBoxQCCreateStationsQC.Text = count.ToString(); if (StartQCCreateStationQC > count) { continue; } qcSubsectAss = (from c in qcSubAssList where c.QCSectorText == geoStat.secteur select c).FirstOrDefault <TempData.QCSubsectorAssociation>(); if (qcSubsectAss == null) { richTextBoxStatus.AppendText(geoStat.secteur + " does not exist\r\n"); //return false; continue; } TVItemModel tvItemModelSubsector = (from c in tvItemModelSubsectorList where c.TVText.StartsWith(qcSubsectAss.SubsectorText) select c).FirstOrDefault(); if (TVItemIDSSOld != tvItemModelSubsector.TVItemID) { using (CSSPDBEntities db2 = new CSSPDBEntities()) { tvItemSiteLanguageList = (from c in db2.TVItems from cl in db2.TVItemLanguages where c.TVItemID == cl.TVItemID && c.ParentID == tvItemModelSubsector.TVItemID && c.TVType == (int)TVTypeEnum.MWQMSite select cl).ToList(); } TVItemIDSSOld = tvItemModelSubsector.TVItemID; } if (tvItemModelSubsector == null) { richTextBoxStatus.AppendText("could not find subsector" + geoStat.secteur + "\r\n"); //return false; continue; } bool IsActive = true; if (geoStat.status != null) { IsActive = (geoStat.status.Substring(0, 1) == "i" ? false : true); } string PreText = ""; if (geoStat.secteur.Length < qcSubsectAss.SubsectorText.Length) { PreText = ""; } else { if (geoStat.secteur.StartsWith(qcSubsectAss.SubsectorText)) { PreText = geoStat.secteur.Substring(qcSubsectAss.SubsectorText.Length) + "_"; } else { PreText = geoStat.secteur + "_"; } } if (PreText.StartsWith(".") || PreText.StartsWith("_")) { PreText = PreText.Substring(1); } string MWQMSiteTVText = PreText + "0000".Substring(0, 4 - geoStat.station.ToString().Length) + geoStat.station.ToString(); string subsector = tvItemModelSubsector.TVText; if (subsector.Contains(" ")) { subsector = subsector.Substring(0, subsector.IndexOf(" ")); } count += 1; lblStatus.Text = $"{subsector} --- {MWQMSiteTVText} --- { count.ToString()}/{total.ToString()}"; Application.DoEvents(); List <MapInfoModel> mapInfoModelList = mapInfoService.GetMapInfoModelWithLatAndLngInPolygonWithTVTypeDB((float)geoStat.y, (float)geoStat.x, TVTypeEnum.Subsector); if (mapInfoModelList.Count == 0) { //return false; continue; } TVItemModel tvItemModel = (from c in tvItemModelSiteList where c.ParentID == tvItemModelSubsector.TVItemID && c.TVText.EndsWith(MWQMSiteTVText) select c).FirstOrDefault(); //TVItemModel tvItemModel = tvItemModelMWQMSiteList.Where(c => c.TVText.EndsWith(MWQMSiteTVText)).FirstOrDefault(); if (tvItemModel == null) { TVItemModel tvItemModelRet = tvItemService.PostCreateTVItem(tvItemModelSubsector.TVItemID, MWQMSiteTVText, MWQMSiteTVText, TVTypeEnum.MWQMSite); if (!CheckModelOK <TVItemModel>(tvItemModelRet)) { //return false; continue; } if (geoStat.status == null) { tvItemModelRet.IsActive = false; } else { tvItemModelRet.IsActive = (geoStat.status.Substring(0, 1) == "i" ? false : true); } TVItemModel tvItemModelRet2 = tvItemService.PostUpdateTVItemDB(tvItemModelRet); if (!CheckModelOK <TVItemModel>(tvItemModelRet2)) { //return false; continue; } List <Coord> coordList2 = new List <Coord>() { new Coord() { Lat = (float)geoStat.y, Lng = (float)geoStat.x, } }; MapInfoModel mapInfoModelRet = mapInfoService.CreateMapInfoObjectDB(coordList2, MapInfoDrawTypeEnum.Point, TVTypeEnum.MWQMSite, tvItemModelRet2.TVItemID); if (!CheckModelOK <MapInfoModel>(mapInfoModelRet)) { //return false; continue; } // should add the QC station to WQMSite MWQMSiteModel mwqmSiteModelNew = new MWQMSiteModel() { MWQMSiteTVItemID = tvItemModelRet2.TVItemID, MWQMSiteNumber = geoStat.station.ToString(), Ordinal = (int)geoStat.station, MWQMSiteTVText = MWQMSiteTVText, MWQMSiteDescription = "--" }; MWQMSiteModel mwqmSiteModelRet = mwqmSiteService.PostAddMWQMSiteDB(mwqmSiteModelNew); if (!CheckModelOK <MWQMSiteModel>(mwqmSiteModelRet)) { //return false; continue; } } else { TVItemLanguage tvItemLanguageEN = (from c in tvItemSiteLanguageList where c.TVItemID == tvItemModel.TVItemID && c.Language == (int)LanguageEnum.en select c).FirstOrDefault(); TVItemLanguage tvItemLanguageFR = (from c in tvItemSiteLanguageList where c.TVItemID == tvItemModel.TVItemID && c.Language == (int)LanguageEnum.fr select c).FirstOrDefault(); if (tvItemLanguageEN.TVText != MWQMSiteTVText || tvItemLanguageFR.TVText != MWQMSiteTVText) { foreach (LanguageEnum language in new List <LanguageEnum>() { LanguageEnum.en, LanguageEnum.fr }) { TVItemLanguageModel tvItemLanguageModel = tvItemLanguageService.GetTVItemLanguageModelWithTVItemIDAndLanguageDB(tvItemModel.TVItemID, language); if (!CheckModelOK <TVItemLanguageModel>(tvItemLanguageModel)) { //return false; continue; } if (tvItemLanguageModel.TVText != MWQMSiteTVText) { tvItemLanguageModel.TVText = MWQMSiteTVText; TVItemLanguageModel tvItemLanguageModelRet = tvItemLanguageService.PostUpdateTVItemLanguageDB(tvItemLanguageModel); if (!CheckModelOK <TVItemLanguageModel>(tvItemLanguageModelRet)) { //return false; continue; } } } } } } return(true); }