Beispiel #1
0
        public MikeSource GetMikeSourceWithMikeSourceIDDB(int MikeSourceID)
        {
            MikeSource mikeSource = (from c in db.MikeSources
                                     where c.MikeSourceID == MikeSourceID
                                     select c).FirstOrDefault <MikeSource>();

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

                    MikeSource mikeSourceLast = new MikeSource();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        Query query = new Query();
                        query.Language = LanguageRequest;

                        MikeSourceService mikeSourceService = new MikeSourceService(query, db, ContactID);
                        mikeSourceLast = (from c in db.MikeSources select c).FirstOrDefault();
                    }

                    // ok with MikeSource info
                    IHttpActionResult jsonRet = mikeSourceController.GetMikeSourceWithID(mikeSourceLast.MikeSourceID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <MikeSource> Ret = jsonRet as OkNegotiatedContentResult <MikeSource>;
                    MikeSource mikeSourceRet = Ret.Content;
                    Assert.AreEqual(mikeSourceLast.MikeSourceID, mikeSourceRet.MikeSourceID);

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

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

                    OkNegotiatedContentResult <MikeSource> mikeSourceRet2 = jsonRet2 as OkNegotiatedContentResult <MikeSource>;
                    Assert.IsNotNull(mikeSourceRet2);

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

                    // Put to return CSSPError because MikeSourceID of 0 does not exist
                    mikeSourceRet.MikeSourceID = 0;
                    IHttpActionResult jsonRet3 = mikeSourceController.Put(mikeSourceRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    OkNegotiatedContentResult <MikeSource> mikeSourceRet3 = jsonRet3 as OkNegotiatedContentResult <MikeSource>;
                    Assert.IsNull(mikeSourceRet3);

                    BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult;
                    Assert.IsNotNull(badRequest3);
                }
            }
        }
Beispiel #3
0
        public void MikeSource_CRUD_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

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

                    MikeSource mikeSource = GetFilledRandomMikeSource("");

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

                    count = mikeSourceService.GetMikeSourceList().Count();

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

                    mikeSourceService.Add(mikeSource);
                    if (mikeSource.HasErrors)
                    {
                        Assert.AreEqual("", mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(true, mikeSourceService.GetMikeSourceList().Where(c => c == mikeSource).Any());
                    mikeSourceService.Update(mikeSource);
                    if (mikeSource.HasErrors)
                    {
                        Assert.AreEqual("", mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count + 1, mikeSourceService.GetMikeSourceList().Count());
                    mikeSourceService.Delete(mikeSource);
                    if (mikeSource.HasErrors)
                    {
                        Assert.AreEqual("", mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count, mikeSourceService.GetMikeSourceList().Count());
                }
            }
        }
Beispiel #4
0
        private MikeSource GetFilledRandomMikeSource(string OmitPropName)
        {
            MikeSource mikeSource = new MikeSource();

            if (OmitPropName != "MikeSourceTVItemID")
            {
                mikeSource.MikeSourceTVItemID = 53;
            }
            if (OmitPropName != "IsContinuous")
            {
                mikeSource.IsContinuous = true;
            }
            if (OmitPropName != "Include")
            {
                mikeSource.Include = true;
            }
            if (OmitPropName != "IsRiver")
            {
                mikeSource.IsRiver = true;
            }
            if (OmitPropName != "UseHydrometric")
            {
                mikeSource.UseHydrometric = true;
            }
            if (OmitPropName != "HydrometricTVItemID")
            {
                mikeSource.HydrometricTVItemID = 8;
            }
            if (OmitPropName != "DrainageArea_km2")
            {
                mikeSource.DrainageArea_km2 = GetRandomDouble(0.0D, 1000000.0D);
            }
            if (OmitPropName != "Factor")
            {
                mikeSource.Factor = GetRandomDouble(0.0D, 1000000.0D);
            }
            if (OmitPropName != "SourceNumberString")
            {
                mikeSource.SourceNumberString = GetRandomString("", 5);
            }
            if (OmitPropName != "LastUpdateDate_UTC")
            {
                mikeSource.LastUpdateDate_UTC = new DateTime(2005, 3, 6);
            }
            if (OmitPropName != "LastUpdateContactTVItemID")
            {
                mikeSource.LastUpdateContactTVItemID = 2;
            }

            return(mikeSource);
        }
Beispiel #5
0
        // Post
        public MikeSourceModel PostAddMikeSourceDB(MikeSourceModel mikeSourceModel)
        {
            string retStr = MikeSourceModelOK(mikeSourceModel);

            if (!string.IsNullOrEmpty(retStr))
            {
                return(ReturnError(retStr));
            }

            ContactOK contactOK = IsContactOK();

            if (!string.IsNullOrEmpty(contactOK.Error))
            {
                return(ReturnError(contactOK.Error));
            }

            TVItemModel tvItemModelExist = _TVItemService.GetTVItemModelWithTVItemIDDB(mikeSourceModel.MikeSourceTVItemID);

            if (!string.IsNullOrWhiteSpace(tvItemModelExist.Error))
            {
                return(ReturnError(tvItemModelExist.Error));
            }

            MikeSource mikeSourceNew = new MikeSource();

            retStr = FillMikeSource(mikeSourceNew, mikeSourceModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

            using (TransactionScope ts = new TransactionScope())
            {
                db.MikeSources.Add(mikeSourceNew);
                retStr = DoAddChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                LogModel logModel = _LogService.PostAddLogForObj("MikeSources", mikeSourceNew.MikeSourceID, LogCommandEnum.Add, mikeSourceNew);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                ts.Complete();
            }
            return(GetMikeSourceModelWithMikeSourceIDDB(mikeSourceNew.MikeSourceID));
        }
Beispiel #6
0
        public IHttpActionResult GetMikeSourceWithID([FromUri] int MikeSourceID, [FromUri] string lang = "en", [FromUri] string extra = "")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                MikeSourceService mikeSourceService = new MikeSourceService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                mikeSourceService.Query = mikeSourceService.FillQuery(typeof(MikeSource), lang, 0, 1, "", "", extra);

                if (mikeSourceService.Query.Extra == "A")
                {
                    MikeSourceExtraA mikeSourceExtraA = new MikeSourceExtraA();
                    mikeSourceExtraA = mikeSourceService.GetMikeSourceExtraAWithMikeSourceID(MikeSourceID);

                    if (mikeSourceExtraA == null)
                    {
                        return(NotFound());
                    }

                    return(Ok(mikeSourceExtraA));
                }
                else if (mikeSourceService.Query.Extra == "B")
                {
                    MikeSourceExtraB mikeSourceExtraB = new MikeSourceExtraB();
                    mikeSourceExtraB = mikeSourceService.GetMikeSourceExtraBWithMikeSourceID(MikeSourceID);

                    if (mikeSourceExtraB == null)
                    {
                        return(NotFound());
                    }

                    return(Ok(mikeSourceExtraB));
                }
                else
                {
                    MikeSource mikeSource = new MikeSource();
                    mikeSource = mikeSourceService.GetMikeSourceWithMikeSourceID(MikeSourceID);

                    if (mikeSource == null)
                    {
                        return(NotFound());
                    }

                    return(Ok(mikeSource));
                }
            }
        }
Beispiel #7
0
        public bool Update(MikeSource mikeSource)
        {
            mikeSource.ValidationResults = Validate(new ValidationContext(mikeSource), ActionDBTypeEnum.Update);
            if (mikeSource.ValidationResults.Count() > 0)
            {
                return(false);
            }

            db.MikeSources.Update(mikeSource);

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

            return(true);
        }
Beispiel #8
0
        private bool TryToSave(MikeSource mikeSource)
        {
            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException ex)
            {
                mikeSource.ValidationResults = new List <ValidationResult>()
                {
                    new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""))
                }.AsEnumerable();
                return(false);
            }

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

                    MikeSource mikeSourceFirst = new MikeSource();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        MikeSourceService mikeSourceService = new MikeSourceService(new Query(), db, ContactID);
                        mikeSourceFirst = (from c in db.MikeSources select c).FirstOrDefault();
                    }

                    // ok with MikeSource info
                    IHttpActionResult jsonRet = mikeSourceController.GetMikeSourceWithID(mikeSourceFirst.MikeSourceID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <MikeSource> Ret = jsonRet as OkNegotiatedContentResult <MikeSource>;
                    MikeSource mikeSourceRet = Ret.Content;
                    Assert.AreEqual(mikeSourceFirst.MikeSourceID, mikeSourceRet.MikeSourceID);

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

                    // Not Found
                    IHttpActionResult jsonRet2 = mikeSourceController.GetMikeSourceWithID(0);
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <MikeSource> mikeSourceRet2 = jsonRet2 as OkNegotiatedContentResult <MikeSource>;
                    Assert.IsNull(mikeSourceRet2);

                    NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult;
                    Assert.IsNotNull(notFoundRequest);
                }
            }
        }
Beispiel #10
0
        public IHttpActionResult Delete([FromBody] MikeSource mikeSource, [FromUri] string lang = "en")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                MikeSourceService mikeSourceService = new MikeSourceService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                if (!mikeSourceService.Delete(mikeSource))
                {
                    return(BadRequest(String.Join("|||", mikeSource.ValidationResults)));
                }
                else
                {
                    mikeSource.ValidationResults = null;
                    return(Ok(mikeSource));
                }
            }
        }
Beispiel #11
0
        public void GetMikeSourceList_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    MikeSourceService mikeSourceService = new MikeSourceService(new Query()
                    {
                        Lang = culture.TwoLetterISOLanguageName
                    }, dbTestDB, ContactID);
                    MikeSource mikeSource = (from c in dbTestDB.MikeSources select c).FirstOrDefault();
                    Assert.IsNotNull(mikeSource);

                    List <MikeSource> mikeSourceDirectQueryList = new List <MikeSource>();
                    mikeSourceDirectQueryList = (from c in dbTestDB.MikeSources select c).Take(200).ToList();

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

                        if (string.IsNullOrWhiteSpace(extra))
                        {
                            List <MikeSource> mikeSourceList = new List <MikeSource>();
                            mikeSourceList = mikeSourceService.GetMikeSourceList().ToList();
                            CheckMikeSourceFields(mikeSourceList);
                        }
                        else
                        {
                            //Assert.AreEqual(true, false);
                        }
                    }
                }
            }
        }
Beispiel #12
0
        // Fill
        public string FillMikeSource(MikeSource mikeSource, MikeSourceModel mikeSourceModel, ContactOK contactOK)
        {
            mikeSource.DBCommand           = (int)mikeSourceModel.DBCommand;
            mikeSource.MikeSourceTVItemID  = mikeSourceModel.MikeSourceTVItemID;
            mikeSource.Include             = mikeSourceModel.Include;
            mikeSource.IsContinuous        = mikeSourceModel.IsContinuous;
            mikeSource.IsRiver             = mikeSourceModel.IsRiver;
            mikeSource.UseHydrometric      = mikeSourceModel.UseHydrometric;
            mikeSource.HydrometricTVItemID = mikeSourceModel.HydrometricTVItemID;
            mikeSource.DrainageArea_km2    = mikeSourceModel.DrainageArea_km2;
            mikeSource.Factor             = mikeSourceModel.Factor;
            mikeSource.SourceNumberString = mikeSourceModel.SourceNumberString;
            mikeSource.LastUpdateDate_UTC = DateTime.UtcNow;
            if (contactOK == null)
            {
                mikeSource.LastUpdateContactTVItemID = 2;
            }
            else
            {
                mikeSource.LastUpdateContactTVItemID = contactOK.ContactTVItemID;
            }

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

                    MikeSource mikeSourceFirst = new MikeSource();
                    int        count           = -1;
                    Query      query           = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        MikeSourceService mikeSourceService = new MikeSourceService(query, db, ContactID);
                        mikeSourceFirst = (from c in db.MikeSources select c).FirstOrDefault();
                        count           = (from c in db.MikeSources select c).Count();
                        count           = (query.Take > count ? count : query.Take);
                    }

                    // ok with MikeSource info
                    IHttpActionResult jsonRet = mikeSourceController.GetMikeSourceList();
                    Assert.IsNotNull(jsonRet);

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

                    List <MikeSource> mikeSourceList = new List <MikeSource>();
                    count = -1;
                    query = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        MikeSourceService mikeSourceService = new MikeSourceService(query, db, ContactID);
                        mikeSourceList = (from c in db.MikeSources select c).OrderBy(c => c.MikeSourceID).Skip(0).Take(2).ToList();
                        count          = (from c in db.MikeSources select c).Count();
                    }

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

                        // ok with MikeSource info
                        jsonRet = mikeSourceController.GetMikeSourceList(query.Language.ToString(), query.Skip, query.Take);
                        Assert.IsNotNull(jsonRet);

                        ret = jsonRet as OkNegotiatedContentResult <List <MikeSource> >;
                        Assert.AreEqual(mikeSourceList[0].MikeSourceID, ret.Content[0].MikeSourceID);
                        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 MikeSource info
                            IHttpActionResult jsonRet2 = mikeSourceController.GetMikeSourceList(query.Language.ToString(), query.Skip, query.Take);
                            Assert.IsNotNull(jsonRet2);

                            OkNegotiatedContentResult <List <MikeSource> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <MikeSource> >;
                            Assert.AreEqual(mikeSourceList[1].MikeSourceID, ret2.Content[0].MikeSourceID);
                            Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count);
                        }
                    }
                }
            }
        }
Beispiel #14
0
 public MikeSourceTest()
 {
     mikeSource       = new MikeSource();
     mikeSourceExtraA = new MikeSourceExtraA();
     mikeSourceExtraB = new MikeSourceExtraB();
 }
        private IEnumerable<ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType)
        {
            string retStr = "";
            Enums enums = new Enums(LanguageRequest);
            MikeSourceStartEnd mikeSourceStartEnd = validationContext.ObjectInstance as MikeSourceStartEnd;
            mikeSourceStartEnd.HasErrors = false;

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

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

            MikeSource MikeSourceMikeSourceID = (from c in db.MikeSources where c.MikeSourceID == mikeSourceStartEnd.MikeSourceID select c).FirstOrDefault();

            if (MikeSourceMikeSourceID == null)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MikeSource", "MikeSourceID", mikeSourceStartEnd.MikeSourceID.ToString()), new[] { "MikeSourceID" });
            }

            if (mikeSourceStartEnd.StartDateAndTime_Local.Year == 1)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "StartDateAndTime_Local"), new[] { "StartDateAndTime_Local" });
            }
            else
            {
                if (mikeSourceStartEnd.StartDateAndTime_Local.Year < 1980)
                {
                mikeSourceStartEnd.HasErrors = true;
                    yield return new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "StartDateAndTime_Local", "1980"), new[] { "StartDateAndTime_Local" });
                }
            }

            if (mikeSourceStartEnd.EndDateAndTime_Local.Year == 1)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "EndDateAndTime_Local"), new[] { "EndDateAndTime_Local" });
            }
            else
            {
                if (mikeSourceStartEnd.EndDateAndTime_Local.Year < 1980)
                {
                mikeSourceStartEnd.HasErrors = true;
                    yield return new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "EndDateAndTime_Local", "1980"), new[] { "EndDateAndTime_Local" });
                }
            }

            if (mikeSourceStartEnd.StartDateAndTime_Local > mikeSourceStartEnd.EndDateAndTime_Local)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._DateIsBiggerThan_, "EndDateAndTime_Local", "MikeSourceStartEndStartDateAndTime_Local"), new[] { "EndDateAndTime_Local" });
            }

            if (mikeSourceStartEnd.SourceFlowStart_m3_day < 0 || mikeSourceStartEnd.SourceFlowStart_m3_day > 1000000)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourceFlowStart_m3_day", "0", "1000000"), new[] { "SourceFlowStart_m3_day" });
            }

            if (mikeSourceStartEnd.SourceFlowEnd_m3_day < 0 || mikeSourceStartEnd.SourceFlowEnd_m3_day > 1000000)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourceFlowEnd_m3_day", "0", "1000000"), new[] { "SourceFlowEnd_m3_day" });
            }

            if (mikeSourceStartEnd.SourcePollutionStart_MPN_100ml < 0 || mikeSourceStartEnd.SourcePollutionStart_MPN_100ml > 10000000)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourcePollutionStart_MPN_100ml", "0", "10000000"), new[] { "SourcePollutionStart_MPN_100ml" });
            }

            if (mikeSourceStartEnd.SourcePollutionEnd_MPN_100ml < 0 || mikeSourceStartEnd.SourcePollutionEnd_MPN_100ml > 10000000)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourcePollutionEnd_MPN_100ml", "0", "10000000"), new[] { "SourcePollutionEnd_MPN_100ml" });
            }

            if (mikeSourceStartEnd.SourceTemperatureStart_C < -10 || mikeSourceStartEnd.SourceTemperatureStart_C > 40)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourceTemperatureStart_C", "-10", "40"), new[] { "SourceTemperatureStart_C" });
            }

            if (mikeSourceStartEnd.SourceTemperatureEnd_C < -10 || mikeSourceStartEnd.SourceTemperatureEnd_C > 40)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourceTemperatureEnd_C", "-10", "40"), new[] { "SourceTemperatureEnd_C" });
            }

            if (mikeSourceStartEnd.SourceSalinityStart_PSU < 0 || mikeSourceStartEnd.SourceSalinityStart_PSU > 40)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourceSalinityStart_PSU", "0", "40"), new[] { "SourceSalinityStart_PSU" });
            }

            if (mikeSourceStartEnd.SourceSalinityEnd_PSU < 0 || mikeSourceStartEnd.SourceSalinityEnd_PSU > 40)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SourceSalinityEnd_PSU", "0", "40"), new[] { "SourceSalinityEnd_PSU" });
            }

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

            if (TVItemLastUpdateContactTVItemID == null)
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mikeSourceStartEnd.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" });
            }
            else
            {
                List<TVTypeEnum> AllowableTVTypes = new List<TVTypeEnum>()
                {
                    TVTypeEnum.Contact,
                };
                if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType))
                {
                    mikeSourceStartEnd.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
            {
                mikeSourceStartEnd.HasErrors = true;
                yield return new ValidationResult("AAA", new[] { "AAA" });
            }
        }
Beispiel #16
0
        public MikeSourceModel PostDeleteMikeSourceDB(int MikeSourceID)
        {
            ContactOK contactOK = IsContactOK();

            if (!string.IsNullOrEmpty(contactOK.Error))
            {
                return(ReturnError(contactOK.Error));
            }

            MikeSource mikeSourceToDelete = GetMikeSourceWithMikeSourceIDDB(MikeSourceID);

            if (mikeSourceToDelete == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_ToDelete, ServiceRes.MikeSource)));
            }

            int TVItemIDToDelete = mikeSourceToDelete.MikeSourceTVItemID;

            int SourceNumber = int.Parse(mikeSourceToDelete.SourceNumberString.Substring("SOURCE_".Length));

            TVItemModel tvItemModelMikeSource = _TVItemService.GetTVItemModelWithTVItemIDDB(mikeSourceToDelete.MikeSourceTVItemID);

            if (!string.IsNullOrWhiteSpace(tvItemModelMikeSource.Error))
            {
                return(ReturnError(tvItemModelMikeSource.Error));
            }

            int MikeScenarioTVItemID = tvItemModelMikeSource.ParentID;

            TVItemModel tvItemModelMikeScenario = _TVItemService.GetTVItemModelWithTVItemIDDB(MikeScenarioTVItemID);

            if (!string.IsNullOrWhiteSpace(tvItemModelMikeScenario.Error))
            {
                return(ReturnError(tvItemModelMikeScenario.Error));
            }

            string ServerPath = _TVFileService.GetServerFilePath(MikeScenarioTVItemID);

            string ServerFileNameConc = $"{ tvItemModelMikeSource.TVText}_PollutionConcentration.dfs0";

            TVFileModel tvFileModel = _TVFileService.GetTVFileModelWithServerFilePathAndServerFileNameDB(ServerPath, ServerFileNameConc);

            if (string.IsNullOrWhiteSpace(tvFileModel.Error))
            {
                TVFileModel tvFileModelRet = _TVFileService.PostDeleteTVFileDB(tvFileModel.TVFileID);
                if (!string.IsNullOrWhiteSpace(tvFileModelRet.Error))
                {
                    return(ReturnError(tvFileModelRet.Error));
                }
            }

            string ServerFileNameDischarge = $"{ tvItemModelMikeSource.TVText}_Discharge.dfs0";

            TVFileModel tvFileModelDischarge = _TVFileService.GetTVFileModelWithServerFilePathAndServerFileNameDB(ServerPath, ServerFileNameDischarge);

            if (string.IsNullOrWhiteSpace(tvFileModelDischarge.Error))
            {
                TVFileModel tvFileModelRet = _TVFileService.PostDeleteTVFileDB(tvFileModelDischarge.TVFileID);
                if (!string.IsNullOrWhiteSpace(tvFileModelRet.Error))
                {
                    return(ReturnError(tvFileModelRet.Error));
                }
            }

            List <MikeSourceModel> mikeSourceModelList = GetMikeSourceModelListWithMikeScenarioTVItemIDDB(MikeScenarioTVItemID);

            using (TransactionScope ts = new TransactionScope())
            {
                MapInfoModel mapInfoModelRet = _MapInfoService.PostDeleteMapInfoWithTVItemIDDB(mikeSourceToDelete.MikeSourceTVItemID);
                if (!string.IsNullOrWhiteSpace(mapInfoModelRet.Error))
                {
                    return(ReturnError(mapInfoModelRet.Error));
                }

                db.MikeSources.Remove(mikeSourceToDelete);
                string retStr = DoDeleteChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                LogModel logModel = _LogService.PostAddLogForObj("MikeSources", mikeSourceToDelete.MikeSourceID, LogCommandEnum.Delete, mikeSourceToDelete);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                TVItemModel tvItemModelRet = _TVItemService.PostDeleteTVItemWithTVItemIDDB(TVItemIDToDelete);
                if (!string.IsNullOrWhiteSpace(tvItemModelRet.Error))
                {
                    return(ReturnError(tvItemModelRet.Error));
                }

                bool ok = false;
                while (!ok)
                {
                    SourceNumber += 1;

                    MikeSourceModel mikeSourceModel = mikeSourceModelList.Where(c => c.SourceNumberString == "SOURCE_" + SourceNumber.ToString()).FirstOrDefault();
                    if (mikeSourceModel != null)
                    {
                        mikeSourceModel.SourceNumberString = "SOURCE_" + (SourceNumber - 1).ToString();

                        MikeSourceModel mikeSourceModelRet = PostUpdateMikeSourceDB(mikeSourceModel);
                        if (!string.IsNullOrWhiteSpace(mikeSourceModelRet.Error))
                        {
                            return(ReturnError(mikeSourceModelRet.Error));
                        }
                    }
                    else
                    {
                        ok = true;
                    }
                }

                ts.Complete();
            }
            return(ReturnError(""));
        }
Beispiel #17
0
        public void MikeSource_Properties_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    MikeSourceService mikeSourceService = new MikeSourceService(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 = mikeSourceService.GetMikeSourceList().Count();

                    MikeSource mikeSource = GetFilledRandomMikeSource("");

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


                    // -----------------------------------
                    // [Key]
                    // Is NOT Nullable
                    // mikeSource.MikeSourceID   (Int32)
                    // -----------------------------------

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.MikeSourceID = 0;
                    mikeSourceService.Update(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "MikeSourceID"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.MikeSourceID = 10000000;
                    mikeSourceService.Update(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MikeSource", "MikeSourceID", mikeSource.MikeSourceID.ToString()), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = MikeSource)]
                    // mikeSource.MikeSourceTVItemID   (Int32)
                    // -----------------------------------

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.MikeSourceTVItemID = 0;
                    mikeSourceService.Add(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "MikeSourceTVItemID", mikeSource.MikeSourceTVItemID.ToString()), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.MikeSourceTVItemID = 1;
                    mikeSourceService.Add(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "MikeSourceTVItemID", "MikeSource"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // mikeSource.IsContinuous   (Boolean)
                    // -----------------------------------


                    // -----------------------------------
                    // Is NOT Nullable
                    // mikeSource.Include   (Boolean)
                    // -----------------------------------


                    // -----------------------------------
                    // Is NOT Nullable
                    // mikeSource.IsRiver   (Boolean)
                    // -----------------------------------


                    // -----------------------------------
                    // Is NOT Nullable
                    // mikeSource.UseHydrometric   (Boolean)
                    // -----------------------------------


                    // -----------------------------------
                    // Is Nullable
                    // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = HydrometricSite)]
                    // mikeSource.HydrometricTVItemID   (Int32)
                    // -----------------------------------

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.HydrometricTVItemID = 0;
                    mikeSourceService.Add(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "HydrometricTVItemID", mikeSource.HydrometricTVItemID.ToString()), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.HydrometricTVItemID = 1;
                    mikeSourceService.Add(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "HydrometricTVItemID", "HydrometricSite"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is Nullable
                    // [Range(0, 1000000)]
                    // mikeSource.DrainageArea_km2   (Double)
                    // -----------------------------------

                    //CSSPError: Type not implemented [DrainageArea_km2]

                    //CSSPError: Type not implemented [DrainageArea_km2]

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.DrainageArea_km2 = -1.0D;
                    Assert.AreEqual(false, mikeSourceService.Add(mikeSource));
                    Assert.AreEqual(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "DrainageArea_km2", "0", "1000000"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, mikeSourceService.GetMikeSourceList().Count());
                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.DrainageArea_km2 = 1000001.0D;
                    Assert.AreEqual(false, mikeSourceService.Add(mikeSource));
                    Assert.AreEqual(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "DrainageArea_km2", "0", "1000000"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, mikeSourceService.GetMikeSourceList().Count());

                    // -----------------------------------
                    // Is Nullable
                    // [Range(0, 1000000)]
                    // mikeSource.Factor   (Double)
                    // -----------------------------------

                    //CSSPError: Type not implemented [Factor]

                    //CSSPError: Type not implemented [Factor]

                    mikeSource        = null;
                    mikeSource        = GetFilledRandomMikeSource("");
                    mikeSource.Factor = -1.0D;
                    Assert.AreEqual(false, mikeSourceService.Add(mikeSource));
                    Assert.AreEqual(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Factor", "0", "1000000"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, mikeSourceService.GetMikeSourceList().Count());
                    mikeSource        = null;
                    mikeSource        = GetFilledRandomMikeSource("");
                    mikeSource.Factor = 1000001.0D;
                    Assert.AreEqual(false, mikeSourceService.Add(mikeSource));
                    Assert.AreEqual(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Factor", "0", "1000000"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, mikeSourceService.GetMikeSourceList().Count());

                    // -----------------------------------
                    // Is NOT Nullable
                    // [StringLength(50))]
                    // mikeSource.SourceNumberString   (String)
                    // -----------------------------------

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("SourceNumberString");
                    Assert.AreEqual(false, mikeSourceService.Add(mikeSource));
                    Assert.AreEqual(1, mikeSource.ValidationResults.Count());
                    Assert.IsTrue(mikeSource.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "SourceNumberString")).Any());
                    Assert.AreEqual(null, mikeSource.SourceNumberString);
                    Assert.AreEqual(count, mikeSourceService.GetMikeSourceList().Count());

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.SourceNumberString = GetRandomString("", 51);
                    Assert.AreEqual(false, mikeSourceService.Add(mikeSource));
                    Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "SourceNumberString", "50"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, mikeSourceService.GetMikeSourceList().Count());

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

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

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

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.LastUpdateContactTVItemID = 0;
                    mikeSourceService.Add(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mikeSource.LastUpdateContactTVItemID.ToString()), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);

                    mikeSource = null;
                    mikeSource = GetFilledRandomMikeSource("");
                    mikeSource.LastUpdateContactTVItemID = 1;
                    mikeSourceService.Add(mikeSource);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), mikeSource.ValidationResults.FirstOrDefault().ErrorMessage);


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

                    // No testing requied

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

                    // No testing requied
                }
            }
        }
Beispiel #18
0
        private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType)
        {
            string     retStr     = "";
            Enums      enums      = new Enums(LanguageRequest);
            MikeSource mikeSource = validationContext.ObjectInstance as MikeSource;

            mikeSource.HasErrors = false;

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

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

            TVItem TVItemMikeSourceTVItemID = (from c in db.TVItems where c.TVItemID == mikeSource.MikeSourceTVItemID select c).FirstOrDefault();

            if (TVItemMikeSourceTVItemID == null)
            {
                mikeSource.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "MikeSourceTVItemID", mikeSource.MikeSourceTVItemID.ToString()), new[] { "MikeSourceTVItemID" }));
            }
            else
            {
                List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>()
                {
                    TVTypeEnum.MikeSource,
                };
                if (!AllowableTVTypes.Contains(TVItemMikeSourceTVItemID.TVType))
                {
                    mikeSource.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "MikeSourceTVItemID", "MikeSource"), new[] { "MikeSourceTVItemID" }));
                }
            }

            if (mikeSource.HydrometricTVItemID != null)
            {
                TVItem TVItemHydrometricTVItemID = (from c in db.TVItems where c.TVItemID == mikeSource.HydrometricTVItemID select c).FirstOrDefault();

                if (TVItemHydrometricTVItemID == null)
                {
                    mikeSource.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "HydrometricTVItemID", (mikeSource.HydrometricTVItemID == null ? "" : mikeSource.HydrometricTVItemID.ToString())), new[] { "HydrometricTVItemID" }));
                }
                else
                {
                    List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>()
                    {
                        TVTypeEnum.HydrometricSite,
                    };
                    if (!AllowableTVTypes.Contains(TVItemHydrometricTVItemID.TVType))
                    {
                        mikeSource.HasErrors = true;
                        yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "HydrometricTVItemID", "HydrometricSite"), new[] { "HydrometricTVItemID" }));
                    }
                }
            }

            if (mikeSource.DrainageArea_km2 != null)
            {
                if (mikeSource.DrainageArea_km2 < 0 || mikeSource.DrainageArea_km2 > 1000000)
                {
                    mikeSource.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "DrainageArea_km2", "0", "1000000"), new[] { "DrainageArea_km2" }));
                }
            }

            if (mikeSource.Factor != null)
            {
                if (mikeSource.Factor < 0 || mikeSource.Factor > 1000000)
                {
                    mikeSource.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Factor", "0", "1000000"), new[] { "Factor" }));
                }
            }

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

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

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

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

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

                        MikeSourceService mikeSourceService = new MikeSourceService(query, db, ContactID);
                        mikeSourceLast = (from c in db.MikeSources select c).FirstOrDefault();
                    }

                    // ok with MikeSource info
                    IHttpActionResult jsonRet = mikeSourceController.GetMikeSourceWithID(mikeSourceLast.MikeSourceID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <MikeSource> Ret = jsonRet as OkNegotiatedContentResult <MikeSource>;
                    MikeSource mikeSourceRet = Ret.Content;
                    Assert.AreEqual(mikeSourceLast.MikeSourceID, mikeSourceRet.MikeSourceID);

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

                    // Post to return CSSPError because MikeSourceID exist
                    IHttpActionResult jsonRet2 = mikeSourceController.Post(mikeSourceRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <MikeSource> mikeSourceRet2 = jsonRet2 as OkNegotiatedContentResult <MikeSource>;
                    Assert.IsNull(mikeSourceRet2);

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

                    // Post to return newly added MikeSource
                    mikeSourceRet.MikeSourceID              = 0;
                    mikeSourceController.Request            = new System.Net.Http.HttpRequestMessage();
                    mikeSourceController.Request.RequestUri = new System.Uri("http://localhost:5000/api/mikeSource");
                    IHttpActionResult jsonRet3 = mikeSourceController.Post(mikeSourceRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    CreatedNegotiatedContentResult <MikeSource> mikeSourceRet3 = jsonRet3 as CreatedNegotiatedContentResult <MikeSource>;
                    Assert.IsNotNull(mikeSourceRet3);

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

                    IHttpActionResult jsonRet4 = mikeSourceController.Delete(mikeSourceRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet4);

                    OkNegotiatedContentResult <MikeSource> mikeSourceRet4 = jsonRet4 as OkNegotiatedContentResult <MikeSource>;
                    Assert.IsNotNull(mikeSourceRet4);

                    BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest4);
                }
            }
        }
Beispiel #20
0
        public MikeSourceModel PostUpdateMikeSourceDB(MikeSourceModel mikeSourceModel)
        {
            string retStr = MikeSourceModelOK(mikeSourceModel);

            if (!string.IsNullOrEmpty(retStr))
            {
                return(ReturnError(retStr));
            }

            ContactOK contactOK = IsContactOK();

            if (!string.IsNullOrEmpty(contactOK.Error))
            {
                return(ReturnError(contactOK.Error));
            }

            MikeSource mikeSourceToUpdate = GetMikeSourceWithMikeSourceIDDB(mikeSourceModel.MikeSourceID);

            if (mikeSourceToUpdate == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_ToUpdate, ServiceRes.MikeSource)));
            }

            retStr = FillMikeSource(mikeSourceToUpdate, mikeSourceModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

            using (TransactionScope ts = new TransactionScope())
            {
                retStr = DoUpdateChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                LogModel logModel = _LogService.PostAddLogForObj("MikeSources", mikeSourceToUpdate.MikeSourceID, LogCommandEnum.Change, mikeSourceToUpdate);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                foreach (LanguageEnum Lang in LanguageListAllowable)
                {
                    if (Lang == LanguageRequest)
                    {
                        TVItemLanguageModel tvItemLanguageModelToUpdate = _TVItemService._TVItemLanguageService.GetTVItemLanguageModelWithTVItemIDAndLanguageDB(mikeSourceToUpdate.MikeSourceTVItemID, Lang);
                        if (!string.IsNullOrWhiteSpace(tvItemLanguageModelToUpdate.Error))
                        {
                            return(ReturnError(tvItemLanguageModelToUpdate.Error));
                        }

                        string TVText = CreateTVText(mikeSourceModel);
                        if (string.IsNullOrWhiteSpace(TVText))
                        {
                            return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.TVText)));
                        }

                        TVItemModel tvItemModelMikeSourceExit = _TVItemService.GetChildTVItemModelWithParentIDAndTVTextAndTVTypeDB(mikeSourceModel.MikeSourceTVItemID, TVText, TVTypeEnum.MikeSource);
                        if (string.IsNullOrWhiteSpace(tvItemModelMikeSourceExit.Error))
                        {
                            bool IsSameTVItemModel = GetIsItSameObject(mikeSourceModel, tvItemModelMikeSourceExit);
                            if (!IsSameTVItemModel)
                            {
                                return(ReturnError(string.Format(ServiceRes._AlreadyExists, ServiceRes.MikeSource)));
                            }
                        }

                        tvItemLanguageModelToUpdate.TVText = TVText;

                        TVItemLanguageModel tvItemLanguageModel = _TVItemService._TVItemLanguageService.PostUpdateTVItemLanguageDB(tvItemLanguageModelToUpdate);
                        if (!string.IsNullOrWhiteSpace(tvItemLanguageModel.Error))
                        {
                            return(ReturnError(tvItemLanguageModel.Error));
                        }
                    }
                }

                ts.Complete();
            }
            return(GetMikeSourceModelWithMikeSourceIDDB(mikeSourceToUpdate.MikeSourceID));
        }