private MWQMSubsector GetFilledRandomMWQMSubsector(string OmitPropName) { MWQMSubsector mwqmSubsector = new MWQMSubsector(); if (OmitPropName != "MWQMSubsectorTVItemID") { mwqmSubsector.MWQMSubsectorTVItemID = 11; } if (OmitPropName != "SubsectorHistoricKey") { mwqmSubsector.SubsectorHistoricKey = GetRandomString("", 5); } if (OmitPropName != "TideLocationSIDText") { mwqmSubsector.TideLocationSIDText = GetRandomString("", 5); } if (OmitPropName != "LastUpdateDate_UTC") { mwqmSubsector.LastUpdateDate_UTC = new DateTime(2005, 3, 6); } if (OmitPropName != "LastUpdateContactTVItemID") { mwqmSubsector.LastUpdateContactTVItemID = 2; } return(mwqmSubsector); }
public void MWQMSubsector_Controller_Put_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMSubsectorController mwqmSubsectorController = new MWQMSubsectorController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmSubsectorController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmSubsectorController.DatabaseType); MWQMSubsector mwqmSubsectorLast = new MWQMSubsector(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(query, db, ContactID); mwqmSubsectorLast = (from c in db.MWQMSubsectors select c).FirstOrDefault(); } // ok with MWQMSubsector info IHttpActionResult jsonRet = mwqmSubsectorController.GetMWQMSubsectorWithID(mwqmSubsectorLast.MWQMSubsectorID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MWQMSubsector> Ret = jsonRet as OkNegotiatedContentResult <MWQMSubsector>; MWQMSubsector mwqmSubsectorRet = Ret.Content; Assert.AreEqual(mwqmSubsectorLast.MWQMSubsectorID, mwqmSubsectorRet.MWQMSubsectorID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Put to return success IHttpActionResult jsonRet2 = mwqmSubsectorController.Put(mwqmSubsectorRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MWQMSubsector> mwqmSubsectorRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMSubsector>; Assert.IsNotNull(mwqmSubsectorRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNull(badRequest2); // Put to return CSSPError because MWQMSubsectorID of 0 does not exist mwqmSubsectorRet.MWQMSubsectorID = 0; IHttpActionResult jsonRet3 = mwqmSubsectorController.Put(mwqmSubsectorRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); OkNegotiatedContentResult <MWQMSubsector> mwqmSubsectorRet3 = jsonRet3 as OkNegotiatedContentResult <MWQMSubsector>; Assert.IsNull(mwqmSubsectorRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest3); } } }
public void MWQMSubsector_CRUD_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); int count = 0; if (count == 1) { // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used] } MWQMSubsector mwqmSubsector = GetFilledRandomMWQMSubsector(""); // ------------------------------- // ------------------------------- // CRUD testing // ------------------------------- // ------------------------------- count = mwqmSubsectorService.GetMWQMSubsectorList().Count(); Assert.AreEqual(count, (from c in dbTestDB.MWQMSubsectors select c).Count()); mwqmSubsectorService.Add(mwqmSubsector); if (mwqmSubsector.HasErrors) { Assert.AreEqual("", mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(true, mwqmSubsectorService.GetMWQMSubsectorList().Where(c => c == mwqmSubsector).Any()); mwqmSubsectorService.Update(mwqmSubsector); if (mwqmSubsector.HasErrors) { Assert.AreEqual("", mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(count + 1, mwqmSubsectorService.GetMWQMSubsectorList().Count()); mwqmSubsectorService.Delete(mwqmSubsector); if (mwqmSubsector.HasErrors) { Assert.AreEqual("", mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); } Assert.AreEqual(count, mwqmSubsectorService.GetMWQMSubsectorList().Count()); } } }
public IHttpActionResult GetMWQMSubsectorWithID([FromUri] int MWQMSubsectorID, [FromUri] string lang = "en", [FromUri] string extra = "") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); mwqmSubsectorService.Query = mwqmSubsectorService.FillQuery(typeof(MWQMSubsector), lang, 0, 1, "", "", extra); if (mwqmSubsectorService.Query.Extra == "A") { MWQMSubsectorExtraA mwqmSubsectorExtraA = new MWQMSubsectorExtraA(); mwqmSubsectorExtraA = mwqmSubsectorService.GetMWQMSubsectorExtraAWithMWQMSubsectorID(MWQMSubsectorID); if (mwqmSubsectorExtraA == null) { return(NotFound()); } return(Ok(mwqmSubsectorExtraA)); } else if (mwqmSubsectorService.Query.Extra == "B") { MWQMSubsectorExtraB mwqmSubsectorExtraB = new MWQMSubsectorExtraB(); mwqmSubsectorExtraB = mwqmSubsectorService.GetMWQMSubsectorExtraBWithMWQMSubsectorID(MWQMSubsectorID); if (mwqmSubsectorExtraB == null) { return(NotFound()); } return(Ok(mwqmSubsectorExtraB)); } else { MWQMSubsector mwqmSubsector = new MWQMSubsector(); mwqmSubsector = mwqmSubsectorService.GetMWQMSubsectorWithMWQMSubsectorID(MWQMSubsectorID); if (mwqmSubsector == null) { return(NotFound()); } return(Ok(mwqmSubsector)); } } }
private bool TryToSave(MWQMSubsector mwqmSubsector) { try { db.SaveChanges(); } catch (DbUpdateException ex) { mwqmSubsector.ValidationResults = new List <ValidationResult>() { new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : "")) }.AsEnumerable(); return(false); } return(true); }
public bool Update(MWQMSubsector mwqmSubsector) { mwqmSubsector.ValidationResults = Validate(new ValidationContext(mwqmSubsector), ActionDBTypeEnum.Update); if (mwqmSubsector.ValidationResults.Count() > 0) { return(false); } db.MWQMSubsectors.Update(mwqmSubsector); if (!TryToSave(mwqmSubsector)) { return(false); } return(true); }
public void MWQMSubsector_Controller_GetMWQMSubsectorWithID_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMSubsectorController mwqmSubsectorController = new MWQMSubsectorController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmSubsectorController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmSubsectorController.DatabaseType); MWQMSubsector mwqmSubsectorFirst = new MWQMSubsector(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(new Query(), db, ContactID); mwqmSubsectorFirst = (from c in db.MWQMSubsectors select c).FirstOrDefault(); } // ok with MWQMSubsector info IHttpActionResult jsonRet = mwqmSubsectorController.GetMWQMSubsectorWithID(mwqmSubsectorFirst.MWQMSubsectorID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MWQMSubsector> Ret = jsonRet as OkNegotiatedContentResult <MWQMSubsector>; MWQMSubsector mwqmSubsectorRet = Ret.Content; Assert.AreEqual(mwqmSubsectorFirst.MWQMSubsectorID, mwqmSubsectorRet.MWQMSubsectorID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Not Found IHttpActionResult jsonRet2 = mwqmSubsectorController.GetMWQMSubsectorWithID(0); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MWQMSubsector> mwqmSubsectorRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMSubsector>; Assert.IsNull(mwqmSubsectorRet2); NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult; Assert.IsNotNull(notFoundRequest); } } }
public IHttpActionResult Delete([FromBody] MWQMSubsector mwqmSubsector, [FromUri] string lang = "en") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); if (!mwqmSubsectorService.Delete(mwqmSubsector)) { return(BadRequest(String.Join("|||", mwqmSubsector.ValidationResults))); } else { mwqmSubsector.ValidationResults = null; return(Ok(mwqmSubsector)); } } }
public void GetMWQMSubsectorList_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); MWQMSubsector mwqmSubsector = (from c in dbTestDB.MWQMSubsectors select c).FirstOrDefault(); Assert.IsNotNull(mwqmSubsector); List <MWQMSubsector> mwqmSubsectorDirectQueryList = new List <MWQMSubsector>(); mwqmSubsectorDirectQueryList = (from c in dbTestDB.MWQMSubsectors select c).Take(200).ToList(); foreach (string extra in new List <string>() { null, "A", "B", "C", "D", "E" }) { mwqmSubsectorService.Query.Extra = extra; if (string.IsNullOrWhiteSpace(extra)) { List <MWQMSubsector> mwqmSubsectorList = new List <MWQMSubsector>(); mwqmSubsectorList = mwqmSubsectorService.GetMWQMSubsectorList().ToList(); CheckMWQMSubsectorFields(mwqmSubsectorList); } else { //Assert.AreEqual(true, false); } } } } }
public MWQMSubsectorTest() { mWQMSubsector = new MWQMSubsector(); mWQMSubsectorExtraA = new MWQMSubsectorExtraA(); mWQMSubsectorExtraB = new MWQMSubsectorExtraB(); }
private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType) { string retStr = ""; Enums enums = new Enums(LanguageRequest); MWQMSubsector mwqmSubsector = validationContext.ObjectInstance as MWQMSubsector; mwqmSubsector.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (mwqmSubsector.MWQMSubsectorID == 0) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "MWQMSubsectorID"), new[] { "MWQMSubsectorID" })); } if (!(from c in db.MWQMSubsectors select c).Where(c => c.MWQMSubsectorID == mwqmSubsector.MWQMSubsectorID).Any()) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMSubsector", "MWQMSubsectorID", mwqmSubsector.MWQMSubsectorID.ToString()), new[] { "MWQMSubsectorID" })); } } TVItem TVItemMWQMSubsectorTVItemID = (from c in db.TVItems where c.TVItemID == mwqmSubsector.MWQMSubsectorTVItemID select c).FirstOrDefault(); if (TVItemMWQMSubsectorTVItemID == null) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "MWQMSubsectorTVItemID", mwqmSubsector.MWQMSubsectorTVItemID.ToString()), new[] { "MWQMSubsectorTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Subsector, }; if (!AllowableTVTypes.Contains(TVItemMWQMSubsectorTVItemID.TVType)) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "MWQMSubsectorTVItemID", "Subsector"), new[] { "MWQMSubsectorTVItemID" })); } } if (string.IsNullOrWhiteSpace(mwqmSubsector.SubsectorHistoricKey)) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SubsectorHistoricKey"), new[] { "SubsectorHistoricKey" })); } if (!string.IsNullOrWhiteSpace(mwqmSubsector.SubsectorHistoricKey) && mwqmSubsector.SubsectorHistoricKey.Length > 20) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "SubsectorHistoricKey", "20"), new[] { "SubsectorHistoricKey" })); } if (!string.IsNullOrWhiteSpace(mwqmSubsector.TideLocationSIDText) && mwqmSubsector.TideLocationSIDText.Length > 20) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "TideLocationSIDText", "20"), new[] { "TideLocationSIDText" })); } if (mwqmSubsector.LastUpdateDate_UTC.Year == 1) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (mwqmSubsector.LastUpdateDate_UTC.Year < 1980) { mwqmSubsector.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 == mwqmSubsector.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { mwqmSubsector.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mwqmSubsector.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { mwqmSubsector.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 { mwqmSubsector.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
public void MWQMSubsector_Controller_GetMWQMSubsectorList_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMSubsectorController mwqmSubsectorController = new MWQMSubsectorController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmSubsectorController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmSubsectorController.DatabaseType); MWQMSubsector mwqmSubsectorFirst = new MWQMSubsector(); int count = -1; Query query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(query, db, ContactID); mwqmSubsectorFirst = (from c in db.MWQMSubsectors select c).FirstOrDefault(); count = (from c in db.MWQMSubsectors select c).Count(); count = (query.Take > count ? count : query.Take); } // ok with MWQMSubsector info IHttpActionResult jsonRet = mwqmSubsectorController.GetMWQMSubsectorList(); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <List <MWQMSubsector> > ret = jsonRet as OkNegotiatedContentResult <List <MWQMSubsector> >; Assert.AreEqual(mwqmSubsectorFirst.MWQMSubsectorID, ret.Content[0].MWQMSubsectorID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); List <MWQMSubsector> mwqmSubsectorList = new List <MWQMSubsector>(); count = -1; query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(query, db, ContactID); mwqmSubsectorList = (from c in db.MWQMSubsectors select c).OrderBy(c => c.MWQMSubsectorID).Skip(0).Take(2).ToList(); count = (from c in db.MWQMSubsectors select c).Count(); } if (count > 0) { query.Skip = 0; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with MWQMSubsector info jsonRet = mwqmSubsectorController.GetMWQMSubsectorList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet); ret = jsonRet as OkNegotiatedContentResult <List <MWQMSubsector> >; Assert.AreEqual(mwqmSubsectorList[0].MWQMSubsectorID, ret.Content[0].MWQMSubsectorID); 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 MWQMSubsector info IHttpActionResult jsonRet2 = mwqmSubsectorController.GetMWQMSubsectorList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <List <MWQMSubsector> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <MWQMSubsector> >; Assert.AreEqual(mwqmSubsectorList[1].MWQMSubsectorID, ret2.Content[0].MWQMSubsectorID); Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count); } } } } }
public void MWQMSubsector_Controller_Post_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MWQMSubsectorController mwqmSubsectorController = new MWQMSubsectorController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mwqmSubsectorController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmSubsectorController.DatabaseType); MWQMSubsector mwqmSubsectorLast = new MWQMSubsector(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; query.Asc = ""; query.Desc = ""; MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(query, db, ContactID); mwqmSubsectorLast = (from c in db.MWQMSubsectors select c).FirstOrDefault(); } // ok with MWQMSubsector info IHttpActionResult jsonRet = mwqmSubsectorController.GetMWQMSubsectorWithID(mwqmSubsectorLast.MWQMSubsectorID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MWQMSubsector> Ret = jsonRet as OkNegotiatedContentResult <MWQMSubsector>; MWQMSubsector mwqmSubsectorRet = Ret.Content; Assert.AreEqual(mwqmSubsectorLast.MWQMSubsectorID, mwqmSubsectorRet.MWQMSubsectorID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Post to return CSSPError because MWQMSubsectorID exist IHttpActionResult jsonRet2 = mwqmSubsectorController.Post(mwqmSubsectorRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MWQMSubsector> mwqmSubsectorRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMSubsector>; Assert.IsNull(mwqmSubsectorRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest2); // Post to return newly added MWQMSubsector mwqmSubsectorRet.MWQMSubsectorID = 0; mwqmSubsectorController.Request = new System.Net.Http.HttpRequestMessage(); mwqmSubsectorController.Request.RequestUri = new System.Uri("http://localhost:5000/api/mwqmSubsector"); IHttpActionResult jsonRet3 = mwqmSubsectorController.Post(mwqmSubsectorRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); CreatedNegotiatedContentResult <MWQMSubsector> mwqmSubsectorRet3 = jsonRet3 as CreatedNegotiatedContentResult <MWQMSubsector>; Assert.IsNotNull(mwqmSubsectorRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNull(badRequest3); IHttpActionResult jsonRet4 = mwqmSubsectorController.Delete(mwqmSubsectorRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet4); OkNegotiatedContentResult <MWQMSubsector> mwqmSubsectorRet4 = jsonRet4 as OkNegotiatedContentResult <MWQMSubsector>; Assert.IsNotNull(mwqmSubsectorRet4); BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult; Assert.IsNull(badRequest4); } } }
/// <summary> /// Validate function for all MWQMSubsectorLanguageService 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); MWQMSubsectorLanguage mwqmSubsectorLanguage = validationContext.ObjectInstance as MWQMSubsectorLanguage; mwqmSubsectorLanguage.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (mwqmSubsectorLanguage.MWQMSubsectorLanguageID == 0) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "MWQMSubsectorLanguageID"), new[] { "MWQMSubsectorLanguageID" })); } if (!(from c in db.MWQMSubsectorLanguages select c).Where(c => c.MWQMSubsectorLanguageID == mwqmSubsectorLanguage.MWQMSubsectorLanguageID).Any()) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMSubsectorLanguage", "MWQMSubsectorLanguageID", mwqmSubsectorLanguage.MWQMSubsectorLanguageID.ToString()), new[] { "MWQMSubsectorLanguageID" })); } } MWQMSubsector MWQMSubsectorMWQMSubsectorID = (from c in db.MWQMSubsectors where c.MWQMSubsectorID == mwqmSubsectorLanguage.MWQMSubsectorID select c).FirstOrDefault(); if (MWQMSubsectorMWQMSubsectorID == null) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMSubsector", "MWQMSubsectorID", mwqmSubsectorLanguage.MWQMSubsectorID.ToString()), new[] { "MWQMSubsectorID" })); } retStr = enums.EnumTypeOK(typeof(LanguageEnum), (int?)mwqmSubsectorLanguage.Language); if (!string.IsNullOrWhiteSpace(retStr)) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Language"), new[] { "Language" })); } if (string.IsNullOrWhiteSpace(mwqmSubsectorLanguage.SubsectorDesc)) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SubsectorDesc"), new[] { "SubsectorDesc" })); } if (!string.IsNullOrWhiteSpace(mwqmSubsectorLanguage.SubsectorDesc) && mwqmSubsectorLanguage.SubsectorDesc.Length > 250) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "SubsectorDesc", "250"), new[] { "SubsectorDesc" })); } retStr = enums.EnumTypeOK(typeof(TranslationStatusEnum), (int?)mwqmSubsectorLanguage.TranslationStatusSubsectorDesc); if (!string.IsNullOrWhiteSpace(retStr)) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "TranslationStatusSubsectorDesc"), new[] { "TranslationStatusSubsectorDesc" })); } //LogBook has no StringLength Attribute if (mwqmSubsectorLanguage.TranslationStatusLogBook != null) { retStr = enums.EnumTypeOK(typeof(TranslationStatusEnum), (int?)mwqmSubsectorLanguage.TranslationStatusLogBook); if (mwqmSubsectorLanguage.TranslationStatusLogBook == null || !string.IsNullOrWhiteSpace(retStr)) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "TranslationStatusLogBook"), new[] { "TranslationStatusLogBook" })); } } if (mwqmSubsectorLanguage.LastUpdateDate_UTC.Year == 1) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (mwqmSubsectorLanguage.LastUpdateDate_UTC.Year < 1980) { mwqmSubsectorLanguage.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 == mwqmSubsectorLanguage.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mwqmSubsectorLanguage.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { mwqmSubsectorLanguage.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 { mwqmSubsectorLanguage.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
public void MWQMSubsector_Properties_Test() { foreach (CultureInfo culture in AllowableCulture) { ChangeCulture(culture); using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MWQMSubsectorService mwqmSubsectorService = new MWQMSubsectorService(new Query() { Lang = culture.TwoLetterISOLanguageName }, dbTestDB, ContactID); int count = 0; if (count == 1) { // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used] } count = mwqmSubsectorService.GetMWQMSubsectorList().Count(); MWQMSubsector mwqmSubsector = GetFilledRandomMWQMSubsector(""); // ------------------------------- // ------------------------------- // Properties testing // ------------------------------- // ------------------------------- // ----------------------------------- // [Key] // Is NOT Nullable // mwqmSubsector.MWQMSubsectorID (Int32) // ----------------------------------- mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.MWQMSubsectorID = 0; mwqmSubsectorService.Update(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "MWQMSubsectorID"), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.MWQMSubsectorID = 10000000; mwqmSubsectorService.Update(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMSubsector", "MWQMSubsectorID", mwqmSubsector.MWQMSubsectorID.ToString()), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = Subsector)] // mwqmSubsector.MWQMSubsectorTVItemID (Int32) // ----------------------------------- mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.MWQMSubsectorTVItemID = 0; mwqmSubsectorService.Add(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "MWQMSubsectorTVItemID", mwqmSubsector.MWQMSubsectorTVItemID.ToString()), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.MWQMSubsectorTVItemID = 1; mwqmSubsectorService.Add(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "MWQMSubsectorTVItemID", "Subsector"), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [StringLength(20))] // mwqmSubsector.SubsectorHistoricKey (String) // ----------------------------------- mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector("SubsectorHistoricKey"); Assert.AreEqual(false, mwqmSubsectorService.Add(mwqmSubsector)); Assert.AreEqual(1, mwqmSubsector.ValidationResults.Count()); Assert.IsTrue(mwqmSubsector.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "SubsectorHistoricKey")).Any()); Assert.AreEqual(null, mwqmSubsector.SubsectorHistoricKey); Assert.AreEqual(count, mwqmSubsectorService.GetMWQMSubsectorList().Count()); mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.SubsectorHistoricKey = GetRandomString("", 21); Assert.AreEqual(false, mwqmSubsectorService.Add(mwqmSubsector)); Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "SubsectorHistoricKey", "20"), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); Assert.AreEqual(count, mwqmSubsectorService.GetMWQMSubsectorList().Count()); // ----------------------------------- // Is Nullable // [StringLength(20))] // mwqmSubsector.TideLocationSIDText (String) // ----------------------------------- mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.TideLocationSIDText = GetRandomString("", 21); Assert.AreEqual(false, mwqmSubsectorService.Add(mwqmSubsector)); Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "TideLocationSIDText", "20"), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); Assert.AreEqual(count, mwqmSubsectorService.GetMWQMSubsectorList().Count()); // ----------------------------------- // Is NOT Nullable // [CSSPAfter(Year = 1980)] // mwqmSubsector.LastUpdateDate_UTC (DateTime) // ----------------------------------- mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.LastUpdateDate_UTC = new DateTime(); mwqmSubsectorService.Add(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.LastUpdateDate_UTC = new DateTime(1979, 1, 1); mwqmSubsectorService.Add(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = Contact)] // mwqmSubsector.LastUpdateContactTVItemID (Int32) // ----------------------------------- mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.LastUpdateContactTVItemID = 0; mwqmSubsectorService.Add(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mwqmSubsector.LastUpdateContactTVItemID.ToString()), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); mwqmSubsector = null; mwqmSubsector = GetFilledRandomMWQMSubsector(""); mwqmSubsector.LastUpdateContactTVItemID = 1; mwqmSubsectorService.Add(mwqmSubsector); Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), mwqmSubsector.ValidationResults.FirstOrDefault().ErrorMessage); // ----------------------------------- // Is NOT Nullable // [NotMapped] // mwqmSubsector.HasErrors (Boolean) // ----------------------------------- // No testing requied // ----------------------------------- // Is NOT Nullable // [NotMapped] // mwqmSubsector.ValidationResults (IEnumerable`1) // ----------------------------------- // No testing requied } } }