public void VPFull_Every_Property_Has_Get_Set_Test() { VPScenario val1 = new VPScenario(); vPFull.VPScenario = val1; Assert.AreEqual(val1, vPFull.VPScenario); List <VPAmbient> val2 = new List <VPAmbient>() { new VPAmbient(), new VPAmbient() }; vPFull.VPAmbientList = val2; Assert.AreEqual(val2, vPFull.VPAmbientList); List <VPResult> val3 = new List <VPResult>() { new VPResult(), new VPResult() }; vPFull.VPResultList = val3; Assert.AreEqual(val3, vPFull.VPResultList); bool val4 = true; vPFull.HasErrors = val4; Assert.AreEqual(val4, vPFull.HasErrors); IEnumerable <ValidationResult> val15 = new List <ValidationResult>() { new ValidationResult("First CSSPError Message") }.AsEnumerable(); vPFull.ValidationResults = val15; Assert.AreEqual(val15, vPFull.ValidationResults); }
public void VPScenario_Controller_Put_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { VPScenarioController vpScenarioController = new VPScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(vpScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, vpScenarioController.DatabaseType); VPScenario vpScenarioLast = new VPScenario(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; VPScenarioService vpScenarioService = new VPScenarioService(query, db, ContactID); vpScenarioLast = (from c in db.VPScenarios select c).FirstOrDefault(); } // ok with VPScenario info IHttpActionResult jsonRet = vpScenarioController.GetVPScenarioWithID(vpScenarioLast.VPScenarioID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <VPScenario> Ret = jsonRet as OkNegotiatedContentResult <VPScenario>; VPScenario vpScenarioRet = Ret.Content; Assert.AreEqual(vpScenarioLast.VPScenarioID, vpScenarioRet.VPScenarioID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Put to return success IHttpActionResult jsonRet2 = vpScenarioController.Put(vpScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <VPScenario> vpScenarioRet2 = jsonRet2 as OkNegotiatedContentResult <VPScenario>; Assert.IsNotNull(vpScenarioRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNull(badRequest2); // Put to return CSSPError because VPScenarioID of 0 does not exist vpScenarioRet.VPScenarioID = 0; IHttpActionResult jsonRet3 = vpScenarioController.Put(vpScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); OkNegotiatedContentResult <VPScenario> vpScenarioRet3 = jsonRet3 as OkNegotiatedContentResult <VPScenario>; Assert.IsNull(vpScenarioRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest3); } } }
public IHttpActionResult GetVPScenarioWithID([FromUri] int VPScenarioID, [FromUri] string lang = "en", [FromUri] string extra = "") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { VPScenarioService vpScenarioService = new VPScenarioService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); vpScenarioService.Query = vpScenarioService.FillQuery(typeof(VPScenario), lang, 0, 1, "", "", extra); if (vpScenarioService.Query.Extra == "A") { VPScenarioExtraA vpScenarioExtraA = new VPScenarioExtraA(); vpScenarioExtraA = vpScenarioService.GetVPScenarioExtraAWithVPScenarioID(VPScenarioID); if (vpScenarioExtraA == null) { return(NotFound()); } return(Ok(vpScenarioExtraA)); } else if (vpScenarioService.Query.Extra == "B") { VPScenarioExtraB vpScenarioExtraB = new VPScenarioExtraB(); vpScenarioExtraB = vpScenarioService.GetVPScenarioExtraBWithVPScenarioID(VPScenarioID); if (vpScenarioExtraB == null) { return(NotFound()); } return(Ok(vpScenarioExtraB)); } else { VPScenario vpScenario = new VPScenario(); vpScenario = vpScenarioService.GetVPScenarioWithVPScenarioID(VPScenarioID); if (vpScenario == null) { return(NotFound()); } return(Ok(vpScenario)); } } }
private bool TryToSave(VPScenario vpScenario) { try { db.SaveChanges(); } catch (DbUpdateException ex) { vpScenario.ValidationResults = new List <ValidationResult>() { new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : "")) }.AsEnumerable(); return(false); } return(true); }
public bool Update(VPScenario vpScenario) { vpScenario.ValidationResults = Validate(new ValidationContext(vpScenario), ActionDBTypeEnum.Update); if (vpScenario.ValidationResults.Count() > 0) { return(false); } db.VPScenarios.Update(vpScenario); if (!TryToSave(vpScenario)) { return(false); } return(true); }
public void VPScenario_Controller_GetVPScenarioWithID_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { VPScenarioController vpScenarioController = new VPScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(vpScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, vpScenarioController.DatabaseType); VPScenario vpScenarioFirst = new VPScenario(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { VPScenarioService vpScenarioService = new VPScenarioService(new Query(), db, ContactID); vpScenarioFirst = (from c in db.VPScenarios select c).FirstOrDefault(); } // ok with VPScenario info IHttpActionResult jsonRet = vpScenarioController.GetVPScenarioWithID(vpScenarioFirst.VPScenarioID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <VPScenario> Ret = jsonRet as OkNegotiatedContentResult <VPScenario>; VPScenario vpScenarioRet = Ret.Content; Assert.AreEqual(vpScenarioFirst.VPScenarioID, vpScenarioRet.VPScenarioID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Not Found IHttpActionResult jsonRet2 = vpScenarioController.GetVPScenarioWithID(0); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <VPScenario> vpScenarioRet2 = jsonRet2 as OkNegotiatedContentResult <VPScenario>; Assert.IsNull(vpScenarioRet2); NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult; Assert.IsNotNull(notFoundRequest); } } }
public IHttpActionResult Delete([FromBody] VPScenario vpScenario, [FromUri] string lang = "en") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { VPScenarioService vpScenarioService = new VPScenarioService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); if (!vpScenarioService.Delete(vpScenario)) { return(BadRequest(String.Join("|||", vpScenario.ValidationResults))); } else { vpScenario.ValidationResults = null; return(Ok(vpScenario)); } } }
private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType) { string retStr = ""; Enums enums = new Enums(LanguageRequest); VPAmbient vpAmbient = validationContext.ObjectInstance as VPAmbient; vpAmbient.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (vpAmbient.VPAmbientID == 0) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "VPAmbientID"), new[] { "VPAmbientID" })); } if (!(from c in db.VPAmbients select c).Where(c => c.VPAmbientID == vpAmbient.VPAmbientID).Any()) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "VPAmbient", "VPAmbientID", vpAmbient.VPAmbientID.ToString()), new[] { "VPAmbientID" })); } } VPScenario VPScenarioVPScenarioID = (from c in db.VPScenarios where c.VPScenarioID == vpAmbient.VPScenarioID select c).FirstOrDefault(); if (VPScenarioVPScenarioID == null) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "VPScenario", "VPScenarioID", vpAmbient.VPScenarioID.ToString()), new[] { "VPScenarioID" })); } if (vpAmbient.Row < 0 || vpAmbient.Row > 10) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Row", "0", "10"), new[] { "Row" })); } if (vpAmbient.MeasurementDepth_m != null) { if (vpAmbient.MeasurementDepth_m < 0 || vpAmbient.MeasurementDepth_m > 1000) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "MeasurementDepth_m", "0", "1000"), new[] { "MeasurementDepth_m" })); } } if (vpAmbient.CurrentSpeed_m_s != null) { if (vpAmbient.CurrentSpeed_m_s < 0 || vpAmbient.CurrentSpeed_m_s > 10) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "CurrentSpeed_m_s", "0", "10"), new[] { "CurrentSpeed_m_s" })); } } if (vpAmbient.CurrentDirection_deg != null) { if (vpAmbient.CurrentDirection_deg < -180 || vpAmbient.CurrentDirection_deg > 180) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "CurrentDirection_deg", "-180", "180"), new[] { "CurrentDirection_deg" })); } } if (vpAmbient.AmbientSalinity_PSU != null) { if (vpAmbient.AmbientSalinity_PSU < 0 || vpAmbient.AmbientSalinity_PSU > 40) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "AmbientSalinity_PSU", "0", "40"), new[] { "AmbientSalinity_PSU" })); } } if (vpAmbient.AmbientTemperature_C != null) { if (vpAmbient.AmbientTemperature_C < -10 || vpAmbient.AmbientTemperature_C > 40) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "AmbientTemperature_C", "-10", "40"), new[] { "AmbientTemperature_C" })); } } if (vpAmbient.BackgroundConcentration_MPN_100ml != null) { if (vpAmbient.BackgroundConcentration_MPN_100ml < 0 || vpAmbient.BackgroundConcentration_MPN_100ml > 10000000) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "BackgroundConcentration_MPN_100ml", "0", "10000000"), new[] { "BackgroundConcentration_MPN_100ml" })); } } if (vpAmbient.PollutantDecayRate_per_day != null) { if (vpAmbient.PollutantDecayRate_per_day < 0 || vpAmbient.PollutantDecayRate_per_day > 100) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "PollutantDecayRate_per_day", "0", "100"), new[] { "PollutantDecayRate_per_day" })); } } if (vpAmbient.FarFieldCurrentSpeed_m_s != null) { if (vpAmbient.FarFieldCurrentSpeed_m_s < 0 || vpAmbient.FarFieldCurrentSpeed_m_s > 10) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "FarFieldCurrentSpeed_m_s", "0", "10"), new[] { "FarFieldCurrentSpeed_m_s" })); } } if (vpAmbient.FarFieldCurrentDirection_deg != null) { if (vpAmbient.FarFieldCurrentDirection_deg < -180 || vpAmbient.FarFieldCurrentDirection_deg > 180) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "FarFieldCurrentDirection_deg", "-180", "180"), new[] { "FarFieldCurrentDirection_deg" })); } } if (vpAmbient.FarFieldDiffusionCoefficient != null) { if (vpAmbient.FarFieldDiffusionCoefficient < 0 || vpAmbient.FarFieldDiffusionCoefficient > 1) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "FarFieldDiffusionCoefficient", "0", "1"), new[] { "FarFieldDiffusionCoefficient" })); } } if (vpAmbient.LastUpdateDate_UTC.Year == 1) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (vpAmbient.LastUpdateDate_UTC.Year < 1980) { vpAmbient.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 == vpAmbient.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { vpAmbient.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", vpAmbient.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { vpAmbient.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 { vpAmbient.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
/// <summary> /// Validate function for all VPScenarioLanguageService 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); VPScenarioLanguage vpScenarioLanguage = validationContext.ObjectInstance as VPScenarioLanguage; vpScenarioLanguage.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (vpScenarioLanguage.VPScenarioLanguageID == 0) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "VPScenarioLanguageID"), new[] { "VPScenarioLanguageID" })); } if (!(from c in db.VPScenarioLanguages select c).Where(c => c.VPScenarioLanguageID == vpScenarioLanguage.VPScenarioLanguageID).Any()) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "VPScenarioLanguage", "VPScenarioLanguageID", vpScenarioLanguage.VPScenarioLanguageID.ToString()), new[] { "VPScenarioLanguageID" })); } } VPScenario VPScenarioVPScenarioID = (from c in db.VPScenarios where c.VPScenarioID == vpScenarioLanguage.VPScenarioID select c).FirstOrDefault(); if (VPScenarioVPScenarioID == null) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "VPScenario", "VPScenarioID", vpScenarioLanguage.VPScenarioID.ToString()), new[] { "VPScenarioID" })); } retStr = enums.EnumTypeOK(typeof(LanguageEnum), (int?)vpScenarioLanguage.Language); if (!string.IsNullOrWhiteSpace(retStr)) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Language"), new[] { "Language" })); } if (string.IsNullOrWhiteSpace(vpScenarioLanguage.VPScenarioName)) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "VPScenarioName"), new[] { "VPScenarioName" })); } if (!string.IsNullOrWhiteSpace(vpScenarioLanguage.VPScenarioName) && vpScenarioLanguage.VPScenarioName.Length > 100) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "VPScenarioName", "100"), new[] { "VPScenarioName" })); } retStr = enums.EnumTypeOK(typeof(TranslationStatusEnum), (int?)vpScenarioLanguage.TranslationStatus); if (!string.IsNullOrWhiteSpace(retStr)) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "TranslationStatus"), new[] { "TranslationStatus" })); } if (vpScenarioLanguage.LastUpdateDate_UTC.Year == 1) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (vpScenarioLanguage.LastUpdateDate_UTC.Year < 1980) { vpScenarioLanguage.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 == vpScenarioLanguage.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", vpScenarioLanguage.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { vpScenarioLanguage.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 { vpScenarioLanguage.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
public void VPScenario_Controller_GetVPScenarioList_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { VPScenarioController vpScenarioController = new VPScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(vpScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, vpScenarioController.DatabaseType); VPScenario vpScenarioFirst = new VPScenario(); int count = -1; Query query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { VPScenarioService vpScenarioService = new VPScenarioService(query, db, ContactID); vpScenarioFirst = (from c in db.VPScenarios select c).FirstOrDefault(); count = (from c in db.VPScenarios select c).Count(); count = (query.Take > count ? count : query.Take); } // ok with VPScenario info IHttpActionResult jsonRet = vpScenarioController.GetVPScenarioList(); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <List <VPScenario> > ret = jsonRet as OkNegotiatedContentResult <List <VPScenario> >; Assert.AreEqual(vpScenarioFirst.VPScenarioID, ret.Content[0].VPScenarioID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); List <VPScenario> vpScenarioList = new List <VPScenario>(); count = -1; query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { VPScenarioService vpScenarioService = new VPScenarioService(query, db, ContactID); vpScenarioList = (from c in db.VPScenarios select c).OrderBy(c => c.VPScenarioID).Skip(0).Take(2).ToList(); count = (from c in db.VPScenarios select c).Count(); } if (count > 0) { query.Skip = 0; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with VPScenario info jsonRet = vpScenarioController.GetVPScenarioList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet); ret = jsonRet as OkNegotiatedContentResult <List <VPScenario> >; Assert.AreEqual(vpScenarioList[0].VPScenarioID, ret.Content[0].VPScenarioID); 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 VPScenario info IHttpActionResult jsonRet2 = vpScenarioController.GetVPScenarioList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <List <VPScenario> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <VPScenario> >; Assert.AreEqual(vpScenarioList[1].VPScenarioID, ret2.Content[0].VPScenarioID); Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count); } } } } }
public void VPScenario_Controller_Post_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { VPScenarioController vpScenarioController = new VPScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(vpScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, vpScenarioController.DatabaseType); VPScenario vpScenarioLast = new VPScenario(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; query.Asc = ""; query.Desc = ""; VPScenarioService vpScenarioService = new VPScenarioService(query, db, ContactID); vpScenarioLast = (from c in db.VPScenarios select c).FirstOrDefault(); } // ok with VPScenario info IHttpActionResult jsonRet = vpScenarioController.GetVPScenarioWithID(vpScenarioLast.VPScenarioID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <VPScenario> Ret = jsonRet as OkNegotiatedContentResult <VPScenario>; VPScenario vpScenarioRet = Ret.Content; Assert.AreEqual(vpScenarioLast.VPScenarioID, vpScenarioRet.VPScenarioID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Post to return CSSPError because VPScenarioID exist IHttpActionResult jsonRet2 = vpScenarioController.Post(vpScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <VPScenario> vpScenarioRet2 = jsonRet2 as OkNegotiatedContentResult <VPScenario>; Assert.IsNull(vpScenarioRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest2); // Post to return newly added VPScenario vpScenarioRet.VPScenarioID = 0; vpScenarioController.Request = new System.Net.Http.HttpRequestMessage(); vpScenarioController.Request.RequestUri = new System.Uri("http://localhost:5000/api/vpScenario"); IHttpActionResult jsonRet3 = vpScenarioController.Post(vpScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); CreatedNegotiatedContentResult <VPScenario> vpScenarioRet3 = jsonRet3 as CreatedNegotiatedContentResult <VPScenario>; Assert.IsNotNull(vpScenarioRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNull(badRequest3); IHttpActionResult jsonRet4 = vpScenarioController.Delete(vpScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet4); OkNegotiatedContentResult <VPScenario> vpScenarioRet4 = jsonRet4 as OkNegotiatedContentResult <VPScenario>; Assert.IsNotNull(vpScenarioRet4); BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult; Assert.IsNull(badRequest4); } } }
private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType) { string retStr = ""; Enums enums = new Enums(LanguageRequest); VPScenario vpScenario = validationContext.ObjectInstance as VPScenario; vpScenario.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (vpScenario.VPScenarioID == 0) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "VPScenarioID"), new[] { "VPScenarioID" })); } if (!(from c in db.VPScenarios select c).Where(c => c.VPScenarioID == vpScenario.VPScenarioID).Any()) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "VPScenario", "VPScenarioID", vpScenario.VPScenarioID.ToString()), new[] { "VPScenarioID" })); } } TVItem TVItemInfrastructureTVItemID = (from c in db.TVItems where c.TVItemID == vpScenario.InfrastructureTVItemID select c).FirstOrDefault(); if (TVItemInfrastructureTVItemID == null) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "InfrastructureTVItemID", vpScenario.InfrastructureTVItemID.ToString()), new[] { "InfrastructureTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Infrastructure, }; if (!AllowableTVTypes.Contains(TVItemInfrastructureTVItemID.TVType)) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "InfrastructureTVItemID", "Infrastructure"), new[] { "InfrastructureTVItemID" })); } } retStr = enums.EnumTypeOK(typeof(ScenarioStatusEnum), (int?)vpScenario.VPScenarioStatus); if (!string.IsNullOrWhiteSpace(retStr)) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "VPScenarioStatus"), new[] { "VPScenarioStatus" })); } if (vpScenario.EffluentFlow_m3_s != null) { if (vpScenario.EffluentFlow_m3_s < 0 || vpScenario.EffluentFlow_m3_s > 1000) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "EffluentFlow_m3_s", "0", "1000"), new[] { "EffluentFlow_m3_s" })); } } if (vpScenario.EffluentConcentration_MPN_100ml != null) { if (vpScenario.EffluentConcentration_MPN_100ml < 0 || vpScenario.EffluentConcentration_MPN_100ml > 10000000) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "EffluentConcentration_MPN_100ml", "0", "10000000"), new[] { "EffluentConcentration_MPN_100ml" })); } } if (vpScenario.FroudeNumber != null) { if (vpScenario.FroudeNumber < 0 || vpScenario.FroudeNumber > 10000) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "FroudeNumber", "0", "10000"), new[] { "FroudeNumber" })); } } if (vpScenario.PortDiameter_m != null) { if (vpScenario.PortDiameter_m < 0 || vpScenario.PortDiameter_m > 10) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "PortDiameter_m", "0", "10"), new[] { "PortDiameter_m" })); } } if (vpScenario.PortDepth_m != null) { if (vpScenario.PortDepth_m < 0 || vpScenario.PortDepth_m > 1000) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "PortDepth_m", "0", "1000"), new[] { "PortDepth_m" })); } } if (vpScenario.PortElevation_m != null) { if (vpScenario.PortElevation_m < 0 || vpScenario.PortElevation_m > 1000) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "PortElevation_m", "0", "1000"), new[] { "PortElevation_m" })); } } if (vpScenario.VerticalAngle_deg != null) { if (vpScenario.VerticalAngle_deg < -90 || vpScenario.VerticalAngle_deg > 90) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "VerticalAngle_deg", "-90", "90"), new[] { "VerticalAngle_deg" })); } } if (vpScenario.HorizontalAngle_deg != null) { if (vpScenario.HorizontalAngle_deg < -180 || vpScenario.HorizontalAngle_deg > 180) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "HorizontalAngle_deg", "-180", "180"), new[] { "HorizontalAngle_deg" })); } } if (vpScenario.NumberOfPorts != null) { if (vpScenario.NumberOfPorts < 1 || vpScenario.NumberOfPorts > 100) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "NumberOfPorts", "1", "100"), new[] { "NumberOfPorts" })); } } if (vpScenario.PortSpacing_m != null) { if (vpScenario.PortSpacing_m < 0 || vpScenario.PortSpacing_m > 1000) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "PortSpacing_m", "0", "1000"), new[] { "PortSpacing_m" })); } } if (vpScenario.AcuteMixZone_m != null) { if (vpScenario.AcuteMixZone_m < 0 || vpScenario.AcuteMixZone_m > 100) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "AcuteMixZone_m", "0", "100"), new[] { "AcuteMixZone_m" })); } } if (vpScenario.ChronicMixZone_m != null) { if (vpScenario.ChronicMixZone_m < 0 || vpScenario.ChronicMixZone_m > 40000) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "ChronicMixZone_m", "0", "40000"), new[] { "ChronicMixZone_m" })); } } if (vpScenario.EffluentSalinity_PSU != null) { if (vpScenario.EffluentSalinity_PSU < 0 || vpScenario.EffluentSalinity_PSU > 40) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "EffluentSalinity_PSU", "0", "40"), new[] { "EffluentSalinity_PSU" })); } } if (vpScenario.EffluentTemperature_C != null) { if (vpScenario.EffluentTemperature_C < -10 || vpScenario.EffluentTemperature_C > 40) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "EffluentTemperature_C", "-10", "40"), new[] { "EffluentTemperature_C" })); } } if (vpScenario.EffluentVelocity_m_s != null) { if (vpScenario.EffluentVelocity_m_s < 0 || vpScenario.EffluentVelocity_m_s > 100) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "EffluentVelocity_m_s", "0", "100"), new[] { "EffluentVelocity_m_s" })); } } //RawResults has no StringLength Attribute if (vpScenario.LastUpdateDate_UTC.Year == 1) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (vpScenario.LastUpdateDate_UTC.Year < 1980) { vpScenario.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 == vpScenario.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { vpScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", vpScenario.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { vpScenario.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 { vpScenario.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
public VPScenarioTest() { vPScenario = new VPScenario(); vPScenarioExtraA = new VPScenarioExtraA(); vPScenarioExtraB = new VPScenarioExtraB(); }
/// <summary> /// Validate function for all VPResultService 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); VPResult vpResult = validationContext.ObjectInstance as VPResult; vpResult.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (vpResult.VPResultID == 0) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "VPResultID"), new[] { "VPResultID" })); } if (!(from c in db.VPResults select c).Where(c => c.VPResultID == vpResult.VPResultID).Any()) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "VPResult", "VPResultID", vpResult.VPResultID.ToString()), new[] { "VPResultID" })); } } VPScenario VPScenarioVPScenarioID = (from c in db.VPScenarios where c.VPScenarioID == vpResult.VPScenarioID select c).FirstOrDefault(); if (VPScenarioVPScenarioID == null) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "VPScenario", "VPScenarioID", vpResult.VPScenarioID.ToString()), new[] { "VPScenarioID" })); } if (vpResult.Ordinal < 0 || vpResult.Ordinal > 1000) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Ordinal", "0", "1000"), new[] { "Ordinal" })); } if (vpResult.Concentration_MPN_100ml < 0 || vpResult.Concentration_MPN_100ml > 10000000) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Concentration_MPN_100ml", "0", "10000000"), new[] { "Concentration_MPN_100ml" })); } if (vpResult.Dilution < 0 || vpResult.Dilution > 1000000) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Dilution", "0", "1000000"), new[] { "Dilution" })); } if (vpResult.FarFieldWidth_m < 0 || vpResult.FarFieldWidth_m > 10000) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "FarFieldWidth_m", "0", "10000"), new[] { "FarFieldWidth_m" })); } if (vpResult.DispersionDistance_m < 0 || vpResult.DispersionDistance_m > 100000) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "DispersionDistance_m", "0", "100000"), new[] { "DispersionDistance_m" })); } if (vpResult.TravelTime_hour < 0 || vpResult.TravelTime_hour > 100) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "TravelTime_hour", "0", "100"), new[] { "TravelTime_hour" })); } if (vpResult.LastUpdateDate_UTC.Year == 1) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (vpResult.LastUpdateDate_UTC.Year < 1980) { vpResult.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 == vpResult.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { vpResult.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", vpResult.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { vpResult.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 { vpResult.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }