private PolSourceSiteEffectTerm GetFilledRandomPolSourceSiteEffectTerm(string OmitPropName)
        {
            PolSourceSiteEffectTerm polSourceSiteEffectTerm = new PolSourceSiteEffectTerm();

            if (OmitPropName != "IsGroup")
            {
                polSourceSiteEffectTerm.IsGroup = true;
            }
            // Need to implement [PolSourceSiteEffectTerm UnderGroupID PolSourceSiteEffectTerm PolSourceSiteEffectTermID]
            if (OmitPropName != "EffectTermEN")
            {
                polSourceSiteEffectTerm.EffectTermEN = GetRandomString("", 5);
            }
            if (OmitPropName != "EffectTermFR")
            {
                polSourceSiteEffectTerm.EffectTermFR = GetRandomString("", 5);
            }
            if (OmitPropName != "LastUpdateDate_UTC")
            {
                polSourceSiteEffectTerm.LastUpdateDate_UTC = new DateTime(2005, 3, 6);
            }
            if (OmitPropName != "LastUpdateContactTVItemID")
            {
                polSourceSiteEffectTerm.LastUpdateContactTVItemID = 2;
            }

            return(polSourceSiteEffectTerm);
        }
        public void PolSourceSiteEffectTerm_Controller_Put_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    PolSourceSiteEffectTermController polSourceSiteEffectTermController = new PolSourceSiteEffectTermController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(polSourceSiteEffectTermController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, polSourceSiteEffectTermController.DatabaseType);

                    PolSourceSiteEffectTerm polSourceSiteEffectTermLast = new PolSourceSiteEffectTerm();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        Query query = new Query();
                        query.Language = LanguageRequest;

                        PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(query, db, ContactID);
                        polSourceSiteEffectTermLast = (from c in db.PolSourceSiteEffectTerms select c).FirstOrDefault();
                    }

                    // ok with PolSourceSiteEffectTerm info
                    IHttpActionResult jsonRet = polSourceSiteEffectTermController.GetPolSourceSiteEffectTermWithID(polSourceSiteEffectTermLast.PolSourceSiteEffectTermID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> Ret = jsonRet as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    PolSourceSiteEffectTerm polSourceSiteEffectTermRet      = Ret.Content;
                    Assert.AreEqual(polSourceSiteEffectTermLast.PolSourceSiteEffectTermID, polSourceSiteEffectTermRet.PolSourceSiteEffectTermID);

                    BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest);

                    // Put to return success
                    IHttpActionResult jsonRet2 = polSourceSiteEffectTermController.Put(polSourceSiteEffectTermRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> polSourceSiteEffectTermRet2 = jsonRet2 as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    Assert.IsNotNull(polSourceSiteEffectTermRet2);

                    BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest2);

                    // Put to return CSSPError because PolSourceSiteEffectTermID of 0 does not exist
                    polSourceSiteEffectTermRet.PolSourceSiteEffectTermID = 0;
                    IHttpActionResult jsonRet3 = polSourceSiteEffectTermController.Put(polSourceSiteEffectTermRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> polSourceSiteEffectTermRet3 = jsonRet3 as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    Assert.IsNull(polSourceSiteEffectTermRet3);

                    BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult;
                    Assert.IsNotNull(badRequest3);
                }
            }
        }
        public void PolSourceSiteEffectTerm_CRUD_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(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]
                    }

                    PolSourceSiteEffectTerm polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");

                    // -------------------------------
                    // -------------------------------
                    // CRUD testing
                    // -------------------------------
                    // -------------------------------

                    count = polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count();

                    Assert.AreEqual(count, (from c in dbTestDB.PolSourceSiteEffectTerms select c).Count());

                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    if (polSourceSiteEffectTerm.HasErrors)
                    {
                        Assert.AreEqual("", polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(true, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Where(c => c == polSourceSiteEffectTerm).Any());
                    polSourceSiteEffectTermService.Update(polSourceSiteEffectTerm);
                    if (polSourceSiteEffectTerm.HasErrors)
                    {
                        Assert.AreEqual("", polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count + 1, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());
                    polSourceSiteEffectTermService.Delete(polSourceSiteEffectTerm);
                    if (polSourceSiteEffectTerm.HasErrors)
                    {
                        Assert.AreEqual("", polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());
                }
            }
        }
        private bool TryToSave(PolSourceSiteEffectTerm polSourceSiteEffectTerm)
        {
            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException ex)
            {
                polSourceSiteEffectTerm.ValidationResults = new List <ValidationResult>()
                {
                    new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""))
                }.AsEnumerable();
                return(false);
            }

            return(true);
        }
        public bool Update(PolSourceSiteEffectTerm polSourceSiteEffectTerm)
        {
            polSourceSiteEffectTerm.ValidationResults = Validate(new ValidationContext(polSourceSiteEffectTerm), ActionDBTypeEnum.Update);
            if (polSourceSiteEffectTerm.ValidationResults.Count() > 0)
            {
                return(false);
            }

            db.PolSourceSiteEffectTerms.Update(polSourceSiteEffectTerm);

            if (!TryToSave(polSourceSiteEffectTerm))
            {
                return(false);
            }

            return(true);
        }
        public void PolSourceSiteEffectTerm_Controller_GetPolSourceSiteEffectTermWithID_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    PolSourceSiteEffectTermController polSourceSiteEffectTermController = new PolSourceSiteEffectTermController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(polSourceSiteEffectTermController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, polSourceSiteEffectTermController.DatabaseType);

                    PolSourceSiteEffectTerm polSourceSiteEffectTermFirst = new PolSourceSiteEffectTerm();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(new Query(), db, ContactID);
                        polSourceSiteEffectTermFirst = (from c in db.PolSourceSiteEffectTerms select c).FirstOrDefault();
                    }

                    // ok with PolSourceSiteEffectTerm info
                    IHttpActionResult jsonRet = polSourceSiteEffectTermController.GetPolSourceSiteEffectTermWithID(polSourceSiteEffectTermFirst.PolSourceSiteEffectTermID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> Ret = jsonRet as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    PolSourceSiteEffectTerm polSourceSiteEffectTermRet      = Ret.Content;
                    Assert.AreEqual(polSourceSiteEffectTermFirst.PolSourceSiteEffectTermID, polSourceSiteEffectTermRet.PolSourceSiteEffectTermID);

                    BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest);

                    // Not Found
                    IHttpActionResult jsonRet2 = polSourceSiteEffectTermController.GetPolSourceSiteEffectTermWithID(0);
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> polSourceSiteEffectTermRet2 = jsonRet2 as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    Assert.IsNull(polSourceSiteEffectTermRet2);

                    NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult;
                    Assert.IsNotNull(notFoundRequest);
                }
            }
        }
        public void GetPolSourceSiteEffectTermList_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(new Query()
                    {
                        Lang = culture.TwoLetterISOLanguageName
                    }, dbTestDB, ContactID);
                    PolSourceSiteEffectTerm polSourceSiteEffectTerm = (from c in dbTestDB.PolSourceSiteEffectTerms select c).FirstOrDefault();
                    Assert.IsNotNull(polSourceSiteEffectTerm);

                    List <PolSourceSiteEffectTerm> polSourceSiteEffectTermDirectQueryList = new List <PolSourceSiteEffectTerm>();
                    polSourceSiteEffectTermDirectQueryList = (from c in dbTestDB.PolSourceSiteEffectTerms select c).Take(200).ToList();

                    foreach (string extra in new List <string>()
                    {
                        null, "A", "B", "C", "D", "E"
                    })
                    {
                        polSourceSiteEffectTermService.Query.Extra = extra;

                        if (string.IsNullOrWhiteSpace(extra))
                        {
                            List <PolSourceSiteEffectTerm> polSourceSiteEffectTermList = new List <PolSourceSiteEffectTerm>();
                            polSourceSiteEffectTermList = polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().ToList();
                            CheckPolSourceSiteEffectTermFields(polSourceSiteEffectTermList);
                        }
                        else
                        {
                            //Assert.AreEqual(true, false);
                        }
                    }
                }
            }
        }
        private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType)
        {
            string retStr = "";
            Enums  enums  = new Enums(LanguageRequest);
            PolSourceSiteEffectTerm polSourceSiteEffectTerm = validationContext.ObjectInstance as PolSourceSiteEffectTerm;

            polSourceSiteEffectTerm.HasErrors = false;

            if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete)
            {
                if (polSourceSiteEffectTerm.PolSourceSiteEffectTermID == 0)
                {
                    polSourceSiteEffectTerm.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "PolSourceSiteEffectTermID"), new[] { "PolSourceSiteEffectTermID" }));
                }

                if (!(from c in db.PolSourceSiteEffectTerms select c).Where(c => c.PolSourceSiteEffectTermID == polSourceSiteEffectTerm.PolSourceSiteEffectTermID).Any())
                {
                    polSourceSiteEffectTerm.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "PolSourceSiteEffectTerm", "PolSourceSiteEffectTermID", polSourceSiteEffectTerm.PolSourceSiteEffectTermID.ToString()), new[] { "PolSourceSiteEffectTermID" }));
                }
            }

            if (polSourceSiteEffectTerm.UnderGroupID != null)
            {
                PolSourceSiteEffectTerm PolSourceSiteEffectTermUnderGroupID = (from c in db.PolSourceSiteEffectTerms where c.PolSourceSiteEffectTermID == polSourceSiteEffectTerm.UnderGroupID select c).FirstOrDefault();

                if (PolSourceSiteEffectTermUnderGroupID == null)
                {
                    polSourceSiteEffectTerm.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "PolSourceSiteEffectTerm", "UnderGroupID", (polSourceSiteEffectTerm.UnderGroupID == null ? "" : polSourceSiteEffectTerm.UnderGroupID.ToString())), new[] { "UnderGroupID" }));
                }
            }

            if (string.IsNullOrWhiteSpace(polSourceSiteEffectTerm.EffectTermEN))
            {
                polSourceSiteEffectTerm.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "EffectTermEN"), new[] { "EffectTermEN" }));
            }

            if (!string.IsNullOrWhiteSpace(polSourceSiteEffectTerm.EffectTermEN) && polSourceSiteEffectTerm.EffectTermEN.Length > 100)
            {
                polSourceSiteEffectTerm.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "EffectTermEN", "100"), new[] { "EffectTermEN" }));
            }

            if (string.IsNullOrWhiteSpace(polSourceSiteEffectTerm.EffectTermFR))
            {
                polSourceSiteEffectTerm.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "EffectTermFR"), new[] { "EffectTermFR" }));
            }

            if (!string.IsNullOrWhiteSpace(polSourceSiteEffectTerm.EffectTermFR) && polSourceSiteEffectTerm.EffectTermFR.Length > 100)
            {
                polSourceSiteEffectTerm.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "EffectTermFR", "100"), new[] { "EffectTermFR" }));
            }

            if (polSourceSiteEffectTerm.LastUpdateDate_UTC.Year == 1)
            {
                polSourceSiteEffectTerm.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" }));
            }
            else
            {
                if (polSourceSiteEffectTerm.LastUpdateDate_UTC.Year < 1980)
                {
                    polSourceSiteEffectTerm.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 == polSourceSiteEffectTerm.LastUpdateContactTVItemID select c).FirstOrDefault();

            if (TVItemLastUpdateContactTVItemID == null)
            {
                polSourceSiteEffectTerm.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", polSourceSiteEffectTerm.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" }));
            }
            else
            {
                List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>()
                {
                    TVTypeEnum.Contact,
                };
                if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType))
                {
                    polSourceSiteEffectTerm.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
            {
                polSourceSiteEffectTerm.HasErrors = true;
                yield return(new ValidationResult("AAA", new[] { "AAA" }));
            }
        }
        public void PolSourceSiteEffectTerm_Controller_GetPolSourceSiteEffectTermList_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    PolSourceSiteEffectTermController polSourceSiteEffectTermController = new PolSourceSiteEffectTermController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(polSourceSiteEffectTermController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, polSourceSiteEffectTermController.DatabaseType);

                    PolSourceSiteEffectTerm polSourceSiteEffectTermFirst = new PolSourceSiteEffectTerm();
                    int   count = -1;
                    Query query = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(query, db, ContactID);
                        polSourceSiteEffectTermFirst = (from c in db.PolSourceSiteEffectTerms select c).FirstOrDefault();
                        count = (from c in db.PolSourceSiteEffectTerms select c).Count();
                        count = (query.Take > count ? count : query.Take);
                    }

                    // ok with PolSourceSiteEffectTerm info
                    IHttpActionResult jsonRet = polSourceSiteEffectTermController.GetPolSourceSiteEffectTermList();
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <List <PolSourceSiteEffectTerm> > ret = jsonRet as OkNegotiatedContentResult <List <PolSourceSiteEffectTerm> >;
                    Assert.AreEqual(polSourceSiteEffectTermFirst.PolSourceSiteEffectTermID, ret.Content[0].PolSourceSiteEffectTermID);
                    Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count);

                    List <PolSourceSiteEffectTerm> polSourceSiteEffectTermList = new List <PolSourceSiteEffectTerm>();
                    count = -1;
                    query = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(query, db, ContactID);
                        polSourceSiteEffectTermList = (from c in db.PolSourceSiteEffectTerms select c).OrderBy(c => c.PolSourceSiteEffectTermID).Skip(0).Take(2).ToList();
                        count = (from c in db.PolSourceSiteEffectTerms select c).Count();
                    }

                    if (count > 0)
                    {
                        query.Skip = 0;
                        query.Take = 5;
                        count      = (query.Take > count ? query.Take : count);

                        // ok with PolSourceSiteEffectTerm info
                        jsonRet = polSourceSiteEffectTermController.GetPolSourceSiteEffectTermList(query.Language.ToString(), query.Skip, query.Take);
                        Assert.IsNotNull(jsonRet);

                        ret = jsonRet as OkNegotiatedContentResult <List <PolSourceSiteEffectTerm> >;
                        Assert.AreEqual(polSourceSiteEffectTermList[0].PolSourceSiteEffectTermID, ret.Content[0].PolSourceSiteEffectTermID);
                        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 PolSourceSiteEffectTerm info
                            IHttpActionResult jsonRet2 = polSourceSiteEffectTermController.GetPolSourceSiteEffectTermList(query.Language.ToString(), query.Skip, query.Take);
                            Assert.IsNotNull(jsonRet2);

                            OkNegotiatedContentResult <List <PolSourceSiteEffectTerm> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <PolSourceSiteEffectTerm> >;
                            Assert.AreEqual(polSourceSiteEffectTermList[1].PolSourceSiteEffectTermID, ret2.Content[0].PolSourceSiteEffectTermID);
                            Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count);
                        }
                    }
                }
            }
        }
        public void PolSourceSiteEffectTerm_Controller_Post_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    PolSourceSiteEffectTermController polSourceSiteEffectTermController = new PolSourceSiteEffectTermController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(polSourceSiteEffectTermController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, polSourceSiteEffectTermController.DatabaseType);

                    PolSourceSiteEffectTerm polSourceSiteEffectTermLast = new PolSourceSiteEffectTerm();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        Query query = new Query();
                        query.Language = LanguageRequest;
                        query.Asc      = "";
                        query.Desc     = "";

                        PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(query, db, ContactID);
                        polSourceSiteEffectTermLast = (from c in db.PolSourceSiteEffectTerms select c).FirstOrDefault();
                    }

                    // ok with PolSourceSiteEffectTerm info
                    IHttpActionResult jsonRet = polSourceSiteEffectTermController.GetPolSourceSiteEffectTermWithID(polSourceSiteEffectTermLast.PolSourceSiteEffectTermID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> Ret = jsonRet as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    PolSourceSiteEffectTerm polSourceSiteEffectTermRet      = Ret.Content;
                    Assert.AreEqual(polSourceSiteEffectTermLast.PolSourceSiteEffectTermID, polSourceSiteEffectTermRet.PolSourceSiteEffectTermID);

                    BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest);

                    // Post to return CSSPError because PolSourceSiteEffectTermID exist
                    IHttpActionResult jsonRet2 = polSourceSiteEffectTermController.Post(polSourceSiteEffectTermRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> polSourceSiteEffectTermRet2 = jsonRet2 as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    Assert.IsNull(polSourceSiteEffectTermRet2);

                    BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult;
                    Assert.IsNotNull(badRequest2);

                    // Post to return newly added PolSourceSiteEffectTerm
                    polSourceSiteEffectTermRet.PolSourceSiteEffectTermID = 0;
                    polSourceSiteEffectTermController.Request            = new System.Net.Http.HttpRequestMessage();
                    polSourceSiteEffectTermController.Request.RequestUri = new System.Uri("http://localhost:5000/api/polSourceSiteEffectTerm");
                    IHttpActionResult jsonRet3 = polSourceSiteEffectTermController.Post(polSourceSiteEffectTermRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    CreatedNegotiatedContentResult <PolSourceSiteEffectTerm> polSourceSiteEffectTermRet3 = jsonRet3 as CreatedNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    Assert.IsNotNull(polSourceSiteEffectTermRet3);

                    BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest3);

                    IHttpActionResult jsonRet4 = polSourceSiteEffectTermController.Delete(polSourceSiteEffectTermRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet4);

                    OkNegotiatedContentResult <PolSourceSiteEffectTerm> polSourceSiteEffectTermRet4 = jsonRet4 as OkNegotiatedContentResult <PolSourceSiteEffectTerm>;
                    Assert.IsNotNull(polSourceSiteEffectTermRet4);

                    BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest4);
                }
            }
        }
        public void PolSourceSiteEffectTerm_Properties_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(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 = polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count();

                    PolSourceSiteEffectTerm polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");

                    // -------------------------------
                    // -------------------------------
                    // Properties testing
                    // -------------------------------
                    // -------------------------------


                    // -----------------------------------
                    // [Key]
                    // Is NOT Nullable
                    // polSourceSiteEffectTerm.PolSourceSiteEffectTermID   (Int32)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.PolSourceSiteEffectTermID = 0;
                    polSourceSiteEffectTermService.Update(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "PolSourceSiteEffectTermID"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.PolSourceSiteEffectTermID = 10000000;
                    polSourceSiteEffectTermService.Update(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "PolSourceSiteEffectTerm", "PolSourceSiteEffectTermID", polSourceSiteEffectTerm.PolSourceSiteEffectTermID.ToString()), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // polSourceSiteEffectTerm.IsGroup   (Boolean)
                    // -----------------------------------


                    // -----------------------------------
                    // Is Nullable
                    // [CSSPExist(ExistTypeName = "PolSourceSiteEffectTerm", ExistPlurial = "s", ExistFieldID = "PolSourceSiteEffectTermID", AllowableTVtypeList = )]
                    // polSourceSiteEffectTerm.UnderGroupID   (Int32)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.UnderGroupID = 0;
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "PolSourceSiteEffectTerm", "UnderGroupID", polSourceSiteEffectTerm.UnderGroupID.ToString()), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // [StringLength(100))]
                    // polSourceSiteEffectTerm.EffectTermEN   (String)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("EffectTermEN");
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(1, polSourceSiteEffectTerm.ValidationResults.Count());
                    Assert.IsTrue(polSourceSiteEffectTerm.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "EffectTermEN")).Any());
                    Assert.AreEqual(null, polSourceSiteEffectTerm.EffectTermEN);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.EffectTermEN = GetRandomString("", 101);
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "EffectTermEN", "100"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

                    // -----------------------------------
                    // Is NOT Nullable
                    // [StringLength(100))]
                    // polSourceSiteEffectTerm.EffectTermFR   (String)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("EffectTermFR");
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(1, polSourceSiteEffectTerm.ValidationResults.Count());
                    Assert.IsTrue(polSourceSiteEffectTerm.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "EffectTermFR")).Any());
                    Assert.AreEqual(null, polSourceSiteEffectTerm.EffectTermFR);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.EffectTermFR = GetRandomString("", 101);
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "EffectTermFR", "100"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

                    // -----------------------------------
                    // Is NOT Nullable
                    // [CSSPAfter(Year = 1980)]
                    // polSourceSiteEffectTerm.LastUpdateDate_UTC   (DateTime)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.LastUpdateDate_UTC = new DateTime();
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.LastUpdateDate_UTC = new DateTime(1979, 1, 1);
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);

                    // -----------------------------------
                    // Is NOT Nullable
                    // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = Contact)]
                    // polSourceSiteEffectTerm.LastUpdateContactTVItemID   (Int32)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.LastUpdateContactTVItemID = 0;
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", polSourceSiteEffectTerm.LastUpdateContactTVItemID.ToString()), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.LastUpdateContactTVItemID = 1;
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // [NotMapped]
                    // polSourceSiteEffectTerm.HasErrors   (Boolean)
                    // -----------------------------------

                    // No testing requied

                    // -----------------------------------
                    // Is NOT Nullable
                    // [NotMapped]
                    // polSourceSiteEffectTerm.ValidationResults   (IEnumerable`1)
                    // -----------------------------------

                    // No testing requied
                }
            }
        }