コード例 #1
0
        public void MWQMRun_Controller_Put_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(mwqmRunController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType);

                    MWQMRun mwqmRunLast = new MWQMRun();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        Query query = new Query();
                        query.Language = LanguageRequest;

                        MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID);
                        mwqmRunLast = (from c in db.MWQMRuns select c).FirstOrDefault();
                    }

                    // ok with MWQMRun info
                    IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunWithID(mwqmRunLast.MWQMRunID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <MWQMRun> Ret = jsonRet as OkNegotiatedContentResult <MWQMRun>;
                    MWQMRun mwqmRunRet = Ret.Content;
                    Assert.AreEqual(mwqmRunLast.MWQMRunID, mwqmRunRet.MWQMRunID);

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

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

                    OkNegotiatedContentResult <MWQMRun> mwqmRunRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMRun>;
                    Assert.IsNotNull(mwqmRunRet2);

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

                    // Put to return CSSPError because MWQMRunID of 0 does not exist
                    mwqmRunRet.MWQMRunID = 0;
                    IHttpActionResult jsonRet3 = mwqmRunController.Put(mwqmRunRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    OkNegotiatedContentResult <MWQMRun> mwqmRunRet3 = jsonRet3 as OkNegotiatedContentResult <MWQMRun>;
                    Assert.IsNull(mwqmRunRet3);

                    BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult;
                    Assert.IsNotNull(badRequest3);
                }
            }
        }
コード例 #2
0
        public IHttpActionResult GetMWQMRunWithID([FromUri] int MWQMRunID, [FromUri] string lang = "en", [FromUri] string extra = "")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                MWQMRunService mwqmRunService = new MWQMRunService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                mwqmRunService.Query = mwqmRunService.FillQuery(typeof(MWQMRun), lang, 0, 1, "", "", extra);

                if (mwqmRunService.Query.Extra == "A")
                {
                    MWQMRunExtraA mwqmRunExtraA = new MWQMRunExtraA();
                    mwqmRunExtraA = mwqmRunService.GetMWQMRunExtraAWithMWQMRunID(MWQMRunID);

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

                    return(Ok(mwqmRunExtraA));
                }
                else if (mwqmRunService.Query.Extra == "B")
                {
                    MWQMRunExtraB mwqmRunExtraB = new MWQMRunExtraB();
                    mwqmRunExtraB = mwqmRunService.GetMWQMRunExtraBWithMWQMRunID(MWQMRunID);

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

                    return(Ok(mwqmRunExtraB));
                }
                else
                {
                    MWQMRun mwqmRun = new MWQMRun();
                    mwqmRun = mwqmRunService.GetMWQMRunWithMWQMRunID(MWQMRunID);

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

                    return(Ok(mwqmRun));
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Tries to execute the CSSPDB transaction (add/delete/update) on an [MWQMRun](CSSPModels.MWQMRun.html) item
        /// </summary>
        /// <param name="mwqmRun">Is the MWQMRun item the client want to add to CSSPDB. What's important here is the MWQMRunID</param>
        /// <returns>true if MWQMRun item was updated to CSSPDB, false if an error happened during the DB requested transtaction</returns>
        private bool TryToSave(MWQMRun mwqmRun)
        {
            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException ex)
            {
                mwqmRun.ValidationResults = new List <ValidationResult>()
                {
                    new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""))
                }.AsEnumerable();
                return(false);
            }

            return(true);
        }
コード例 #4
0
        /// <summary>
        /// Updates an [MWQMRun](CSSPModels.MWQMRun.html) item in CSSPDB
        /// </summary>
        /// <param name="mwqmRun">Is the MWQMRun item the client want to add to CSSPDB. What's important here is the MWQMRunID</param>
        /// <returns>true if MWQMRun item was updated to CSSPDB, false if an error happened during the DB requested transtaction</returns>
        public bool Update(MWQMRun mwqmRun)
        {
            mwqmRun.ValidationResults = Validate(new ValidationContext(mwqmRun), ActionDBTypeEnum.Update);
            if (mwqmRun.ValidationResults.Count() > 0)
            {
                return(false);
            }

            db.MWQMRuns.Update(mwqmRun);

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

            return(true);
        }
コード例 #5
0
        public void MWQMRun_Controller_GetMWQMRunWithID_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(mwqmRunController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType);

                    MWQMRun mwqmRunFirst = new MWQMRun();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        MWQMRunService mwqmRunService = new MWQMRunService(new Query(), db, ContactID);
                        mwqmRunFirst = (from c in db.MWQMRuns select c).FirstOrDefault();
                    }

                    // ok with MWQMRun info
                    IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunWithID(mwqmRunFirst.MWQMRunID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <MWQMRun> Ret = jsonRet as OkNegotiatedContentResult <MWQMRun>;
                    MWQMRun mwqmRunRet = Ret.Content;
                    Assert.AreEqual(mwqmRunFirst.MWQMRunID, mwqmRunRet.MWQMRunID);

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

                    // Not Found
                    IHttpActionResult jsonRet2 = mwqmRunController.GetMWQMRunWithID(0);
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <MWQMRun> mwqmRunRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMRun>;
                    Assert.IsNull(mwqmRunRet2);

                    NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult;
                    Assert.IsNotNull(notFoundRequest);
                }
            }
        }
コード例 #6
0
        public IHttpActionResult Delete([FromBody] MWQMRun mwqmRun, [FromUri] string lang = "en")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                MWQMRunService mwqmRunService = new MWQMRunService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                if (!mwqmRunService.Delete(mwqmRun))
                {
                    return(BadRequest(String.Join("|||", mwqmRun.ValidationResults)));
                }
                else
                {
                    mwqmRun.ValidationResults = null;
                    return(Ok(mwqmRun));
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// Validate function for all MWQMRunService commands
        /// </summary>
        /// <param name="validationContext">System.ComponentModel.DataAnnotations.ValidationContext (Describes the context in which a validation check is performed.)</param>
        /// <param name="actionDBType">[ActionDBTypeEnum] (CSSPEnums.ActionDBTypeEnum.html) action type to validate</param>
        /// <returns>IEnumerable of ValidationResult (Where ValidationResult is a container for the results of a validation request.)</returns>
        private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType)
        {
            string  retStr  = "";
            Enums   enums   = new Enums(LanguageRequest);
            MWQMRun mwqmRun = validationContext.ObjectInstance as MWQMRun;

            mwqmRun.HasErrors = false;

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

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

            TVItem TVItemSubsectorTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.SubsectorTVItemID select c).FirstOrDefault();

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

            TVItem TVItemMWQMRunTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.MWQMRunTVItemID select c).FirstOrDefault();

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

            retStr = enums.EnumTypeOK(typeof(SampleTypeEnum), (int?)mwqmRun.RunSampleType);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "RunSampleType"), new[] { "RunSampleType" }));
            }

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

            if (mwqmRun.RunNumber < 1 || mwqmRun.RunNumber > 1000)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RunNumber", "1", "1000"), new[] { "RunNumber" }));
            }

            if (mwqmRun.StartDateTime_Local != null && ((DateTime)mwqmRun.StartDateTime_Local).Year < 1980)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "StartDateTime_Local", "1980"), new[] { "StartDateTime_Local" }));
            }

            if (mwqmRun.EndDateTime_Local != null && ((DateTime)mwqmRun.EndDateTime_Local).Year < 1980)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "EndDateTime_Local", "1980"), new[] { "EndDateTime_Local" }));
            }

            if (mwqmRun.StartDateTime_Local > mwqmRun.EndDateTime_Local)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._DateIsBiggerThan_, "EndDateTime_Local", "MWQMRunStartDateTime_Local"), new[] { "EndDateTime_Local" }));
            }

            if (mwqmRun.LabReceivedDateTime_Local != null && ((DateTime)mwqmRun.LabReceivedDateTime_Local).Year < 1980)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabReceivedDateTime_Local", "1980"), new[] { "LabReceivedDateTime_Local" }));
            }

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

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

            if (mwqmRun.SeaStateAtStart_BeaufortScale != null)
            {
                retStr = enums.EnumTypeOK(typeof(BeaufortScaleEnum), (int?)mwqmRun.SeaStateAtStart_BeaufortScale);
                if (mwqmRun.SeaStateAtStart_BeaufortScale == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SeaStateAtStart_BeaufortScale"), new[] { "SeaStateAtStart_BeaufortScale" }));
                }
            }

            if (mwqmRun.SeaStateAtEnd_BeaufortScale != null)
            {
                retStr = enums.EnumTypeOK(typeof(BeaufortScaleEnum), (int?)mwqmRun.SeaStateAtEnd_BeaufortScale);
                if (mwqmRun.SeaStateAtEnd_BeaufortScale == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SeaStateAtEnd_BeaufortScale"), new[] { "SeaStateAtEnd_BeaufortScale" }));
                }
            }

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

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

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

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

            if (mwqmRun.AnalyzeMethod != null)
            {
                retStr = enums.EnumTypeOK(typeof(AnalyzeMethodEnum), (int?)mwqmRun.AnalyzeMethod);
                if (mwqmRun.AnalyzeMethod == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "AnalyzeMethod"), new[] { "AnalyzeMethod" }));
                }
            }

            if (mwqmRun.SampleMatrix != null)
            {
                retStr = enums.EnumTypeOK(typeof(SampleMatrixEnum), (int?)mwqmRun.SampleMatrix);
                if (mwqmRun.SampleMatrix == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SampleMatrix"), new[] { "SampleMatrix" }));
                }
            }

            if (mwqmRun.Laboratory != null)
            {
                retStr = enums.EnumTypeOK(typeof(LaboratoryEnum), (int?)mwqmRun.Laboratory);
                if (mwqmRun.Laboratory == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Laboratory"), new[] { "Laboratory" }));
                }
            }

            if (mwqmRun.SampleStatus != null)
            {
                retStr = enums.EnumTypeOK(typeof(SampleStatusEnum), (int?)mwqmRun.SampleStatus);
                if (mwqmRun.SampleStatus == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "SampleStatus"), new[] { "SampleStatus" }));
                }
            }

            if (mwqmRun.LabSampleApprovalContactTVItemID != null)
            {
                TVItem TVItemLabSampleApprovalContactTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.LabSampleApprovalContactTVItemID select c).FirstOrDefault();

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

            if (mwqmRun.LabAnalyzeBath1IncubationStartDateTime_Local != null && ((DateTime)mwqmRun.LabAnalyzeBath1IncubationStartDateTime_Local).Year < 1980)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabAnalyzeBath1IncubationStartDateTime_Local", "1980"), new[] { "LabAnalyzeBath1IncubationStartDateTime_Local" }));
            }

            if (mwqmRun.LabAnalyzeBath2IncubationStartDateTime_Local != null && ((DateTime)mwqmRun.LabAnalyzeBath2IncubationStartDateTime_Local).Year < 1980)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabAnalyzeBath2IncubationStartDateTime_Local", "1980"), new[] { "LabAnalyzeBath2IncubationStartDateTime_Local" }));
            }

            if (mwqmRun.LabAnalyzeBath3IncubationStartDateTime_Local != null && ((DateTime)mwqmRun.LabAnalyzeBath3IncubationStartDateTime_Local).Year < 1980)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabAnalyzeBath3IncubationStartDateTime_Local", "1980"), new[] { "LabAnalyzeBath3IncubationStartDateTime_Local" }));
            }

            if (mwqmRun.LabRunSampleApprovalDateTime_Local != null && ((DateTime)mwqmRun.LabRunSampleApprovalDateTime_Local).Year < 1980)
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LabRunSampleApprovalDateTime_Local", "1980"), new[] { "LabRunSampleApprovalDateTime_Local" }));
            }

            if (mwqmRun.Tide_Start != null)
            {
                retStr = enums.EnumTypeOK(typeof(TideTextEnum), (int?)mwqmRun.Tide_Start);
                if (mwqmRun.Tide_Start == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Tide_Start"), new[] { "Tide_Start" }));
                }
            }

            if (mwqmRun.Tide_End != null)
            {
                retStr = enums.EnumTypeOK(typeof(TideTextEnum), (int?)mwqmRun.Tide_End);
                if (mwqmRun.Tide_End == null || !string.IsNullOrWhiteSpace(retStr))
                {
                    mwqmRun.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Tide_End"), new[] { "Tide_End" }));
                }
            }

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

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

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

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

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

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

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

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

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

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

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

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

            TVItem TVItemLastUpdateContactTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRun.LastUpdateContactTVItemID select c).FirstOrDefault();

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

            retStr = "";      // added to stop compiling CSSPError
            if (retStr != "") // will never be true
            {
                mwqmRun.HasErrors = true;
                yield return(new ValidationResult("AAA", new[] { "AAA" }));
            }
        }
コード例 #8
0
        /// <summary>
        /// Validate function for all MWQMRunLanguageService commands
        /// </summary>
        /// <param name="validationContext">System.ComponentModel.DataAnnotations.ValidationContext (Describes the context in which a validation check is performed.)</param>
        /// <param name="actionDBType">[ActionDBTypeEnum] (CSSPEnums.ActionDBTypeEnum.html) action type to validate</param>
        /// <returns>IEnumerable of ValidationResult (Where ValidationResult is a container for the results of a validation request.)</returns>
        private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType)
        {
            string          retStr          = "";
            Enums           enums           = new Enums(LanguageRequest);
            MWQMRunLanguage mwqmRunLanguage = validationContext.ObjectInstance as MWQMRunLanguage;

            mwqmRunLanguage.HasErrors = false;

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

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

            MWQMRun MWQMRunMWQMRunID = (from c in db.MWQMRuns where c.MWQMRunID == mwqmRunLanguage.MWQMRunID select c).FirstOrDefault();

            if (MWQMRunMWQMRunID == null)
            {
                mwqmRunLanguage.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MWQMRun", "MWQMRunID", mwqmRunLanguage.MWQMRunID.ToString()), new[] { "MWQMRunID" }));
            }

            retStr = enums.EnumTypeOK(typeof(LanguageEnum), (int?)mwqmRunLanguage.Language);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                mwqmRunLanguage.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Language"), new[] { "Language" }));
            }

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

            //RunComment has no StringLength Attribute

            retStr = enums.EnumTypeOK(typeof(TranslationStatusEnum), (int?)mwqmRunLanguage.TranslationStatusRunComment);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                mwqmRunLanguage.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "TranslationStatusRunComment"), new[] { "TranslationStatusRunComment" }));
            }

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

            //RunWeatherComment has no StringLength Attribute

            retStr = enums.EnumTypeOK(typeof(TranslationStatusEnum), (int?)mwqmRunLanguage.TranslationStatusRunWeatherComment);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                mwqmRunLanguage.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "TranslationStatusRunWeatherComment"), new[] { "TranslationStatusRunWeatherComment" }));
            }

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

            TVItem TVItemLastUpdateContactTVItemID = (from c in db.TVItems where c.TVItemID == mwqmRunLanguage.LastUpdateContactTVItemID select c).FirstOrDefault();

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

            retStr = "";      // added to stop compiling CSSPError
            if (retStr != "") // will never be true
            {
                mwqmRunLanguage.HasErrors = true;
                yield return(new ValidationResult("AAA", new[] { "AAA" }));
            }
        }
        private bool GenerateHTMLProvincialSubsectorsReviewXlsx()
        {
            string NotUsed    = "";
            bool   ErrorInDoc = false;

            int  ProvinceTVItemID     = 7;
            int  AfterYear            = 1989;
            int  NumberOfRuns         = 30;
            bool OnlyActiveSubsectors = true;
            bool OnlyActiveMWQMSites  = true;
            bool FullYear             = true;

            List <string> ParamValueList = Parameters.Split("|||".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();

            string tempVal = GetParameters("TVItemID", ParamValueList);

            if (string.IsNullOrWhiteSpace(tempVal))
            {
                NotUsed = string.Format(TaskRunnerServiceRes._IsRequired, "TVItemID");
                List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_IsRequired", "TVItemID");
            }
            ProvinceTVItemID = int.Parse(tempVal);
            tempVal          = GetParameters("AfterYear", ParamValueList);
            if (string.IsNullOrWhiteSpace(tempVal))
            {
                NotUsed = string.Format(TaskRunnerServiceRes._IsRequired, "AfterYear");
                List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_IsRequired", "AfterYear");
            }
            tempVal = GetParameters("NumberOfRuns", ParamValueList);
            if (string.IsNullOrWhiteSpace(tempVal))
            {
                NotUsed = string.Format(TaskRunnerServiceRes._IsRequired, "NumberOfRuns");
                List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_IsRequired", "NumberOfRuns");
            }
            NumberOfRuns         = int.Parse(tempVal);
            OnlyActiveSubsectors = GetParameters("OnlyActiveSubsectors", ParamValueList) == "" ? false : true;
            OnlyActiveMWQMSites  = GetParameters("OnlyActiveMWQMSites", ParamValueList) == "" ? false : true;
            FullYear             = GetParameters("FullYear", ParamValueList) == "" ? false : true;

            string provInit = "";
            string prov     = "";

            List <string> ProvInitList = new List <string>()
            {
                "BC", "ME", "NB", "NL", "NS", "PE", "QC",
            };
            List <string> ProvList = new List <string>()
            {
                "British Columbia", "Maine", "New Brunswick", "Newfoundland and Labrador", "Nova Scotia", "Prince Edward Island", "Québec",
            };

            using (CSSPDBEntities db2 = new CSSPDBEntities())
            {
                var provItem = (from c in db2.TVItems
                                from cl in db2.TVItemLanguages
                                where c.TVItemID == cl.TVItemID &&
                                c.TVItemID == ProvinceTVItemID &&
                                cl.Language == (int)LanguageEnum.en
                                select new { c, cl }).FirstOrDefault();

                for (int i = 0; i < ProvList.Count; i++)
                {
                    if (ProvList[i] == provItem.cl.TVText)
                    {
                        provInit = ProvInitList[i];
                        prov     = ProvList[i];
                        break;
                    }
                }

                if (string.IsNullOrEmpty(provInit))
                {
                    return(false);
                }

                NotUsed = string.Format(TaskRunnerServiceRes.Creating_, $"{ provInit } Subsector Review.html");
                List <TextLanguage> TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("Creating_", $"{ provInit } Subsector Review.html");

                _TaskRunnerBaseService.SendStatusTextToDB(TextLanguageList);

                _TaskRunnerBaseService.SendPercentToDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID, 10);

                sb.AppendLine("<!DOCTYPE html>");
                sb.AppendLine("");
                sb.AppendLine(@"<html lang=""en"" xmlns=""http://www.w3.org/1999/xhtml"">");
                sb.AppendLine("<head>");
                sb.AppendLine(@"    <meta charset=""utf-8"" />");
                sb.AppendLine("    <title></title>");
                sb.AppendLine(@"    <style type=""text/css"">");
                sb.AppendLine("        th,td {");
                sb.AppendLine("            border: 1px solid black;");
                sb.AppendLine("        }");
                sb.AppendLine("    </style>");
                sb.AppendLine("</head>");
                sb.AppendLine("<body>");
                sb.AppendLine("<table>");
                sb.AppendLine("<tr>");
                sb.AppendLine("<th colspan=19>");
                sb.AppendLine("Data extrated from Webtools on DATE  (All-All-All, N= 30, Full year)");
                sb.AppendLine("</th>");
                sb.AppendLine("</tr>");
                sb.AppendLine("<tr>");
                sb.AppendLine("<th>");
                sb.AppendLine("Locator");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Name");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Max <br/># Samples");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Max-Min<br/>Years");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Sites Classified as <br/>Approved <br/>with Red A to F rating");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Sites Classified as <br/>Approved <br/>with Green F rating");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Sites Classified as <br/>Restricted or Conditional Restricted <br/>with red F rating");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Sites Classified as <br/>Restricted or Conditional Restricted <br/>with purple A-F rating");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Sites Classified as <br/>Restricted or Conditional Restricted <br/>with green A to D rating");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Sites Classified as <br/>Unclassified");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("# Rain runs<br/> &ge; 12mm <br/>on Run day");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("# Rain runs<br/> &ge; 12mm <br/>0-24 hrs");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("# Rain runs<br/> &ge; 12mm <br/>24-48 hrs");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("# Rain runs<br/> &ge; 25mm <br/>0-24 hrs");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Missing Rain data <br/>in Webtools <br/>(Yes/No)");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Last Relay<br/>request year");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Last depuration<br/>request year");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("More Rain Runs Needed");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Action suggested");
                sb.AppendLine("</th>");
                sb.AppendLine("<th>");
                sb.AppendLine("Initials/Date reviewed");
                sb.AppendLine("</th>");
                sb.AppendLine("</tr>");

                sb2.AppendLine("<!DOCTYPE html>");
                sb2.AppendLine("");
                sb2.AppendLine(@"<html lang=""en"" xmlns=""http://www.w3.org/1999/xhtml"">");
                sb2.AppendLine("<head>");
                sb2.AppendLine(@"    <meta charset=""utf-8"" />");
                sb2.AppendLine("    <title></title>");
                sb2.AppendLine(@"    <style type=""text/css"">");
                sb2.AppendLine("        th,td {");
                sb2.AppendLine("            border: 1px solid black;");
                sb2.AppendLine("        }");
                sb2.AppendLine("    </style>");
                sb2.AppendLine("</head>");
                sb2.AppendLine("<body>");
                sb2.AppendLine("<table>");
                sb2.AppendLine("<tr>");
                sb2.AppendLine("<th colspan=8>");
                sb2.AppendLine("Data extrated from Webtools on DATE  (All-All-All, N= 30, Full year) by site");
                sb2.AppendLine("</th>");
                sb2.AppendLine("</tr>");
                sb2.AppendLine("<tr>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("Locator");
                sb2.AppendLine("</th>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("Name");
                sb2.AppendLine("</th>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("# Samples");
                sb2.AppendLine("</th>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("Years");
                sb2.AppendLine("</th>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("Site");
                sb2.AppendLine("</th>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("Currently <br/>Classified");
                sb2.AppendLine("</th>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("Stat <br/>Color");
                sb2.AppendLine("</th>");
                sb2.AppendLine("<th>");
                sb2.AppendLine("Stat <br/>Letter");
                sb2.AppendLine("</th>");
                sb2.AppendLine("</tr>");

                TVItem tvItemProv = (from c in db2.TVItems
                                     from cl in db2.TVItemLanguages
                                     where c.TVItemID == cl.TVItemID &&
                                     cl.Language == (int)LanguageEnum.en &&
                                     c.TVType == (int)TVTypeEnum.Province &&
                                     cl.TVText == prov
                                     select c).FirstOrDefault();

                var subsectorList = (from c in db2.TVItems
                                     from cl in db2.TVItemLanguages
                                     where c.TVItemID == cl.TVItemID &&
                                     cl.Language == (int)LanguageEnum.en &&
                                     c.TVType == (int)TVTypeEnum.Subsector &&
                                     c.TVPath.Contains(tvItemProv.TVPath + "p") &&
                                     (c.IsActive == true ||
                                      c.IsActive == OnlyActiveSubsectors)
                                     orderby cl.TVText ascending
                                     select new { c, cl }).ToList();

                int SSCount = 0;
                foreach (var subsector in subsectorList)
                {
                    SSCount += 1;

                    string tvText  = subsector.cl.TVText;
                    string locator = tvText;
                    string name    = tvText;

                    if (tvText.Contains(" "))
                    {
                        locator = tvText.Substring(0, tvText.IndexOf(" "));
                        name    = tvText.Substring(tvText.IndexOf(" ") + 1);
                    }

                    name = name.Trim();

                    if (!string.IsNullOrWhiteSpace(name) && name.StartsWith("("))
                    {
                        name = name.Substring(1);
                    }
                    if (!string.IsNullOrWhiteSpace(name) && name.StartsWith("("))
                    {
                        name = name.Substring(1);
                    }

                    if (!string.IsNullOrWhiteSpace(name) && name.EndsWith(")"))
                    {
                        name = name.Substring(0, name.Length - 1);
                    }
                    if (!string.IsNullOrWhiteSpace(name) && name.EndsWith(")"))
                    {
                        name = name.Substring(0, name.Length - 1);
                    }

                    if (SSCount % 10 == 0)
                    {
                        NotUsed          = string.Format(TaskRunnerServiceRes.Doing_, tvText);
                        TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("Doing_", tvText);
                        _TaskRunnerBaseService.SendStatusTextToDB(TextLanguageList);
                        _TaskRunnerBaseService.SendPercentToDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID, (int)(10 + (80.0D * ((double)SSCount / (double)subsectorList.Count))));
                    }

                    List <MWQMSite> mwqmSiteList = (from c in db2.TVItems
                                                    from s in db2.MWQMSites
                                                    where c.TVItemID == s.MWQMSiteTVItemID &&
                                                    c.TVType == (int)TVTypeEnum.MWQMSite &&
                                                    c.TVPath.Contains(subsector.c.TVPath + "p") &&
                                                    (c.IsActive == true ||
                                                     c.IsActive == OnlyActiveMWQMSites)
                                                    orderby s.MWQMSiteNumber ascending
                                                    select s).ToList();

                    List <int> mwqmSiteTVItemIDList = (from c in mwqmSiteList
                                                       select c.MWQMSiteTVItemID).Distinct().ToList();

                    string            routine        = $"{ (int)SampleTypeEnum.Routine },";
                    List <MWQMSample> mwqmSampleList = (from s in db2.MWQMSamples
                                                        from c in mwqmSiteTVItemIDList
                                                        where s.MWQMSiteTVItemID == c &&
                                                        s.SampleTypesText.Contains(routine) &&
                                                        s.SampleDateTime_Local.Year > AfterYear
                                                        select s).ToList();

                    List <int> mwqmRunTVItemIDList = (from c in mwqmSampleList
                                                      select c.MWQMRunTVItemID).Distinct().ToList();

                    List <MWQMRun> mwqmRunList = (from r in db2.MWQMRuns
                                                  from c in mwqmRunTVItemIDList
                                                  where r.MWQMRunTVItemID == c &&
                                                  r.DateTime_Local.Year > AfterYear &&
                                                  r.RunSampleType == (int)SampleTypeEnum.Routine
                                                  select r).Distinct().ToList();


                    List <MWQMSiteClassStat> MWQMSiteClassStatList = new List <MWQMSiteClassStat>();

                    int MaxNumberOfSample = 0;
                    int SampleMaxYear     = 0;
                    int SampleMinYear     = 100000;

                    foreach (MWQMSite mwqmSite in mwqmSiteList)
                    {
                        MWQMSiteClassStat mwqmSiteClassStat = new MWQMSiteClassStat();
                        mwqmSiteClassStat.MWQMSite = mwqmSite;

                        var mwqmSampleListForMWQMSite = (from c in mwqmSampleList
                                                         where c.MWQMSiteTVItemID == mwqmSite.MWQMSiteTVItemID
                                                         orderby c.SampleDateTime_Local descending
                                                         select c).ToList();

                        int count    = 0;
                        int lastYear = 0;
                        foreach (MWQMSample mwqmSample in mwqmSampleListForMWQMSite)
                        {
                            count += 1;

                            if (count > NumberOfRuns)
                            {
                                if (!FullYear)
                                {
                                    break;
                                }

                                if (lastYear != mwqmSample.SampleDateTime_Local.Year)
                                {
                                    break;
                                }
                            }

                            mwqmSiteClassStat.MWQMSampleList.Add(mwqmSample);

                            lastYear = mwqmSample.SampleDateTime_Local.Year;
                        }

                        mwqmSiteClassStat.MWQMRunList = (from c in mwqmSiteClassStat.MWQMSampleList
                                                         from r in mwqmRunList
                                                         where c.MWQMRunTVItemID == r.MWQMRunTVItemID &&
                                                         c.MWQMSiteTVItemID == mwqmSite.MWQMSiteTVItemID
                                                         select r).Distinct().ToList();

                        if (mwqmSampleList.Count > 3)
                        {
                            List <double> mwqmSampleFCList = (from c in mwqmSiteClassStat.MWQMSampleList
                                                              where c.MWQMSiteTVItemID == mwqmSite.MWQMSiteTVItemID
                                                              orderby c.SampleDateTime_Local descending
                                                              select(c.FecCol_MPN_100ml < 2 ? 1.9D : (double)c.FecCol_MPN_100ml)).ToList <double>();

                            if (mwqmSampleFCList.Count > 3)
                            {
                                if (MaxNumberOfSample < mwqmSampleFCList.Count)
                                {
                                    MaxNumberOfSample = mwqmSampleFCList.Count;
                                }

                                double P90         = _TVItemService.GetP90(mwqmSampleFCList);
                                double GeoMean     = _TVItemService.GeometricMean(mwqmSampleFCList);
                                double Median      = _TVItemService.GetMedian(mwqmSampleFCList);
                                double PercOver43  = ((((double)mwqmSiteClassStat.MWQMSampleList.Where(c => c.FecCol_MPN_100ml > 43).Count()) / (double)mwqmSampleFCList.Count()) * 100.0D);
                                double PercOver260 = ((((double)mwqmSiteClassStat.MWQMSampleList.Where(c => c.FecCol_MPN_100ml > 260).Count()) / (double)mwqmSampleFCList.Count()) * 100.0D);
                                int    MinYear     = mwqmSiteClassStat.MWQMSampleList.Select(c => c.SampleDateTime_Local).Min().Year;
                                int    MaxYear     = mwqmSiteClassStat.MWQMSampleList.Select(c => c.SampleDateTime_Local).Max().Year;

                                if (SampleMaxYear < MaxYear)
                                {
                                    SampleMaxYear = MaxYear;
                                }

                                if (SampleMinYear > MinYear)
                                {
                                    SampleMinYear = MinYear;
                                }

                                LetterColorName letterColorName = new LetterColorName();

                                if ((GeoMean > 88) || (Median > 88) || (P90 > 260) || (PercOver260 > 10))
                                {
                                    if ((GeoMean > 181) || (Median > 181) || (P90 > 460) || (PercOver260 > 18))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "F", Color = "Purple", Name = "NoDepuration"
                                        };
                                    }
                                    else if ((GeoMean > 163) || (Median > 163) || (P90 > 420) || (PercOver260 > 17))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "E", Color = "Purple", Name = "NoDepuration"
                                        };
                                    }
                                    else if ((GeoMean > 144) || (Median > 144) || (P90 > 380) || (PercOver260 > 15))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "D", Color = "Purple", Name = "NoDepuration"
                                        };
                                    }
                                    else if ((GeoMean > 125) || (Median > 125) || (P90 > 340) || (PercOver260 > 13))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "C", Color = "Purple", Name = "NoDepuration"
                                        };
                                    }
                                    else if ((GeoMean > 107) || (Median > 107) || (P90 > 300) || (PercOver260 > 12))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "B", Color = "Purple", Name = "NoDepuration"
                                        };
                                    }
                                    else
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "A", Color = "Purple", Name = "NoDepuration"
                                        };
                                    }
                                }
                                else if ((GeoMean > 14) || (Median > 14) || (P90 > 43) || (PercOver43 > 10))
                                {
                                    if ((GeoMean > 76) || (Median > 76) || (P90 > 224) || (PercOver43 > 27))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "F", Color = "Red", Name = "Fail"
                                        };
                                    }
                                    else if ((GeoMean > 63) || (Median > 63) || (P90 > 188) || (PercOver43 > 23))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "E", Color = "Red", Name = "Fail"
                                        };
                                    }
                                    else if ((GeoMean > 51) || (Median > 51) || (P90 > 152) || (PercOver43 > 20))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "D", Color = "Red", Name = "Fail"
                                        };
                                    }
                                    else if ((GeoMean > 39) || (Median > 39) || (P90 > 115) || (PercOver43 > 17))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "C", Color = "Red", Name = "Fail"
                                        };
                                    }
                                    else if ((GeoMean > 26) || (Median > 26) || (P90 > 79) || (PercOver43 > 13))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "B", Color = "Red", Name = "Fail"
                                        };
                                    }
                                    else
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "A", Color = "Red", Name = "Fail"
                                        };
                                    }
                                }
                                else
                                {
                                    if ((GeoMean > 12) || (Median > 12) || (P90 > 36) || (PercOver43 > 8))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "F", Color = "Green", Name = "Pass"
                                        };
                                    }
                                    else if ((GeoMean > 9) || (Median > 9) || (P90 > 29) || (PercOver43 > 7))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "E", Color = "Green", Name = "Pass"
                                        };
                                    }
                                    else if ((GeoMean > 7) || (Median > 7) || (P90 > 22) || (PercOver43 > 5))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "D", Color = "Green", Name = "Pass"
                                        };
                                    }
                                    else if ((GeoMean > 5) || (Median > 5) || (P90 > 14) || (PercOver43 > 3))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "C", Color = "Green", Name = "Pass"
                                        };
                                    }
                                    else if ((GeoMean > 2) || (Median > 2) || (P90 > 7) || (PercOver43 > 2))
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "B", Color = "Green", Name = "Pass"
                                        };
                                    }
                                    else
                                    {
                                        letterColorName = new LetterColorName()
                                        {
                                            Letter = "A", Color = "Green", Name = "Pass"
                                        };
                                    }
                                }

                                mwqmSiteClassStat.LetterColorName = letterColorName;

                                sb2.AppendLine("<tr>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ locator }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ name }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ mwqmSampleFCList.Count }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ MaxYear }-{ MinYear }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber) }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ ((MWQMSiteLatestClassificationEnum)mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification).ToString() }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ mwqmSiteClassStat.LetterColorName.Color }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ mwqmSiteClassStat.LetterColorName.Letter }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("</tr>");
                            }
                            else
                            {
                                mwqmSiteClassStat.LetterColorName = new LetterColorName()
                                {
                                    Color = "ND", Letter = "ND", Name = "ND"
                                };

                                sb2.AppendLine("<tr>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ locator }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine($"{ name }");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine("ND");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine("ND");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine("ND");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine("ND");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine("ND");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("<th>");
                                sb2.AppendLine("ND");
                                sb2.AppendLine("</th>");
                                sb2.AppendLine("</tr>");
                            }
                        }
                        else
                        {
                            mwqmSiteClassStat.LetterColorName = new LetterColorName()
                            {
                                Color = "ND", Letter = "ND", Name = "ND"
                            };

                            sb2.AppendLine("<tr>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine($"{ locator }");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine($"{ name }");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine("ND");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine("ND");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine("ND");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine("ND");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine("ND");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("<th>");
                            sb2.AppendLine("ND");
                            sb2.AppendLine("</th>");
                            sb2.AppendLine("</tr>");
                        }

                        MWQMSiteClassStatList.Add(mwqmSiteClassStat);
                    }

                    sb.AppendLine("<tr>");
                    sb.AppendLine("<td>");
                    sb.Append($@"<a href=""http://131.235.1.167/csspwebtools/en-CA/#!View/a|||");
                    sb.Append($@"{ subsector.c.TVItemID }|||00000000001000000000000000000000"">{ locator }</a>");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine($"{ name }");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine($"{ MaxNumberOfSample }");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine($"{ SampleMaxYear }-{ SampleMinYear }");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    if (mwqmSampleList.Count > 3)
                    {
                        foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList)
                        {
                            if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Approved)
                            {
                                if (mwqmSiteClassStat.LetterColorName.Color == "Red")
                                {
                                    sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},");
                                }
                            }
                        }
                    }
                    else
                    {
                        sb.AppendLine("ND");
                    }
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    if (mwqmSampleList.Count > 3)
                    {
                        foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList)
                        {
                            if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Approved)
                            {
                                if (mwqmSiteClassStat.LetterColorName.Color == "Green" && mwqmSiteClassStat.LetterColorName.Letter == "F")
                                {
                                    sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},");
                                }
                            }
                        }
                    }
                    else
                    {
                        sb.AppendLine("ND");
                    }
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    if (mwqmSampleList.Count > 3)
                    {
                        foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList)
                        {
                            if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Restricted ||
                                mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.ConditionallyRestricted)
                            {
                                if (mwqmSiteClassStat.LetterColorName.Color == "Red" && mwqmSiteClassStat.LetterColorName.Letter == "F")
                                {
                                    sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},");
                                }
                            }
                        }
                    }
                    else
                    {
                        sb.AppendLine("ND");
                    }
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    if (mwqmSampleList.Count > 3)
                    {
                        foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList)
                        {
                            if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Restricted ||
                                mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.ConditionallyRestricted)
                            {
                                if (mwqmSiteClassStat.LetterColorName.Color == "Purple")
                                {
                                    sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},");
                                }
                            }
                        }
                    }
                    else
                    {
                        sb.AppendLine("ND");
                    }
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    if (mwqmSampleList.Count > 3)
                    {
                        foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList)
                        {
                            if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Restricted ||
                                mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.ConditionallyRestricted)
                            {
                                if (mwqmSiteClassStat.LetterColorName.Color == "Green" && !(mwqmSiteClassStat.LetterColorName.Letter == "F"))
                                {
                                    sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},");
                                }
                            }
                        }
                    }
                    else
                    {
                        sb.AppendLine("ND");
                    }
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList)
                    {
                        if (mwqmSiteClassStat.MWQMSite.MWQMSiteLatestClassification == (int)MWQMSiteLatestClassificationEnum.Error)
                        {
                            sb.Append($"{ RemoveStart0(mwqmSiteClassStat.MWQMSite.MWQMSiteNumber)},");
                        }
                    }
                    sb.AppendLine("</td>");
                    int  countRainDay            = 0;
                    int  countRainDay24h         = 0;
                    int  countRainDay24hOver25mm = 0;
                    int  countRainDay48h         = 0;
                    bool rainDataMissing         = false;

                    List <MWQMRun> MWQMRunList = new List <MWQMRun>();

                    foreach (MWQMSiteClassStat mwqmSiteClassStat in MWQMSiteClassStatList)
                    {
                        foreach (MWQMSample mwqmSample in mwqmSiteClassStat.MWQMSampleList)
                        {
                            MWQMRun mwqmRun = (from c in mwqmSiteClassStat.MWQMRunList
                                               where c.MWQMRunTVItemID == mwqmSample.MWQMRunTVItemID
                                               select c).FirstOrDefault();

                            if (mwqmRun != null)
                            {
                                if (!MWQMRunList.Where(c => c.MWQMRunTVItemID == mwqmRun.MWQMRunTVItemID).Any())
                                {
                                    MWQMRunList.Add(mwqmRun);
                                }
                            }
                        }
                    }

                    foreach (MWQMRun mwqmRun in MWQMRunList)
                    {
                        if (mwqmRun.RainDay0_mm == null || mwqmRun.RainDay1_mm == null || mwqmRun.RainDay2_mm == null)
                        {
                            rainDataMissing = true;
                        }

                        if (mwqmRun.RainDay0_mm >= 12)
                        {
                            countRainDay += 1;
                        }

                        if (mwqmRun.RainDay1_mm >= 12)
                        {
                            countRainDay24h += 1;
                        }

                        if (mwqmRun.RainDay1_mm >= 25)
                        {
                            countRainDay24hOver25mm += 1;
                        }

                        if (mwqmRun.RainDay2_mm >= 12)
                        {
                            countRainDay48h += 1;
                        }
                    }

                    sb.AppendLine("<td>");
                    sb.AppendLine($"{ countRainDay }");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine($"{ countRainDay24h }");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine($"{ countRainDay48h }");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine($"{ countRainDay24hOver25mm }");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine(rainDataMissing ? "Yes" : "No");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine("");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine("");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine("");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine("");
                    sb.AppendLine("</td>");
                    sb.AppendLine("<td>");
                    sb.AppendLine("");
                    sb.AppendLine("</td>");
                    sb.AppendLine("</tr>");
                }

                sb.AppendLine("</table>");
                sb.AppendLine("</body>");
                sb.AppendLine("</html>");

                //FileInfo fi = new FileInfo($@"C:\CSSP\{ provInit } Subsector Review.html");

                //StreamWriter sw = fi.CreateText();
                //sw.WriteLine(sb.ToString());
                //sw.Close();

                //FileInfo fiSite = new FileInfo($@"C:\CSSP\{ provInit } Subsector Review By Site.html");

                //StreamWriter swSite = fiSite.CreateText();
                //swSite.WriteLine(sb2.ToString());
                //swSite.Close();

                return(true);
            }
        }
コード例 #10
0
        public void MWQMRun_Controller_GetMWQMRunList_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(mwqmRunController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType);

                    MWQMRun mwqmRunFirst = new MWQMRun();
                    int     count        = -1;
                    Query   query        = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID);
                        mwqmRunFirst = (from c in db.MWQMRuns select c).FirstOrDefault();
                        count        = (from c in db.MWQMRuns select c).Count();
                        count        = (query.Take > count ? count : query.Take);
                    }

                    // ok with MWQMRun info
                    IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunList();
                    Assert.IsNotNull(jsonRet);

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

                    List <MWQMRun> mwqmRunList = new List <MWQMRun>();
                    count = -1;
                    query = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID);
                        mwqmRunList = (from c in db.MWQMRuns select c).OrderBy(c => c.MWQMRunID).Skip(0).Take(2).ToList();
                        count       = (from c in db.MWQMRuns select c).Count();
                    }

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

                        // ok with MWQMRun info
                        jsonRet = mwqmRunController.GetMWQMRunList(query.Language.ToString(), query.Skip, query.Take);
                        Assert.IsNotNull(jsonRet);

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

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

                            // ok with MWQMRun info
                            IHttpActionResult jsonRet2 = mwqmRunController.GetMWQMRunList(query.Language.ToString(), query.Skip, query.Take);
                            Assert.IsNotNull(jsonRet2);

                            OkNegotiatedContentResult <List <MWQMRun> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <MWQMRun> >;
                            Assert.AreEqual(mwqmRunList[1].MWQMRunID, ret2.Content[0].MWQMRunID);
                            Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count);
                        }
                    }
                }
            }
        }
コード例 #11
0
        public void MWQMRun_Controller_Post_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    MWQMRunController mwqmRunController = new MWQMRunController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(mwqmRunController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mwqmRunController.DatabaseType);

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

                        MWQMRunService mwqmRunService = new MWQMRunService(query, db, ContactID);
                        mwqmRunLast = (from c in db.MWQMRuns select c).FirstOrDefault();
                    }

                    // ok with MWQMRun info
                    IHttpActionResult jsonRet = mwqmRunController.GetMWQMRunWithID(mwqmRunLast.MWQMRunID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <MWQMRun> Ret = jsonRet as OkNegotiatedContentResult <MWQMRun>;
                    MWQMRun mwqmRunRet = Ret.Content;
                    Assert.AreEqual(mwqmRunLast.MWQMRunID, mwqmRunRet.MWQMRunID);

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

                    // Post to return CSSPError because MWQMRunID exist
                    IHttpActionResult jsonRet2 = mwqmRunController.Post(mwqmRunRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <MWQMRun> mwqmRunRet2 = jsonRet2 as OkNegotiatedContentResult <MWQMRun>;
                    Assert.IsNull(mwqmRunRet2);

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

                    // Post to return newly added MWQMRun
                    mwqmRunRet.MWQMRunID                 = 0;
                    mwqmRunController.Request            = new System.Net.Http.HttpRequestMessage();
                    mwqmRunController.Request.RequestUri = new System.Uri("http://localhost:5000/api/mwqmRun");
                    IHttpActionResult jsonRet3 = mwqmRunController.Post(mwqmRunRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    CreatedNegotiatedContentResult <MWQMRun> mwqmRunRet3 = jsonRet3 as CreatedNegotiatedContentResult <MWQMRun>;
                    Assert.IsNotNull(mwqmRunRet3);

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

                    IHttpActionResult jsonRet4 = mwqmRunController.Delete(mwqmRunRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet4);

                    OkNegotiatedContentResult <MWQMRun> mwqmRunRet4 = jsonRet4 as OkNegotiatedContentResult <MWQMRun>;
                    Assert.IsNotNull(mwqmRunRet4);

                    BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest4);
                }
            }
        }
コード例 #12
0
 public MWQMRunTest()
 {
     mWQMRun       = new MWQMRun();
     mWQMRunExtraA = new MWQMRunExtraA();
     mWQMRunExtraB = new MWQMRunExtraB();
 }