// Post public PolSourceSiteModel PolSourceSiteAddOrModifyDB(FormCollection fc) { int tempInt = 0; int ParentTVItemID = 0; int PolSourceSiteTVItemID = 0; bool IsActive = false; bool IsPointSource = false; double Lat = 0.0D; double Lng = 0.0D; ContactOK contactOK = IsContactOK(); if (!string.IsNullOrWhiteSpace(contactOK.Error)) { return(ReturnError(contactOK.Error)); } if (string.IsNullOrWhiteSpace(fc["ParentTVItemID"])) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.ParentTVItemID))); } int.TryParse(fc["ParentTVItemID"], out ParentTVItemID); if (ParentTVItemID == 0) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.ParentTVItemID))); } if (string.IsNullOrWhiteSpace(fc["PolSourceSiteTVItemID"])) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.PolSourceSiteTVItemID))); } int.TryParse(fc["PolSourceSiteTVItemID"], out PolSourceSiteTVItemID); // PolSourceSiteTVItemID == 0 ==> Add // PolSourceSiteTVItemID > 0 ==> Modify TVItemModel tvItemModelPolSource = null; if (PolSourceSiteTVItemID != 0) { tvItemModelPolSource = _TVItemService.GetTVItemModelWithTVItemIDDB(PolSourceSiteTVItemID); if (!string.IsNullOrWhiteSpace(tvItemModelPolSource.Error)) { return(ReturnError(tvItemModelPolSource.Error)); } } PolSourceSiteModel polSourceSiteNewOrToChange = new PolSourceSiteModel(); if (PolSourceSiteTVItemID != 0) { polSourceSiteNewOrToChange = GetPolSourceSiteModelWithPolSourceSiteTVItemIDDB(PolSourceSiteTVItemID); if (!string.IsNullOrWhiteSpace(polSourceSiteNewOrToChange.Error)) { return(ReturnError(polSourceSiteNewOrToChange.Error)); } } polSourceSiteNewOrToChange.DBCommand = DBCommandEnum.Original; if (string.IsNullOrWhiteSpace(fc["IsActive"])) { IsActive = false; } else { IsActive = true; } if (!IsActive) { int.TryParse(fc["InactiveReason"], out tempInt); if (tempInt == 0) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.InactiveReason))); } polSourceSiteNewOrToChange.InactiveReason = (PolSourceInactiveReasonEnum)tempInt; } else { polSourceSiteNewOrToChange.InactiveReason = null; } if (string.IsNullOrWhiteSpace(fc["IsPointSource"])) { IsPointSource = false; } else { IsPointSource = true; } polSourceSiteNewOrToChange.IsPointSource = IsPointSource; double.TryParse(fc["Lat"], out Lat); if (Lat == 0.0D) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.Lat))); } double.TryParse(fc["Lng"], out Lng); if (Lng == 0.0D) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.Lng))); } List <Coord> coordList = new List <Coord>() { new Coord() { Lat = (float)Lat, Lng = (float)Lng, Ordinal = 0 } }; using (TransactionScope ts = new TransactionScope()) { string ObservationInfo = ((int)PolSourceObsInfoEnum.SourceStart).ToString() + ","; List <int> obsIntList = ObservationInfo.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList(); string ObservationLanguageTVText = ServiceRes.Error; string TVText = _BaseEnumService.GetEnumText_PolSourceObsInfoTextEnum(PolSourceObsInfoEnum.Error); int NextSiteNumber = 0; if (PolSourceSiteTVItemID == 0) { NextSiteNumber = GetNextAvailableSiteNumberWithParentTVItemIDDB(ParentTVItemID); polSourceSiteNewOrToChange.Site = NextSiteNumber; TVText = TVText + " - " + "000000".Substring(0, "000000".Length - NextSiteNumber.ToString().Length) + NextSiteNumber.ToString(); TVItemModel tvItemModelNewPolSourceSite = _TVItemService.PostAddChildTVItemDB(ParentTVItemID, TVText, TVTypeEnum.PolSourceSite); if (!string.IsNullOrWhiteSpace(tvItemModelNewPolSourceSite.Error)) { return(ReturnError(tvItemModelNewPolSourceSite.Error)); } polSourceSiteNewOrToChange.PolSourceSiteTVItemID = tvItemModelNewPolSourceSite.TVItemID; polSourceSiteNewOrToChange.PolSourceSiteTVText = TVText; polSourceSiteNewOrToChange = PostAddPolSourceSiteDB(polSourceSiteNewOrToChange); if (!string.IsNullOrWhiteSpace(polSourceSiteNewOrToChange.Error)) { return(ReturnError(polSourceSiteNewOrToChange.Error)); } // Automatically add one Pollution Source Observation for today PolSourceObservationModel polSourceObservationModelNew = new PolSourceObservationModel() { DBCommand = DBCommandEnum.Original, PolSourceSiteID = polSourceSiteNewOrToChange.PolSourceSiteID, ObservationDate_Local = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day), ContactTVItemID = contactOK.ContactTVItemID, Observation_ToBeDeleted = "", }; PolSourceObservationModel polSourceObservationModelRet = _PolSourceObservationService.PostAddPolSourceObservationDB(polSourceObservationModelNew); if (!string.IsNullOrWhiteSpace(polSourceObservationModelRet.Error)) { return(ReturnError(polSourceObservationModelRet.Error)); } // Automatically add one Pollution Source Observation Issue PolSourceObservationIssueModel polSourceObservationIssueModelNew = new PolSourceObservationIssueModel(); polSourceObservationIssueModelNew.DBCommand = DBCommandEnum.Original; polSourceObservationIssueModelNew.PolSourceObservationID = polSourceObservationModelRet.PolSourceObservationID; polSourceObservationIssueModelNew.ObservationInfo = ObservationInfo; polSourceObservationIssueModelNew.Ordinal = 0; PolSourceObservationIssueModel polSourceObservationIssueModelRet = _PolSourceObservationService._PolSourceObservationIssueService.PostAddPolSourceObservationIssueDB(polSourceObservationIssueModelNew); if (!string.IsNullOrWhiteSpace(polSourceObservationIssueModelRet.Error)) { return(ReturnError(polSourceObservationIssueModelRet.Error)); } // doing the other language foreach (LanguageEnum lang in LanguageListAllowable.Where(c => c != LanguageRequest)) { TVItemService tvItemService = new TVItemService(lang, _TVItemService.User); Thread.CurrentThread.CurrentCulture = new CultureInfo(lang + "-CA"); Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang + "-CA"); ObservationInfo = ((int)PolSourceObsInfoEnum.SourceStart).ToString() + ","; ObservationLanguageTVText = ServiceRes.Error; TVText = _BaseEnumService.GetEnumText_PolSourceObsInfoTextEnum(PolSourceObsInfoEnum.Error); TVText = (string.IsNullOrWhiteSpace(TVText) ? ServiceRes.Error : TVText); if (PolSourceSiteTVItemID == 0) { TVText = TVText + " - " + "000000".Substring(0, "000000".Length - NextSiteNumber.ToString().Length) + NextSiteNumber.ToString(); } else { TVText = TVText + " - " + "000000".Substring(0, "000000".Length - polSourceSiteNewOrToChange.Site.ToString().Length) + polSourceSiteNewOrToChange.Site.ToString(); } TVItemLanguageModel tvItemLanguageModel = new TVItemLanguageModel(); tvItemLanguageModel.DBCommand = DBCommandEnum.Original; tvItemLanguageModel.Language = lang; tvItemLanguageModel.TVText = TVText; tvItemLanguageModel.TVItemID = polSourceSiteNewOrToChange.PolSourceSiteTVItemID; TVItemLanguageModel tvItemLanguageModelRet = tvItemService._TVItemLanguageService.PostUpdateTVItemLanguageDB(tvItemLanguageModel); if (!string.IsNullOrWhiteSpace(tvItemLanguageModelRet.Error)) { return(ReturnError(tvItemLanguageModelRet.Error)); } Thread.CurrentThread.CurrentCulture = new CultureInfo(LanguageRequest + "-CA"); Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageRequest + "-CA"); } } else { polSourceSiteNewOrToChange = PostUpdatePolSourceSiteDB(polSourceSiteNewOrToChange); if (!string.IsNullOrWhiteSpace(polSourceSiteNewOrToChange.Error)) { return(ReturnError(polSourceSiteNewOrToChange.Error)); } } // Adding map info List <MapInfoPointModel> mapInfoPointModelList = _MapInfoService._MapInfoPointService.GetMapInfoPointModelListWithTVItemIDAndTVTypeAndMapInfoDrawTypeDB(polSourceSiteNewOrToChange.PolSourceSiteTVItemID, TVTypeEnum.PolSourceSite, MapInfoDrawTypeEnum.Point); if (mapInfoPointModelList.Count == 0) { MapInfoModel mapInfoModelRet = _MapInfoService.CreateMapInfoObjectDB(coordList, MapInfoDrawTypeEnum.Point, TVTypeEnum.PolSourceSite, polSourceSiteNewOrToChange.PolSourceSiteTVItemID); if (!string.IsNullOrWhiteSpace(mapInfoModelRet.Error)) { return(ReturnError(mapInfoModelRet.Error)); } } else { mapInfoPointModelList[0].Lat = coordList[0].Lat; mapInfoPointModelList[0].Lng = coordList[0].Lng; MapInfoPointModel mapInfoPointModelRet = _MapInfoService._MapInfoPointService.PostUpdateMapInfoPointDB(mapInfoPointModelList[0]); if (!string.IsNullOrWhiteSpace(mapInfoPointModelRet.Error)) { return(ReturnError(mapInfoPointModelRet.Error)); } } TVItemModel tvItemModelPolSourceSite = _TVItemService.GetTVItemModelWithTVItemIDDB(polSourceSiteNewOrToChange.PolSourceSiteTVItemID); if (!string.IsNullOrWhiteSpace(tvItemModelPolSourceSite.Error)) { return(ReturnError(tvItemModelPolSourceSite.Error)); } tvItemModelPolSourceSite.IsActive = IsActive; TVItemModel tvItemModelRet = _TVItemService.PostUpdateTVItemDB(tvItemModelPolSourceSite); if (!string.IsNullOrWhiteSpace(tvItemModelRet.Error)) { return(ReturnError(tvItemModelRet.Error)); } ts.Complete(); } return(polSourceSiteNewOrToChange); }
// Post public PolSourceObservationModel PolSourceObservationAddOrModifyDB(FormCollection fc) { int PolSourceSiteID = 0; int PolSourceSiteTVItemID = 0; int PolSourceObservationID = 0; int Year = 0; int Month = 0; int Day = 0; bool DesktopReviewed = false; DateTime ObsDate = new DateTime(1900, 1, 1); ContactOK contactOK = IsContactOK(); if (!string.IsNullOrWhiteSpace(contactOK.Error)) { return(ReturnError(contactOK.Error)); } if (string.IsNullOrWhiteSpace(fc["PolSourceSiteTVItemID"])) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.PolSourceSiteTVItemID))); } int.TryParse(fc["PolSourceSiteTVItemID"], out PolSourceSiteTVItemID); if (PolSourceSiteTVItemID == 0) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.PolSourceSiteTVItemID))); } TVItemModel tvItemModelPolSourcSite = _TVItemService.GetTVItemModelWithTVItemIDDB(PolSourceSiteTVItemID); if (!string.IsNullOrWhiteSpace(tvItemModelPolSourcSite.Error)) { return(ReturnError(tvItemModelPolSourcSite.Error)); } if (string.IsNullOrWhiteSpace(fc["PolSourceSiteID"])) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.PolSourceSiteID))); } int.TryParse(fc["PolSourceSiteID"], out PolSourceSiteID); if (PolSourceSiteID == 0) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.PolSourceSiteID))); } if (string.IsNullOrWhiteSpace(fc["PolSourceObservationID"])) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.PolSourceObservationID))); } int.TryParse(fc["PolSourceObservationID"], out PolSourceObservationID); // PolSourceObservationID == 0 ==> Add // PolSourceObservationID > 0 ==> Modify PolSourceObservationModel polSourceObservationModelToAddOrChange = new PolSourceObservationModel(); if (PolSourceObservationID > 0) { polSourceObservationModelToAddOrChange = GetPolSourceObservationModelWithPolSourceObservationIDDB(PolSourceObservationID); if (!string.IsNullOrWhiteSpace(polSourceObservationModelToAddOrChange.Error)) { return(ReturnError(polSourceObservationModelToAddOrChange.Error)); } } int.TryParse(fc["ObsYear"], out Year); if (Year == 0) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.Year))); } int.TryParse(fc["ObsMonth"], out Month); if (Month == 0) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.Month))); } int.TryParse(fc["ObsDay"], out Day); if (Day == 0) { return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.Day))); } ObsDate = new DateTime(Year, Month, Day); if (fc["DesktopReviewed"] != null) { DesktopReviewed = true; } //PolSourceObservationModel polSourceObservationModelRet = new PolSourceObservationModel(); using (TransactionScope ts = new TransactionScope()) { PolSourceObservationModel polSourceObservationModelNew = new PolSourceObservationModel() { DBCommand = DBCommandEnum.Original, PolSourceSiteID = PolSourceSiteID, ObservationDate_Local = ObsDate, ContactTVItemID = contactOK.ContactTVItemID, DesktopReviewed = DesktopReviewed, Observation_ToBeDeleted = "", }; if (PolSourceObservationID == 0) // new { polSourceObservationModelToAddOrChange = PostAddPolSourceObservationDB(polSourceObservationModelNew); if (!string.IsNullOrWhiteSpace(polSourceObservationModelToAddOrChange.Error)) { return(ReturnError(polSourceObservationModelToAddOrChange.Error)); } string ObservationInfo = ((int)PolSourceObsInfoEnum.SourceStart).ToString() + ","; List <int> obsIntList = ObservationInfo.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList(); PolSourceObservationIssueModel polSourceObservationIssueModelNew = new PolSourceObservationIssueModel(); polSourceObservationIssueModelNew.DBCommand = DBCommandEnum.Original; polSourceObservationIssueModelNew.PolSourceObservationID = polSourceObservationModelToAddOrChange.PolSourceObservationID; polSourceObservationIssueModelNew.ObservationInfo = ObservationInfo; polSourceObservationIssueModelNew.Ordinal = 0; PolSourceObservationIssueModel polSourceObservationIssueModelRet = _PolSourceObservationIssueService.PostAddPolSourceObservationIssueDB(polSourceObservationIssueModelNew); if (!string.IsNullOrWhiteSpace(polSourceObservationIssueModelRet.Error)) { return(ReturnError(polSourceObservationIssueModelRet.Error)); } // doing the other language foreach (LanguageEnum lang in LanguageListAllowable.Where(c => c != LanguageRequest)) { TVItemService tvItemService = new TVItemService(lang, _PolSourceObservationIssueService.User); Thread.CurrentThread.CurrentCulture = new CultureInfo(lang + "-CA"); Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang + "-CA"); ObservationInfo = ((int)PolSourceObsInfoEnum.SourceStart).ToString() + ","; string ObservationLanguageTVText = ServiceRes.Error; string TVText = _BaseEnumService.GetEnumText_PolSourceObsInfoTextEnum(PolSourceObsInfoEnum.Error);; TVText = (string.IsNullOrWhiteSpace(TVText) ? ServiceRes.Error : TVText); int Site = GetSiteWithPolSourceSiteID(PolSourceSiteID); TVText = TVText + " - " + "000000".Substring(0, "000000".Length - Site.ToString().Length) + Site.ToString(); TVItemLanguageModel tvItemLanguageModel = new TVItemLanguageModel(); tvItemLanguageModel.DBCommand = DBCommandEnum.Original; tvItemLanguageModel.Language = lang; tvItemLanguageModel.TVText = TVText; tvItemLanguageModel.TVItemID = PolSourceSiteID; TVItemLanguageModel tvItemLanguageModelRet = tvItemService._TVItemLanguageService.PostUpdateTVItemLanguageDB(tvItemLanguageModel); if (!string.IsNullOrWhiteSpace(tvItemLanguageModelRet.Error)) { return(ReturnError(tvItemLanguageModelRet.Error)); } Thread.CurrentThread.CurrentCulture = new CultureInfo(LanguageRequest + "-CA"); Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageRequest + "-CA"); } } else { polSourceObservationModelNew.PolSourceObservationID = polSourceObservationModelToAddOrChange.PolSourceObservationID; polSourceObservationModelToAddOrChange = PostUpdatePolSourceObservationDB(polSourceObservationModelNew); if (!string.IsNullOrWhiteSpace(polSourceObservationModelToAddOrChange.Error)) { return(ReturnError(polSourceObservationModelToAddOrChange.Error)); } } ts.Complete(); } return(polSourceObservationModelToAddOrChange); }