public void MWQMRun_Controller_Put_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmRunController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType); MWQMRun mwqmRunLast = new MWQMRun(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID); mwqmRunLast = (from c in db.MWQMRuns select c).FirstOrDefault(); } // ok with MWQMRun info IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunWithID(mwqmRunLast.MWQMRunID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MWQMRun> Ret = jsonRet as OkNegotiatedContentResult <MWQMRun>; MWQMRun mwqmRunRet = Ret.Content; Assert.AreEqual(mwqmRunLast.MWQMRunID, mwqmRunRet.MWQMRunID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Put to return success IHttpActionResult jsonRet2 = mwqmRunController.Put(mwqmRunRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MWQMRun> mwqmRunRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMRun>; Assert.IsNotNull(mwqmRunRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNull(badRequest2); // Put to return CSSPError because MWQMRunID of 0 does not exist mwqmRunRet.MWQMRunID = 0; IHttpActionResult jsonRet3 = mwqmRunController.Put(mwqmRunRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); OkNegotiatedContentResult <MWQMRun> mwqmRunRet3 = jsonRet3 as OkNegotiatedContentResult <MWQMRun>; Assert.IsNull(mwqmRunRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest3); } } }
public IHttpActionResult GetMWQMRunWithID([FromUri] int MWQMRunID, [FromUri] string lang = "en", [FromUri] string extra = "") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MWQMRunService mwqmRunService = new MWQMRunService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); mwqmRunService.Query = mwqmRunService.FillQuery(typeof(MWQMRun), lang, 0, 1, "", "", extra); if (mwqmRunService.Query.Extra == "A") { MWQMRunExtraA mwqmRunExtraA = new MWQMRunExtraA(); mwqmRunExtraA = mwqmRunService.GetMWQMRunExtraAWithMWQMRunID(MWQMRunID); if (mwqmRunExtraA == null) { return(NotFound()); } return(Ok(mwqmRunExtraA)); } else if (mwqmRunService.Query.Extra == "B") { MWQMRunExtraB mwqmRunExtraB = new MWQMRunExtraB(); mwqmRunExtraB = mwqmRunService.GetMWQMRunExtraBWithMWQMRunID(MWQMRunID); if (mwqmRunExtraB == null) { return(NotFound()); } return(Ok(mwqmRunExtraB)); } else { MWQMRun mwqmRun = new MWQMRun(); mwqmRun = mwqmRunService.GetMWQMRunWithMWQMRunID(MWQMRunID); if (mwqmRun == null) { return(NotFound()); } return(Ok(mwqmRun)); } } }
/// <summary> /// Tries to execute the CSSPDB transaction (add/delete/update) on an [MWQMRun](CSSPModels.MWQMRun.html) item /// </summary> /// <param name="mwqmRun">Is the MWQMRun item the client want to add to CSSPDB. What's important here is the MWQMRunID</param> /// <returns>true if MWQMRun item was updated to CSSPDB, false if an error happened during the DB requested transtaction</returns> private bool TryToSave(MWQMRun mwqmRun) { try { db.SaveChanges(); } catch (DbUpdateException ex) { mwqmRun.ValidationResults = new List <ValidationResult>() { new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : "")) }.AsEnumerable(); return(false); } return(true); }
/// <summary> /// Updates an [MWQMRun](CSSPModels.MWQMRun.html) item in CSSPDB /// </summary> /// <param name="mwqmRun">Is the MWQMRun item the client want to add to CSSPDB. What's important here is the MWQMRunID</param> /// <returns>true if MWQMRun item was updated to CSSPDB, false if an error happened during the DB requested transtaction</returns> public bool Update(MWQMRun mwqmRun) { mwqmRun.ValidationResults = Validate(new ValidationContext(mwqmRun), ActionDBTypeEnum.Update); if (mwqmRun.ValidationResults.Count() > 0) { return(false); } db.MWQMRuns.Update(mwqmRun); if (!TryToSave(mwqmRun)) { return(false); } return(true); }
public void MWQMRun_Controller_GetMWQMRunWithID_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmRunController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType); MWQMRun mwqmRunFirst = new MWQMRun(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MWQMRunService mwqmRunService = new MWQMRunService(new Query(), db, ContactID); mwqmRunFirst = (from c in db.MWQMRuns select c).FirstOrDefault(); } // ok with MWQMRun info IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunWithID(mwqmRunFirst.MWQMRunID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MWQMRun> Ret = jsonRet as OkNegotiatedContentResult <MWQMRun>; MWQMRun mwqmRunRet = Ret.Content; Assert.AreEqual(mwqmRunFirst.MWQMRunID, mwqmRunRet.MWQMRunID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Not Found IHttpActionResult jsonRet2 = mwqmRunController.GetMWQMRunWithID(0); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MWQMRun> mwqmRunRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMRun>; Assert.IsNull(mwqmRunRet2); NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult; Assert.IsNotNull(notFoundRequest); } } }
public IHttpActionResult Delete([FromBody] MWQMRun mwqmRun, [FromUri] string lang = "en") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MWQMRunService mwqmRunService = new MWQMRunService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); if (!mwqmRunService.Delete(mwqmRun)) { return(BadRequest(String.Join("|||", mwqmRun.ValidationResults))); } else { mwqmRun.ValidationResults = null; return(Ok(mwqmRun)); } } }
/// <summary> /// Validate function for all MWQMRunService commands /// </summary> /// <param name="validationContext">System.ComponentModel.DataAnnotations.ValidationContext (Describes the context in which a validation check is performed.)</param> /// <param name="actionDBType">[ActionDBTypeEnum] (CSSPEnums.ActionDBTypeEnum.html) action type to validate</param> /// <returns>IEnumerable of ValidationResult (Where ValidationResult is a container for the results of a validation request.)</returns> private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType) { string retStr = ""; Enums enums = new Enums(LanguageRequest); MWQMRun mwqmRun = validationContext.ObjectInstance as MWQMRun; mwqmRun.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (mwqmRun.MWQMRunID == 0) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "MWQMRunID"), new[] { "MWQMRunID" })); } if (!(from c in db.MWQMRuns select c).Where(c => c.MWQMRunID == mwqmRun.MWQMRunID).Any()) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMRun", "MWQMRunID", mwqmRun.MWQMRunID.ToString()), new[] { "MWQMRunID" })); } } TVItem TVItemSubsectorTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.SubsectorTVItemID select c).FirstOrDefault(); if (TVItemSubsectorTVItemID == null) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "SubsectorTVItemID", mwqmRun.SubsectorTVItemID.ToString()), new[] { "SubsectorTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Subsector, }; if (!AllowableTVTypes.Contains(TVItemSubsectorTVItemID.TVType)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "SubsectorTVItemID", "Subsector"), new[] { "SubsectorTVItemID" })); } } TVItem TVItemMWQMRunTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.MWQMRunTVItemID select c).FirstOrDefault(); if (TVItemMWQMRunTVItemID == null) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "MWQMRunTVItemID", mwqmRun.MWQMRunTVItemID.ToString()), new[] { "MWQMRunTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.MWQMRun, }; if (!AllowableTVTypes.Contains(TVItemMWQMRunTVItemID.TVType)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "MWQMRunTVItemID", "MWQMRun"), new[] { "MWQMRunTVItemID" })); } } retStr = enums.EnumTypeOK(typeof(SampleTypeEnum), (int?)mwqmRun.RunSampleType); if (!string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "RunSampleType"), new[] { "RunSampleType" })); } if (mwqmRun.DateTime_Local.Year == 1) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "DateTime_Local"), new[] { "DateTime_Local" })); } else { if (mwqmRun.DateTime_Local.Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "DateTime_Local", "1980"), new[] { "DateTime_Local" })); } } if (mwqmRun.RunNumber < 1 || mwqmRun.RunNumber > 1000) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RunNumber", "1", "1000"), new[] { "RunNumber" })); } if (mwqmRun.StartDateTime_Local != null && ((DateTime)mwqmRun.StartDateTime_Local).Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "StartDateTime_Local", "1980"), new[] { "StartDateTime_Local" })); } if (mwqmRun.EndDateTime_Local != null && ((DateTime)mwqmRun.EndDateTime_Local).Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "EndDateTime_Local", "1980"), new[] { "EndDateTime_Local" })); } if (mwqmRun.StartDateTime_Local > mwqmRun.EndDateTime_Local) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._DateIsBiggerThan_, "EndDateTime_Local", "MWQMRunStartDateTime_Local"), new[] { "EndDateTime_Local" })); } if (mwqmRun.LabReceivedDateTime_Local != null && ((DateTime)mwqmRun.LabReceivedDateTime_Local).Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabReceivedDateTime_Local", "1980"), new[] { "LabReceivedDateTime_Local" })); } if (mwqmRun.TemperatureControl1_C != null) { if (mwqmRun.TemperatureControl1_C < -10 || mwqmRun.TemperatureControl1_C > 40) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "TemperatureControl1_C", "-10", "40"), new[] { "TemperatureControl1_C" })); } } if (mwqmRun.TemperatureControl2_C != null) { if (mwqmRun.TemperatureControl2_C < -10 || mwqmRun.TemperatureControl2_C > 40) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "TemperatureControl2_C", "-10", "40"), new[] { "TemperatureControl2_C" })); } } if (mwqmRun.SeaStateAtStart_BeaufortScale != null) { retStr = enums.EnumTypeOK(typeof(BeaufortScaleEnum), (int?)mwqmRun.SeaStateAtStart_BeaufortScale); if (mwqmRun.SeaStateAtStart_BeaufortScale == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SeaStateAtStart_BeaufortScale"), new[] { "SeaStateAtStart_BeaufortScale" })); } } if (mwqmRun.SeaStateAtEnd_BeaufortScale != null) { retStr = enums.EnumTypeOK(typeof(BeaufortScaleEnum), (int?)mwqmRun.SeaStateAtEnd_BeaufortScale); if (mwqmRun.SeaStateAtEnd_BeaufortScale == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SeaStateAtEnd_BeaufortScale"), new[] { "SeaStateAtEnd_BeaufortScale" })); } } if (mwqmRun.WaterLevelAtBrook_m != null) { if (mwqmRun.WaterLevelAtBrook_m < 0 || mwqmRun.WaterLevelAtBrook_m > 100) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "WaterLevelAtBrook_m", "0", "100"), new[] { "WaterLevelAtBrook_m" })); } } if (mwqmRun.WaveHightAtStart_m != null) { if (mwqmRun.WaveHightAtStart_m < 0 || mwqmRun.WaveHightAtStart_m > 100) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "WaveHightAtStart_m", "0", "100"), new[] { "WaveHightAtStart_m" })); } } if (mwqmRun.WaveHightAtEnd_m != null) { if (mwqmRun.WaveHightAtEnd_m < 0 || mwqmRun.WaveHightAtEnd_m > 100) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "WaveHightAtEnd_m", "0", "100"), new[] { "WaveHightAtEnd_m" })); } } if (!string.IsNullOrWhiteSpace(mwqmRun.SampleCrewInitials) && mwqmRun.SampleCrewInitials.Length > 20) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "SampleCrewInitials", "20"), new[] { "SampleCrewInitials" })); } if (mwqmRun.AnalyzeMethod != null) { retStr = enums.EnumTypeOK(typeof(AnalyzeMethodEnum), (int?)mwqmRun.AnalyzeMethod); if (mwqmRun.AnalyzeMethod == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "AnalyzeMethod"), new[] { "AnalyzeMethod" })); } } if (mwqmRun.SampleMatrix != null) { retStr = enums.EnumTypeOK(typeof(SampleMatrixEnum), (int?)mwqmRun.SampleMatrix); if (mwqmRun.SampleMatrix == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SampleMatrix"), new[] { "SampleMatrix" })); } } if (mwqmRun.Laboratory != null) { retStr = enums.EnumTypeOK(typeof(LaboratoryEnum), (int?)mwqmRun.Laboratory); if (mwqmRun.Laboratory == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Laboratory"), new[] { "Laboratory" })); } } if (mwqmRun.SampleStatus != null) { retStr = enums.EnumTypeOK(typeof(SampleStatusEnum), (int?)mwqmRun.SampleStatus); if (mwqmRun.SampleStatus == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SampleStatus"), new[] { "SampleStatus" })); } } if (mwqmRun.LabSampleApprovalContactTVItemID != null) { TVItem TVItemLabSampleApprovalContactTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.LabSampleApprovalContactTVItemID select c).FirstOrDefault(); if (TVItemLabSampleApprovalContactTVItemID == null) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LabSampleApprovalContactTVItemID", (mwqmRun.LabSampleApprovalContactTVItemID == null ? "" : mwqmRun.LabSampleApprovalContactTVItemID.ToString())), new[] { "LabSampleApprovalContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLabSampleApprovalContactTVItemID.TVType)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "LabSampleApprovalContactTVItemID", "Contact"), new[] { "LabSampleApprovalContactTVItemID" })); } } } if (mwqmRun.LabAnalyzeBath1IncubationStartDateTime_Local != null && ((DateTime)mwqmRun.LabAnalyzeBath1IncubationStartDateTime_Local).Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabAnalyzeBath1IncubationStartDateTime_Local", "1980"), new[] { "LabAnalyzeBath1IncubationStartDateTime_Local" })); } if (mwqmRun.LabAnalyzeBath2IncubationStartDateTime_Local != null && ((DateTime)mwqmRun.LabAnalyzeBath2IncubationStartDateTime_Local).Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabAnalyzeBath2IncubationStartDateTime_Local", "1980"), new[] { "LabAnalyzeBath2IncubationStartDateTime_Local" })); } if (mwqmRun.LabAnalyzeBath3IncubationStartDateTime_Local != null && ((DateTime)mwqmRun.LabAnalyzeBath3IncubationStartDateTime_Local).Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabAnalyzeBath3IncubationStartDateTime_Local", "1980"), new[] { "LabAnalyzeBath3IncubationStartDateTime_Local" })); } if (mwqmRun.LabRunSampleApprovalDateTime_Local != null && ((DateTime)mwqmRun.LabRunSampleApprovalDateTime_Local).Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabRunSampleApprovalDateTime_Local", "1980"), new[] { "LabRunSampleApprovalDateTime_Local" })); } if (mwqmRun.Tide_Start != null) { retStr = enums.EnumTypeOK(typeof(TideTextEnum), (int?)mwqmRun.Tide_Start); if (mwqmRun.Tide_Start == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Tide_Start"), new[] { "Tide_Start" })); } } if (mwqmRun.Tide_End != null) { retStr = enums.EnumTypeOK(typeof(TideTextEnum), (int?)mwqmRun.Tide_End); if (mwqmRun.Tide_End == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Tide_End"), new[] { "Tide_End" })); } } if (mwqmRun.RainDay0_mm != null) { if (mwqmRun.RainDay0_mm < 0 || mwqmRun.RainDay0_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay0_mm", "0", "300"), new[] { "RainDay0_mm" })); } } if (mwqmRun.RainDay1_mm != null) { if (mwqmRun.RainDay1_mm < 0 || mwqmRun.RainDay1_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay1_mm", "0", "300"), new[] { "RainDay1_mm" })); } } if (mwqmRun.RainDay2_mm != null) { if (mwqmRun.RainDay2_mm < 0 || mwqmRun.RainDay2_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay2_mm", "0", "300"), new[] { "RainDay2_mm" })); } } if (mwqmRun.RainDay3_mm != null) { if (mwqmRun.RainDay3_mm < 0 || mwqmRun.RainDay3_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay3_mm", "0", "300"), new[] { "RainDay3_mm" })); } } if (mwqmRun.RainDay4_mm != null) { if (mwqmRun.RainDay4_mm < 0 || mwqmRun.RainDay4_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay4_mm", "0", "300"), new[] { "RainDay4_mm" })); } } if (mwqmRun.RainDay5_mm != null) { if (mwqmRun.RainDay5_mm < 0 || mwqmRun.RainDay5_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay5_mm", "0", "300"), new[] { "RainDay5_mm" })); } } if (mwqmRun.RainDay6_mm != null) { if (mwqmRun.RainDay6_mm < 0 || mwqmRun.RainDay6_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay6_mm", "0", "300"), new[] { "RainDay6_mm" })); } } if (mwqmRun.RainDay7_mm != null) { if (mwqmRun.RainDay7_mm < 0 || mwqmRun.RainDay7_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay7_mm", "0", "300"), new[] { "RainDay7_mm" })); } } if (mwqmRun.RainDay8_mm != null) { if (mwqmRun.RainDay8_mm < 0 || mwqmRun.RainDay8_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay8_mm", "0", "300"), new[] { "RainDay8_mm" })); } } if (mwqmRun.RainDay9_mm != null) { if (mwqmRun.RainDay9_mm < 0 || mwqmRun.RainDay9_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay9_mm", "0", "300"), new[] { "RainDay9_mm" })); } } if (mwqmRun.RainDay10_mm != null) { if (mwqmRun.RainDay10_mm < 0 || mwqmRun.RainDay10_mm > 300) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainDay10_mm", "0", "300"), new[] { "RainDay10_mm" })); } } if (mwqmRun.LastUpdateDate_UTC.Year == 1) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (mwqmRun.LastUpdateDate_UTC.Year < 1980) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), new[] { "LastUpdateDate_UTC" })); } } TVItem TVItemLastUpdateContactTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mwqmRun.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { mwqmRun.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), new[] { "LastUpdateContactTVItemID" })); } } retStr = ""; // added to stop compiling CSSPError if (retStr != "") // will never be true { mwqmRun.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
/// <summary> /// Validate function for all MWQMRunLanguageService commands /// </summary> /// <param name="validationContext">System.ComponentModel.DataAnnotations.ValidationContext (Describes the context in which a validation check is performed.)</param> /// <param name="actionDBType">[ActionDBTypeEnum] (CSSPEnums.ActionDBTypeEnum.html) action type to validate</param> /// <returns>IEnumerable of ValidationResult (Where ValidationResult is a container for the results of a validation request.)</returns> private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType) { string retStr = ""; Enums enums = new Enums(LanguageRequest); MWQMRunLanguage mwqmRunLanguage = validationContext.ObjectInstance as MWQMRunLanguage; mwqmRunLanguage.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (mwqmRunLanguage.MWQMRunLanguageID == 0) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "MWQMRunLanguageID"), new[] { "MWQMRunLanguageID" })); } if (!(from c in db.MWQMRunLanguages select c).Where(c => c.MWQMRunLanguageID == mwqmRunLanguage.MWQMRunLanguageID).Any()) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMRunLanguage", "MWQMRunLanguageID", mwqmRunLanguage.MWQMRunLanguageID.ToString()), new[] { "MWQMRunLanguageID" })); } } MWQMRun MWQMRunMWQMRunID = (from c in db.MWQMRuns where c.MWQMRunID == mwqmRunLanguage.MWQMRunID select c).FirstOrDefault(); if (MWQMRunMWQMRunID == null) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMRun", "MWQMRunID", mwqmRunLanguage.MWQMRunID.ToString()), new[] { "MWQMRunID" })); } retStr = enums.EnumTypeOK(typeof(LanguageEnum), (int?)mwqmRunLanguage.Language); if (!string.IsNullOrWhiteSpace(retStr)) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Language"), new[] { "Language" })); } if (string.IsNullOrWhiteSpace(mwqmRunLanguage.RunComment)) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "RunComment"), new[] { "RunComment" })); } //RunComment has no StringLength Attribute retStr = enums.EnumTypeOK(typeof(TranslationStatusEnum), (int?)mwqmRunLanguage.TranslationStatusRunComment); if (!string.IsNullOrWhiteSpace(retStr)) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "TranslationStatusRunComment"), new[] { "TranslationStatusRunComment" })); } if (string.IsNullOrWhiteSpace(mwqmRunLanguage.RunWeatherComment)) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "RunWeatherComment"), new[] { "RunWeatherComment" })); } //RunWeatherComment has no StringLength Attribute retStr = enums.EnumTypeOK(typeof(TranslationStatusEnum), (int?)mwqmRunLanguage.TranslationStatusRunWeatherComment); if (!string.IsNullOrWhiteSpace(retStr)) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "TranslationStatusRunWeatherComment"), new[] { "TranslationStatusRunWeatherComment" })); } if (mwqmRunLanguage.LastUpdateDate_UTC.Year == 1) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (mwqmRunLanguage.LastUpdateDate_UTC.Year < 1980) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), new[] { "LastUpdateDate_UTC" })); } } TVItem TVItemLastUpdateContactTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRunLanguage.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mwqmRunLanguage.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), new[] { "LastUpdateContactTVItemID" })); } } retStr = ""; // added to stop compiling CSSPError if (retStr != "") // will never be true { mwqmRunLanguage.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
private bool GenerateHTMLProvincialSubsectorsReviewXlsx() { string NotUsed = ""; bool ErrorInDoc = false; int ProvinceTVItemID = 7; int AfterYear = 1989; int NumberOfRuns = 30; bool OnlyActiveSubsectors = true; bool OnlyActiveMWQMSites = true; bool FullYear = true; List <string> ParamValueList = Parameters.Split("|||".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList(); string tempVal = GetParameters("TVItemID", ParamValueList); if (string.IsNullOrWhiteSpace(tempVal)) { NotUsed = string.Format(TaskRunnerServiceRes._IsRequired, "TVItemID"); List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_IsRequired", "TVItemID"); } ProvinceTVItemID = int.Parse(tempVal); tempVal = GetParameters("AfterYear", ParamValueList); if (string.IsNullOrWhiteSpace(tempVal)) { NotUsed = string.Format(TaskRunnerServiceRes._IsRequired, "AfterYear"); List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_IsRequired", "AfterYear"); } tempVal = GetParameters("NumberOfRuns", ParamValueList); if (string.IsNullOrWhiteSpace(tempVal)) { NotUsed = string.Format(TaskRunnerServiceRes._IsRequired, "NumberOfRuns"); List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_IsRequired", "NumberOfRuns"); } NumberOfRuns = int.Parse(tempVal); OnlyActiveSubsectors = GetParameters("OnlyActiveSubsectors", ParamValueList) == "" ? false : true; OnlyActiveMWQMSites = GetParameters("OnlyActiveMWQMSites", ParamValueList) == "" ? false : true; FullYear = GetParameters("FullYear", ParamValueList) == "" ? false : true; string provInit = ""; string prov = ""; List <string> ProvInitList = new List <string>() { "BC", "ME", "NB", "NL", "NS", "PE", "QC", }; List <string> ProvList = new List <string>() { "British Columbia", "Maine", "New Brunswick", "Newfoundland and Labrador", "Nova Scotia", "Prince Edward Island", "Québec", }; using (CSSPDBEntities db2 = new CSSPDBEntities()) { var provItem = (from c in db2.TVItems from cl in db2.TVItemLanguages where c.TVItemID == cl.TVItemID && c.TVItemID == ProvinceTVItemID && cl.Language == (int)LanguageEnum.en select new { c, cl }).FirstOrDefault(); for (int i = 0; i < ProvList.Count; i++) { if (ProvList[i] == provItem.cl.TVText) { provInit = ProvInitList[i]; prov = ProvList[i]; break; } } if (string.IsNullOrEmpty(provInit)) { return(false); } NotUsed = string.Format(TaskRunnerServiceRes.Creating_, $"{ provInit } Subsector Review.html"); List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("Creating_", $"{ provInit } Subsector Review.html"); _TaskRunnerBaseService.SendStatusTextToDB(TextLanguageList); _TaskRunnerBaseService.SendPercentToDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID, 10); sb.AppendLine("<!DOCTYPE html>"); sb.AppendLine(""); sb.AppendLine(@"<html lang=""en"" xmlns=""http://www.w3.org/1999/xhtml"">"); sb.AppendLine("<head>"); sb.AppendLine(@" <meta charset=""utf-8"" />"); sb.AppendLine(" <title></title>"); sb.AppendLine(@" <style type=""text/css"">"); sb.AppendLine(" th,td {"); sb.AppendLine(" border: 1px solid black;"); sb.AppendLine(" }"); sb.AppendLine(" </style>"); sb.AppendLine("</head>"); sb.AppendLine("<body>"); sb.AppendLine("<table>"); sb.AppendLine("<tr>"); sb.AppendLine("<th colspan=19>"); sb.AppendLine("Data extrated from Webtools on DATE (All-All-All, N= 30, Full year)"); sb.AppendLine("</th>"); sb.AppendLine("</tr>"); sb.AppendLine("<tr>"); sb.AppendLine("<th>"); sb.AppendLine("Locator"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Name"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Max <br/># Samples"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Max-Min<br/>Years"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Sites Classified as <br/>Approved <br/>with Red A to F rating"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Sites Classified as <br/>Approved <br/>with Green F rating"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Sites Classified as <br/>Restricted or Conditional Restricted <br/>with red F rating"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Sites Classified as <br/>Restricted or Conditional Restricted <br/>with purple A-F rating"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Sites Classified as <br/>Restricted or Conditional Restricted <br/>with green A to D rating"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Sites Classified as <br/>Unclassified"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("# Rain runs<br/> ≥ 12mm <br/>on Run day"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("# Rain runs<br/> ≥ 12mm <br/>0-24 hrs"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("# Rain runs<br/> ≥ 12mm <br/>24-48 hrs"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("# Rain runs<br/> ≥ 25mm <br/>0-24 hrs"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Missing Rain data <br/>in Webtools <br/>(Yes/No)"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Last Relay<br/>request year"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Last depuration<br/>request year"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("More Rain Runs Needed"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Action suggested"); sb.AppendLine("</th>"); sb.AppendLine("<th>"); sb.AppendLine("Initials/Date reviewed"); sb.AppendLine("</th>"); sb.AppendLine("</tr>"); sb2.AppendLine("<!DOCTYPE html>"); sb2.AppendLine(""); sb2.AppendLine(@"<html lang=""en"" xmlns=""http://www.w3.org/1999/xhtml"">"); sb2.AppendLine("<head>"); sb2.AppendLine(@" <meta charset=""utf-8"" />"); sb2.AppendLine(" <title></title>"); sb2.AppendLine(@" <style type=""text/css"">"); sb2.AppendLine(" th,td {"); sb2.AppendLine(" border: 1px solid black;"); sb2.AppendLine(" }"); sb2.AppendLine(" </style>"); sb2.AppendLine("</head>"); sb2.AppendLine("<body>"); sb2.AppendLine("<table>"); sb2.AppendLine("<tr>"); sb2.AppendLine("<th colspan=8>"); sb2.AppendLine("Data extrated from Webtools on DATE (All-All-All, N= 30, Full year) by site"); sb2.AppendLine("</th>"); sb2.AppendLine("</tr>"); sb2.AppendLine("<tr>"); sb2.AppendLine("<th>"); sb2.AppendLine("Locator"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("Name"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("# Samples"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("Years"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("Site"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("Currently <br/>Classified"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("Stat <br/>Color"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("Stat <br/>Letter"); sb2.AppendLine("</th>"); sb2.AppendLine("</tr>"); TVItem tvItemProv = (from c in db2.TVItems from cl in db2.TVItemLanguages where c.TVItemID == cl.TVItemID && cl.Language == (int)LanguageEnum.en && c.TVType == (int)TVTypeEnum.Province && cl.TVText == prov select c).FirstOrDefault(); var subsectorList = (from c in db2.TVItems from cl in db2.TVItemLanguages where c.TVItemID == cl.TVItemID && cl.Language == (int)LanguageEnum.en && c.TVType == (int)TVTypeEnum.Subsector && c.TVPath.Contains(tvItemProv.TVPath + "p") && (c.IsActive == true || c.IsActive == OnlyActiveSubsectors) orderby cl.TVText ascending select new { c, cl }).ToList(); int SSCount = 0; foreach (var subsector in subsectorList) { SSCount += 1; string tvText = subsector.cl.TVText; string locator = tvText; string name = tvText; if (tvText.Contains(" ")) { locator = tvText.Substring(0, tvText.IndexOf(" ")); name = tvText.Substring(tvText.IndexOf(" ") + 1); } name = name.Trim(); if (!string.IsNullOrWhiteSpace(name) && name.StartsWith("(")) { name = name.Substring(1); } if (!string.IsNullOrWhiteSpace(name) && name.StartsWith("(")) { name = name.Substring(1); } if (!string.IsNullOrWhiteSpace(name) && name.EndsWith(")")) { name = name.Substring(0, name.Length - 1); } if (!string.IsNullOrWhiteSpace(name) && name.EndsWith(")")) { name = name.Substring(0, name.Length - 1); } if (SSCount % 10 == 0) { NotUsed = string.Format(TaskRunnerServiceRes.Doing_, tvText); TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("Doing_", tvText); _TaskRunnerBaseService.SendStatusTextToDB(TextLanguageList); _TaskRunnerBaseService.SendPercentToDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID, (int)(10 + (80.0D * ((double)SSCount / (double)subsectorList.Count)))); } List <MWQMSite> mwqmSiteList = (from c in db2.TVItems from s in db2.MWQMSites where c.TVItemID == s.MWQMSiteTVItemID && c.TVType == (int)TVTypeEnum.MWQMSite && c.TVPath.Contains(subsector.c.TVPath + "p") && (c.IsActive == true || c.IsActive == OnlyActiveMWQMSites) orderby s.MWQMSiteNumber ascending select s).ToList(); List <int> mwqmSiteTVItemIDList = (from c in mwqmSiteList select c.MWQMSiteTVItemID).Distinct().ToList(); string routine = $"{ (int)SampleTypeEnum.Routine },"; List <MWQMSample> mwqmSampleList = (from s in db2.MWQMSamples from c in mwqmSiteTVItemIDList where s.MWQMSiteTVItemID == c && s.SampleTypesText.Contains(routine) && s.SampleDateTime_Local.Year > AfterYear select s).ToList(); List <int> mwqmRunTVItemIDList = (from c in mwqmSampleList select c.MWQMRunTVItemID).Distinct().ToList(); List <MWQMRun> mwqmRunList = (from r in db2.MWQMRuns from c in mwqmRunTVItemIDList where r.MWQMRunTVItemID == c && r.DateTime_Local.Year > AfterYear && r.RunSampleType == (int)SampleTypeEnum.Routine select r).Distinct().ToList(); List <MWQMSiteClassStat> MWQMSiteClassStatList = new List <MWQMSiteClassStat>(); int MaxNumberOfSample = 0; int SampleMaxYear = 0; int SampleMinYear = 100000; foreach (MWQMSite mwqmSite in mwqmSiteList) { MWQMSiteClassStat mwqmSiteClassStat = new MWQMSiteClassStat(); mwqmSiteClassStat.MWQMSite = mwqmSite; var mwqmSampleListForMWQMSite = (from c in mwqmSampleList where c.MWQMSiteTVItemID == mwqmSite.MWQMSiteTVItemID orderby c.SampleDateTime_Local descending select c).ToList(); int count = 0; int lastYear = 0; foreach (MWQMSample mwqmSample in mwqmSampleListForMWQMSite) { count += 1; if (count > NumberOfRuns) { if (!FullYear) { break; } if (lastYear != mwqmSample.SampleDateTime_Local.Year) { break; } } mwqmSiteClassStat.MWQMSampleList.Add(mwqmSample); lastYear = mwqmSample.SampleDateTime_Local.Year; } mwqmSiteClassStat.MWQMRunList = (from c in mwqmSiteClassStat.MWQMSampleList from r in mwqmRunList where c.MWQMRunTVItemID == r.MWQMRunTVItemID && c.MWQMSiteTVItemID == mwqmSite.MWQMSiteTVItemID select r).Distinct().ToList(); if (mwqmSampleList.Count > 3) { List <double> mwqmSampleFCList = (from c in mwqmSiteClassStat.MWQMSampleList where c.MWQMSiteTVItemID == mwqmSite.MWQMSiteTVItemID orderby c.SampleDateTime_Local descending select(c.FecCol_MPN_100ml < 2 ? 1.9D : (double)c.FecCol_MPN_100ml)).ToList <double>(); if (mwqmSampleFCList.Count > 3) { if (MaxNumberOfSample < mwqmSampleFCList.Count) { MaxNumberOfSample = mwqmSampleFCList.Count; } double P90 = _TVItemService.GetP90(mwqmSampleFCList); double GeoMean = _TVItemService.GeometricMean(mwqmSampleFCList); double Median = _TVItemService.GetMedian(mwqmSampleFCList); double PercOver43 = ((((double)mwqmSiteClassStat.MWQMSampleList.Where(c => c.FecCol_MPN_100ml > 43).Count()) / (double)mwqmSampleFCList.Count()) * 100.0D); double PercOver260 = ((((double)mwqmSiteClassStat.MWQMSampleList.Where(c => c.FecCol_MPN_100ml > 260).Count()) / (double)mwqmSampleFCList.Count()) * 100.0D); int MinYear = mwqmSiteClassStat.MWQMSampleList.Select(c => c.SampleDateTime_Local).Min().Year; int MaxYear = mwqmSiteClassStat.MWQMSampleList.Select(c => c.SampleDateTime_Local).Max().Year; if (SampleMaxYear < MaxYear) { SampleMaxYear = MaxYear; } if (SampleMinYear > MinYear) { SampleMinYear = MinYear; } LetterColorName letterColorName = new LetterColorName(); if ((GeoMean > 88) || (Median > 88) || (P90 > 260) || (PercOver260 > 10)) { if ((GeoMean > 181) || (Median > 181) || (P90 > 460) || (PercOver260 > 18)) { letterColorName = new LetterColorName() { Letter = "F", Color = "Purple", Name = "NoDepuration" }; } else if ((GeoMean > 163) || (Median > 163) || (P90 > 420) || (PercOver260 > 17)) { letterColorName = new LetterColorName() { Letter = "E", Color = "Purple", Name = "NoDepuration" }; } else if ((GeoMean > 144) || (Median > 144) || (P90 > 380) || (PercOver260 > 15)) { letterColorName = new LetterColorName() { Letter = "D", Color = "Purple", Name = "NoDepuration" }; } else if ((GeoMean > 125) || (Median > 125) || (P90 > 340) || (PercOver260 > 13)) { letterColorName = new LetterColorName() { Letter = "C", Color = "Purple", Name = "NoDepuration" }; } else if ((GeoMean > 107) || (Median > 107) || (P90 > 300) || (PercOver260 > 12)) { letterColorName = new LetterColorName() { Letter = "B", Color = "Purple", Name = "NoDepuration" }; } else { letterColorName = new LetterColorName() { Letter = "A", Color = "Purple", Name = "NoDepuration" }; } } else if ((GeoMean > 14) || (Median > 14) || (P90 > 43) || (PercOver43 > 10)) { if ((GeoMean > 76) || (Median > 76) || (P90 > 224) || (PercOver43 > 27)) { letterColorName = new LetterColorName() { Letter = "F", Color = "Red", Name = "Fail" }; } else if ((GeoMean > 63) || (Median > 63) || (P90 > 188) || (PercOver43 > 23)) { letterColorName = new LetterColorName() { Letter = "E", Color = "Red", Name = "Fail" }; } else if ((GeoMean > 51) || (Median > 51) || (P90 > 152) || (PercOver43 > 20)) { letterColorName = new LetterColorName() { Letter = "D", Color = "Red", Name = "Fail" }; } else if ((GeoMean > 39) || (Median > 39) || (P90 > 115) || (PercOver43 > 17)) { letterColorName = new LetterColorName() { Letter = "C", Color = "Red", Name = "Fail" }; } else if ((GeoMean > 26) || (Median > 26) || (P90 > 79) || (PercOver43 > 13)) { letterColorName = new LetterColorName() { Letter = "B", Color = "Red", Name = "Fail" }; } else { letterColorName = new LetterColorName() { Letter = "A", Color = "Red", Name = "Fail" }; } } else { if ((GeoMean > 12) || (Median > 12) || (P90 > 36) || (PercOver43 > 8)) { letterColorName = new LetterColorName() { Letter = "F", Color = "Green", Name = "Pass" }; } else if ((GeoMean > 9) || (Median > 9) || (P90 > 29) || (PercOver43 > 7)) { letterColorName = new LetterColorName() { Letter = "E", Color = "Green", Name = "Pass" }; } else if ((GeoMean > 7) || (Median > 7) || (P90 > 22) || (PercOver43 > 5)) { letterColorName = new LetterColorName() { Letter = "D", Color = "Green", Name = "Pass" }; } else if ((GeoMean > 5) || (Median > 5) || (P90 > 14) || (PercOver43 > 3)) { letterColorName = new LetterColorName() { Letter = "C", Color = "Green", Name = "Pass" }; } else if ((GeoMean > 2) || (Median > 2) || (P90 > 7) || (PercOver43 > 2)) { letterColorName = new LetterColorName() { Letter = "B", Color = "Green", Name = "Pass" }; } else { letterColorName = new LetterColorName() { Letter = "A", Color = "Green", Name = "Pass" }; } } mwqmSiteClassStat.LetterColorName = letterColorName; sb2.AppendLine("<tr>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ locator }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ name }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ mwqmSampleFCList.Count }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ MaxYear }-{ MinYear }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber) }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ ((MWQMSiteLatestClassificationEnum)mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification).ToString() }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ mwqmSiteClassStat.LetterColorName.Color }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ mwqmSiteClassStat.LetterColorName.Letter }"); sb2.AppendLine("</th>"); sb2.AppendLine("</tr>"); } else { mwqmSiteClassStat.LetterColorName = new LetterColorName() { Color = "ND", Letter = "ND", Name = "ND" }; sb2.AppendLine("<tr>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ locator }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ name }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("</tr>"); } } else { mwqmSiteClassStat.LetterColorName = new LetterColorName() { Color = "ND", Letter = "ND", Name = "ND" }; sb2.AppendLine("<tr>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ locator }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine($"{ name }"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("<th>"); sb2.AppendLine("ND"); sb2.AppendLine("</th>"); sb2.AppendLine("</tr>"); } MWQMSiteClassStatList.Add(mwqmSiteClassStat); } sb.AppendLine("<tr>"); sb.AppendLine("<td>"); sb.Append($@"<a href=""http://131.235.1.167/csspwebtools/en-CA/#!View/a|||"); sb.Append($@"{ subsector.c.TVItemID }|||00000000001000000000000000000000"">{ locator }</a>"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine($"{ name }"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine($"{ MaxNumberOfSample }"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine($"{ SampleMaxYear }-{ SampleMinYear }"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); if (mwqmSampleList.Count > 3) { foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList) { if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Approved) { if (mwqmSiteClassStat.LetterColorName.Color == "Red") { sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},"); } } } } else { sb.AppendLine("ND"); } sb.AppendLine("</td>"); sb.AppendLine("<td>"); if (mwqmSampleList.Count > 3) { foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList) { if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Approved) { if (mwqmSiteClassStat.LetterColorName.Color == "Green" && mwqmSiteClassStat.LetterColorName.Letter == "F") { sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},"); } } } } else { sb.AppendLine("ND"); } sb.AppendLine("</td>"); sb.AppendLine("<td>"); if (mwqmSampleList.Count > 3) { foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList) { if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Restricted || mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.ConditionallyRestricted) { if (mwqmSiteClassStat.LetterColorName.Color == "Red" && mwqmSiteClassStat.LetterColorName.Letter == "F") { sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},"); } } } } else { sb.AppendLine("ND"); } sb.AppendLine("</td>"); sb.AppendLine("<td>"); if (mwqmSampleList.Count > 3) { foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList) { if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Restricted || mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.ConditionallyRestricted) { if (mwqmSiteClassStat.LetterColorName.Color == "Purple") { sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},"); } } } } else { sb.AppendLine("ND"); } sb.AppendLine("</td>"); sb.AppendLine("<td>"); if (mwqmSampleList.Count > 3) { foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList) { if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Restricted || mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.ConditionallyRestricted) { if (mwqmSiteClassStat.LetterColorName.Color == "Green" && !(mwqmSiteClassStat.LetterColorName.Letter == "F")) { sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},"); } } } } else { sb.AppendLine("ND"); } sb.AppendLine("</td>"); sb.AppendLine("<td>"); foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList) { if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Error) { sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},"); } } sb.AppendLine("</td>"); int countRainDay = 0; int countRainDay24h = 0; int countRainDay24hOver25mm = 0; int countRainDay48h = 0; bool rainDataMissing = false; List <MWQMRun> MWQMRunList = new List <MWQMRun>(); foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList) { foreach (MWQMSample mwqmSample in mwqmSiteClassStat.MWQMSampleList) { MWQMRun mwqmRun = (from c in mwqmSiteClassStat.MWQMRunList where c.MWQMRunTVItemID == mwqmSample.MWQMRunTVItemID select c).FirstOrDefault(); if (mwqmRun != null) { if (!MWQMRunList.Where(c => c.MWQMRunTVItemID == mwqmRun.MWQMRunTVItemID).Any()) { MWQMRunList.Add(mwqmRun); } } } } foreach (MWQMRun mwqmRun in MWQMRunList) { if (mwqmRun.RainDay0_mm == null || mwqmRun.RainDay1_mm == null || mwqmRun.RainDay2_mm == null) { rainDataMissing = true; } if (mwqmRun.RainDay0_mm >= 12) { countRainDay += 1; } if (mwqmRun.RainDay1_mm >= 12) { countRainDay24h += 1; } if (mwqmRun.RainDay1_mm >= 25) { countRainDay24hOver25mm += 1; } if (mwqmRun.RainDay2_mm >= 12) { countRainDay48h += 1; } } sb.AppendLine("<td>"); sb.AppendLine($"{ countRainDay }"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine($"{ countRainDay24h }"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine($"{ countRainDay48h }"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine($"{ countRainDay24hOver25mm }"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine(rainDataMissing ? "Yes" : "No"); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine(""); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine(""); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine(""); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine(""); sb.AppendLine("</td>"); sb.AppendLine("<td>"); sb.AppendLine(""); sb.AppendLine("</td>"); sb.AppendLine("</tr>"); } sb.AppendLine("</table>"); sb.AppendLine("</body>"); sb.AppendLine("</html>"); //FileInfo fi = new FileInfo($@"C:\CSSP\{ provInit } Subsector Review.html"); //StreamWriter sw = fi.CreateText(); //sw.WriteLine(sb.ToString()); //sw.Close(); //FileInfo fiSite = new FileInfo($@"C:\CSSP\{ provInit } Subsector Review By Site.html"); //StreamWriter swSite = fiSite.CreateText(); //swSite.WriteLine(sb2.ToString()); //swSite.Close(); return(true); } }
public void MWQMRun_Controller_GetMWQMRunList_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmRunController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType); MWQMRun mwqmRunFirst = new MWQMRun(); int count = -1; Query query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID); mwqmRunFirst = (from c in db.MWQMRuns select c).FirstOrDefault(); count = (from c in db.MWQMRuns select c).Count(); count = (query.Take > count ? count : query.Take); } // ok with MWQMRun info IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunList(); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <List <MWQMRun> > ret = jsonRet as OkNegotiatedContentResult <List <MWQMRun> >; Assert.AreEqual(mwqmRunFirst.MWQMRunID, ret.Content[0].MWQMRunID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); List <MWQMRun> mwqmRunList = new List <MWQMRun>(); count = -1; query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID); mwqmRunList = (from c in db.MWQMRuns select c).OrderBy(c => c.MWQMRunID).Skip(0).Take(2).ToList(); count = (from c in db.MWQMRuns select c).Count(); } if (count > 0) { query.Skip = 0; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with MWQMRun info jsonRet = mwqmRunController.GetMWQMRunList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet); ret = jsonRet as OkNegotiatedContentResult <List <MWQMRun> >; Assert.AreEqual(mwqmRunList[0].MWQMRunID, ret.Content[0].MWQMRunID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); if (count > 1) { query.Skip = 1; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with MWQMRun info IHttpActionResult jsonRet2 = mwqmRunController.GetMWQMRunList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <List <MWQMRun> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <MWQMRun> >; Assert.AreEqual(mwqmRunList[1].MWQMRunID, ret2.Content[0].MWQMRunID); Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count); } } } } }
public void MWQMRun_Controller_Post_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmRunController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType); MWQMRun mwqmRunLast = new MWQMRun(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; query.Asc = ""; query.Desc = ""; MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID); mwqmRunLast = (from c in db.MWQMRuns select c).FirstOrDefault(); } // ok with MWQMRun info IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunWithID(mwqmRunLast.MWQMRunID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MWQMRun> Ret = jsonRet as OkNegotiatedContentResult <MWQMRun>; MWQMRun mwqmRunRet = Ret.Content; Assert.AreEqual(mwqmRunLast.MWQMRunID, mwqmRunRet.MWQMRunID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Post to return CSSPError because MWQMRunID exist IHttpActionResult jsonRet2 = mwqmRunController.Post(mwqmRunRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MWQMRun> mwqmRunRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMRun>; Assert.IsNull(mwqmRunRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest2); // Post to return newly added MWQMRun mwqmRunRet.MWQMRunID = 0; mwqmRunController.Request = new System.Net.Http.HttpRequestMessage(); mwqmRunController.Request.RequestUri = new System.Uri("http://localhost:5000/api/mwqmRun"); IHttpActionResult jsonRet3 = mwqmRunController.Post(mwqmRunRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); CreatedNegotiatedContentResult <MWQMRun> mwqmRunRet3 = jsonRet3 as CreatedNegotiatedContentResult <MWQMRun>; Assert.IsNotNull(mwqmRunRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNull(badRequest3); IHttpActionResult jsonRet4 = mwqmRunController.Delete(mwqmRunRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet4); OkNegotiatedContentResult <MWQMRun> mwqmRunRet4 = jsonRet4 as OkNegotiatedContentResult <MWQMRun>; Assert.IsNotNull(mwqmRunRet4); BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult; Assert.IsNull(badRequest4); } } }
public MWQMRunTest() { mWQMRun = new MWQMRun(); mWQMRunExtraA = new MWQMRunExtraA(); mWQMRunExtraB = new MWQMRunExtraB(); }