示例#1
0
        public void MWQMSubsectorLanguageService_FillMWQMSubsectorLanguage_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);

                    ContactOK contactOK = mwqmSubsectorLanguageService.IsContactOK();

                    string retStr = mwqmSubsectorLanguageService.FillMWQMSubsectorLanguage(mwqmSubsectorLanguage, mwqmSubsectorLanguageModelNew, contactOK);
                    Assert.AreEqual("", retStr);
                    Assert.AreEqual(contactOK.ContactTVItemID, mwqmSubsectorLanguage.LastUpdateContactTVItemID);

                    contactOK = null;

                    retStr = mwqmSubsectorLanguageService.FillMWQMSubsectorLanguage(mwqmSubsectorLanguage, mwqmSubsectorLanguageModelNew, contactOK);
                    Assert.AreEqual("", retStr);
                    Assert.AreEqual(2, mwqmSubsectorLanguage.LastUpdateContactTVItemID);
                }
            }
        }
示例#2
0
        public void MWQMSubsectorLanguageService_PostAddMWQMSubsectorLanguageDB_Add_Error_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    using (ShimsContext.Create())
                    {
                        SetupShim();
                        LanguageEnum LangToAdd = LanguageEnum.es;
                        FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);

                        //string ErrorText = "ErrorText";
                        shimMWQMSubsectorLanguageService.FillMWQMSubsectorLanguageMWQMSubsectorLanguageMWQMSubsectorLanguageModelContactOK = (a, b, c) =>
                        {
                            return("");
                        };

                        MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = mwqmSubsectorLanguageService.PostAddMWQMSubsectorLanguageDB(mwqmSubsectorLanguageModelNew);
                        Assert.IsTrue(mwqmSubsectorLanguageModelRet.Error.StartsWith(string.Format(ServiceRes.CouldNotAddError_, "").Substring(0, 10)));
                    }
                }
            }
        }
示例#3
0
        public void MWQMSubsectorLanguageService_PostAddMWQMSubsectorLanguageDB_MWQMSubsectorModelOK_Error_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    using (ShimsContext.Create())
                    {
                        MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                        LanguageEnum LangToAdd = LanguageEnum.es;
                        FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);

                        string ErrorText = "ErrorText";
                        ShimMWQMSubsectorLanguageService shimMWQMSubsectorLanguageService = new ShimMWQMSubsectorLanguageService(mwqmSubsectorLanguageService);
                        shimMWQMSubsectorLanguageService.MWQMSubsectorLanguageModelOKMWQMSubsectorLanguageModel = (a) =>
                        {
                            return(ErrorText);
                        };

                        MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = mwqmSubsectorLanguageService.PostAddMWQMSubsectorLanguageDB(mwqmSubsectorLanguageModelNew);
                        Assert.AreEqual(ErrorText, mwqmSubsectorLanguageModelRet.Error);
                    }
                }
            }
        }
示例#4
0
        public void MWQMSubsectorLanguageService_PostDeleteMWQMSubsectorLanguageDB_IsContactOK_Error_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = AddMWQMSubsectorLanguageModel(LangToAdd, mwqmSubsectorModelRet);

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet2 = UpdateMWQMSubsectorLanguageModel(mwqmSubsectorLanguageModelRet);

                    using (ShimsContext.Create())
                    {
                        SetupShim();
                        string ErrorText = "ErrorText";
                        shimMWQMSubsectorLanguageService.IsContactOK = () =>
                        {
                            return(new ContactOK()
                            {
                                Error = ErrorText
                            });
                        };

                        MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet3 = mwqmSubsectorLanguageService.PostDeleteMWQMSubsectorLanguageDB(mwqmSubsectorLanguageModelRet2.MWQMSubsectorID, LangToAdd);
                        Assert.AreEqual(ErrorText, mwqmSubsectorLanguageModelRet3.Error);
                    }
                }
            }
        }
示例#5
0
        public void MWQMSubsectorLanguageService_PostUpdateMWQMSubsectorLanguageDB_GetMWQMSubsectorLanguageWithMWQMSubsectorIDAndLanguageDB_Error_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = AddMWQMSubsectorLanguageModel(LangToAdd, mwqmSubsectorModelRet);

                    using (ShimsContext.Create())
                    {
                        SetupShim();
                        FillMWQMSubsectorLanguageModelUpdate(mwqmSubsectorLanguageModelRet);

                        //string ErrorText = "ErrorText";
                        shimMWQMSubsectorLanguageService.GetMWQMSubsectorLanguageWithMWQMSubsectorIDAndLanguageDBInt32LanguageEnum = (a, b) =>
                        {
                            return(null);
                        };

                        MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet2 = mwqmSubsectorLanguageService.PostUpdateMWQMSubsectorLanguageDB(mwqmSubsectorLanguageModelRet);
                        Assert.AreEqual(string.Format(ServiceRes.CouldNotFind_ToUpdate, ServiceRes.MWQMSubsectorLanguage), mwqmSubsectorLanguageModelRet2.Error);
                    }
                }
            }
        }
示例#6
0
        public void MWQMSubsectorLanguageService_PostUpdateMWQMSubsectorLanguageDB_DoUpdateChanges_Error_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = AddMWQMSubsectorLanguageModel(LangToAdd, mwqmSubsectorModelRet);

                    using (ShimsContext.Create())
                    {
                        SetupShim();
                        FillMWQMSubsectorLanguageModelUpdate(mwqmSubsectorLanguageModelRet);

                        string ErrorText = "ErrorText";
                        shimMWQMSubsectorLanguageService.DoUpdateChanges = () =>
                        {
                            return(ErrorText);
                        };

                        MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet2 = mwqmSubsectorLanguageService.PostUpdateMWQMSubsectorLanguageDB(mwqmSubsectorLanguageModelRet);
                        Assert.AreEqual(ErrorText, mwqmSubsectorLanguageModelRet2.Error);
                    }
                }
            }
        }
示例#7
0
        public PartialViewResult _mwqmSubsector(string Q)
        {
            SetArgs(Q);
            ViewBag.URLModel                   = urlModel;
            ViewBag.MWQMController             = _MWQMController;
            ViewBag.MWQMSubsectorModel         = null;
            ViewBag.MWQMSubsectorLanguageModel = null;

            MWQMSubsectorModel mwqmSubsectorModel = _MWQMSubsectorService.GetMWQMSubsectorModelWithMWQMSubsectorTVItemIDDB(urlModel.TVItemIDList[0]);

            if (string.IsNullOrWhiteSpace(mwqmSubsectorModel.Error))
            {
                ViewBag.MWQMSubsectorModel = mwqmSubsectorModel;

                MWQMSubsectorLanguageModel mwqmSubsectorLanguageModel = _MWQMSubsectorService._MWQMSubsectorLanguageService.GetMWQMSubsectorLanguageModelWithMWQMSubsectorIDAndLanguageDB(mwqmSubsectorModel.MWQMSubsectorID, LanguageRequest);
                if (string.IsNullOrWhiteSpace(mwqmSubsectorLanguageModel.Error))
                {
                    ViewBag.MWQMSubsectorLanguageModel = mwqmSubsectorLanguageModel;
                }
            }

            ViewBag.IsShowMoreInfo = (GetURLVarShowEnumStr(URLVarShowEnum.ShowMoreInfo) == "0" ? false : true);
            ViewBag.IsShowMap      = (GetURLVarShowEnumStr(URLVarShowEnum.ShowMap) == "0" ? false : true);

            return(PartialView());
        }
示例#8
0
 private void FillMWQMSubsectorLanguageModelNew(LanguageEnum Language, MWQMSubsectorModel mwqmSubsectorModel, MWQMSubsectorLanguageModel mwqmSubsectorLanguageModel)
 {
     mwqmSubsectorLanguageModel.MWQMSubsectorID   = mwqmSubsectorModel.MWQMSubsectorID;
     mwqmSubsectorLanguageModel.SubsectorDesc     = randomService.RandomString("MWQMSubsectorName", 30);
     mwqmSubsectorLanguageModel.Language          = Language;
     mwqmSubsectorLanguageModel.TranslationStatus = TranslationStatusEnum.Translated;
     Assert.IsTrue(mwqmSubsectorLanguageModel.MWQMSubsectorID != 0);
     Assert.IsTrue(mwqmSubsectorLanguageModel.SubsectorDesc.Length == 30);
     Assert.IsTrue(mwqmSubsectorLanguageModel.Language == Language);
     Assert.IsTrue(mwqmSubsectorLanguageModel.TranslationStatus == TranslationStatusEnum.Translated);
 }
示例#9
0
        public void MWQMSubsectorLanguageService_GetMWQMSubsectorModelCountDB_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    MWQMSubsectorLanguageModel mwqmSubsectorModelLanguageRet = AddMWQMSubsectorLanguageModel(LangToAdd, mwqmSubsectorModelRet);

                    int mwqmSubsectorCount = mwqmSubsectorLanguageService.GetMWQMSubsectorLanguageModelCountDB();
                    Assert.AreEqual(testDBService.Count + 3, mwqmSubsectorCount);
                }
            }
        }
示例#10
0
        public void MWQMSubsectorLanguageService_GetMWQMSubsectorLanguageWithMWQMSubsectorIDAndLanguageDB_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = AddMWQMSubsectorLanguageModel(LangToAdd, mwqmSubsectorModelRet);

                    MWQMSubsectorLanguage mwqmSubsectorLanguageRet2 = mwqmSubsectorLanguageService.GetMWQMSubsectorLanguageWithMWQMSubsectorIDAndLanguageDB(mwqmSubsectorLanguageModelRet.MWQMSubsectorID, LangToAdd);
                    Assert.AreEqual(mwqmSubsectorLanguageModelRet.MWQMSubsectorID, mwqmSubsectorLanguageRet2.MWQMSubsectorID);
                    Assert.AreEqual(mwqmSubsectorLanguageModelRet.Language, (LanguageEnum)mwqmSubsectorLanguageRet2.Language);
                    Assert.AreEqual(LangToAdd, (LanguageEnum)mwqmSubsectorLanguageRet2.Language);
                }
            }
        }
示例#11
0
        public void MWQMSubsectorLanguageService_PostAddMWQMSubsectorLanguageDB_Good_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = AddMWQMSubsectorLanguageModel(LangToAdd, mwqmSubsectorModelRet);

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet2 = UpdateMWQMSubsectorLanguageModel(mwqmSubsectorLanguageModelRet);

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet3 = mwqmSubsectorLanguageService.PostDeleteMWQMSubsectorLanguageDB(mwqmSubsectorLanguageModelRet2.MWQMSubsectorID, LangToAdd);
                    Assert.AreEqual("", mwqmSubsectorLanguageModelRet3.Error);
                }
            }
        }
示例#12
0
        public void MWQMSubsectorLanguageService_PostAddMWQMSubsectorLanguageDB_UserEmailNotValidated_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    LanguageEnum LangToAdd = LanguageEnum.es;

                    ContactModel contactModelBad = contactModelListGood[2];
                    IPrincipal   userBad         = new GenericPrincipal(new GenericIdentity(contactModelBad.LoginEmail, "Forms"), null);
                    mwqmSubsectorLanguageService = new MWQMSubsectorLanguageService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), userBad);

                    MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelRet = AddMWQMSubsectorLanguageModel(LangToAdd, mwqmSubsectorModelRet);
                    Assert.AreEqual(ServiceRes.EmailRequiresValidation, mwqmSubsectorLanguageModelRet.Error);
                }
            }
        }
示例#13
0
        private MWQMSubsectorLanguageModel AddMWQMSubsectorLanguageModel(LanguageEnum LangToAdd, MWQMSubsectorModel mwqmSubsectorModel)
        {
            MWQMSubsectorLanguageModel mwqmSubsectorLanguageModelNew = new MWQMSubsectorLanguageModel();

            FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModel, mwqmSubsectorLanguageModelNew);

            MWQMSubsectorLanguageModel mwqmSubsectorLanguagModelRet = mwqmSubsectorLanguageService.PostAddMWQMSubsectorLanguageDB(mwqmSubsectorLanguageModelNew);

            if (!string.IsNullOrWhiteSpace(mwqmSubsectorLanguagModelRet.Error))
            {
                return(mwqmSubsectorLanguagModelRet);
            }
            Assert.IsNotNull(mwqmSubsectorLanguagModelRet);
            CompareMWQMSubsectorLanguageModels(mwqmSubsectorLanguageModelNew, mwqmSubsectorLanguagModelRet);

            return(mwqmSubsectorLanguagModelRet);
        }
示例#14
0
        public JsonResult MWQMSubsectorAddOrModifyJSON(FormCollection fc)
        {
            MWQMSubsectorModel mwqmSubsectorModel = _MWQMSubsectorService.MWQMSubsectorAddOrModifyDB(fc);

            return(Json(mwqmSubsectorModel, JsonRequestBehavior.AllowGet));
        }
示例#15
0
        public JsonResult ClimateSiteSetDataToUseByAverageOrPriorityJSON(int SubsectorTVItemID, int Year, string AverageOrPriority)
        {
            MWQMSubsectorModel mwqmSubsectorModel = _MWQMSubsectorService.ClimateSiteSetDataToUseByAverageOrPriorityDB(SubsectorTVItemID, Year, AverageOrPriority);

            return(Json(mwqmSubsectorModel.Error, JsonRequestBehavior.AllowGet));
        }
示例#16
0
        public JsonResult ClimateSitePrecipitationEnteredSaveJSON(FormCollection fc)
        {
            MWQMSubsectorModel mwqmSubsectorModel = _MWQMSubsectorService.ClimateSitePrecipitationEnteredSaveDB(fc);

            return(Json(mwqmSubsectorModel.Error, JsonRequestBehavior.AllowGet));
        }
示例#17
0
        public JsonResult ClimateSitesUseSameAsSelectedSubsectorJSON(int SubsectorTVItemID, int UseSubsectorTVItemID)
        {
            MWQMSubsectorModel mwqmSubsectorModel = _MWQMSubsectorService.ClimateSitesUseSameAsSelectedSubsectorDB(SubsectorTVItemID, UseSubsectorTVItemID);

            return(Json(mwqmSubsectorModel.Error, JsonRequestBehavior.AllowGet));
        }
示例#18
0
        public void MWQMSubsectorLanguageService_MWQMSubsectorLanguageModelOK_Test()
        {
            foreach (CultureInfo culture in setupData.cultureListGood)
            {
                SetupTest(contactModelListGood[0], culture);

                LanguageEnum LangToAdd = LanguageEnum.es;

                using (TransactionScope ts = new TransactionScope())
                {
                    MWQMSubsectorModel mwqmSubsectorModelRet = mwqmSubsectorServiceTest.AddMWQMSubsectorModel();

                    #region Good
                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);

                    string retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual("", retStr);
                    #endregion Good

                    #region MWQMSubsectorID
                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);
                    mwqmSubsectorLanguageModelNew.MWQMSubsectorID = 0;

                    retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual(string.Format(ServiceRes._IsRequired, ServiceRes.MWQMSubsectorID), retStr);
                    #endregion MWQMSubsectorID

                    #region Language
                    int Max = 2;

                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);
                    mwqmSubsectorLanguageModelNew.Language = (LanguageEnum)10000;

                    retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual(string.Format(ServiceRes._IsRequired, ServiceRes.Language), retStr);

                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);
                    mwqmSubsectorLanguageModelNew.Language = LanguageEnum.en;

                    retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual("", retStr);
                    #endregion Language

                    #region SubsectorDesc
                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);
                    Max = 250;
                    mwqmSubsectorLanguageModelNew.SubsectorDesc = randomService.RandomString("", 0);

                    retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual("", retStr);

                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);
                    mwqmSubsectorLanguageModelNew.SubsectorDesc = randomService.RandomString("", Max + 1);

                    retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual(string.Format(ServiceRes._MaxLengthIs_, ServiceRes.SubsectorDesc, Max), retStr);

                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);
                    mwqmSubsectorLanguageModelNew.SubsectorDesc = randomService.RandomString("", Max - 1);

                    retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual("", retStr);

                    FillMWQMSubsectorLanguageModelNew(LangToAdd, mwqmSubsectorModelRet, mwqmSubsectorLanguageModelNew);
                    mwqmSubsectorLanguageModelNew.SubsectorDesc = randomService.RandomString("", Max);

                    retStr = mwqmSubsectorLanguageService.MWQMSubsectorLanguageModelOK(mwqmSubsectorLanguageModelNew);
                    Assert.AreEqual("", retStr);
                    #endregion SubsectorDesc
                }
            }
        }
        public JsonResult TideSitesToUseForSubsectorVerifyAndSaveJSON(FormCollection fc)
        {
            MWQMSubsectorModel mwqmSubsectorModel = _MWQMSubsectorService.TideSitesToUseForSubsectorVerifyAndSaveDB(fc);

            return(Json(mwqmSubsectorModel.Error, JsonRequestBehavior.AllowGet));
        }
        public void Generate(FileInfo fi, int SamplingPlanID)
        {
            string NotUsed = "";

            if (_TaskRunnerBaseService._BWObj.appTaskModel.Language == LanguageEnum.fr)
            {
                Thread.CurrentThread.CurrentCulture   = new CultureInfo("fr-CA");
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
            }
            else
            {
                Thread.CurrentThread.CurrentCulture   = new CultureInfo("en-CA");
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-CA");
            }

            TVFileService tvFileService  = new TVFileService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            string        ServerFilePath = tvFileService.GetServerFilePath(_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID);

            DirectoryInfo di = new DirectoryInfo(ServerFilePath);

            if (!di.Exists)
            {
                di.Create();
            }

            if (fi.Exists)
            {
                fi.Delete();
            }

            SamplingPlanModel SamplingPlanModel = _SamplingPlanService.GetSamplingPlanModelWithSamplingPlanIDDB(SamplingPlanID);

            if (!string.IsNullOrWhiteSpace(SamplingPlanModel.Error))
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFind_With_Equal_, TaskRunnerServiceRes.SamplingPlan, TaskRunnerServiceRes.SamplingPlanID, SamplingPlanID.ToString());
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat3List("CouldNotFind_With_Equal_", TaskRunnerServiceRes.SamplingPlan, TaskRunnerServiceRes.SamplingPlanID, SamplingPlanID.ToString());
                return;
            }

            TVItemService tvItemService       = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            TVItemModel   tvItemModelProvince = tvItemService.GetTVItemModelWithTVItemIDDB(_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID);

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Version\t1\t");
            sb.AppendLine("Sampling Plan Type\t" + SamplingPlanModel.SamplingPlanType.ToString() + "\t");
            sb.AppendLine("Sample Type\t" + SamplingPlanModel.SampleType.ToString() + "\t");
            sb.AppendLine("Lab Sheet Type\t" + SamplingPlanModel.LabSheetType.ToString() + "\t");

            List <SamplingPlanSubsectorModel> SamplingPlanSubsectorModelList = _SamplingPlanSubsectorService.GetSamplingPlanSubsectorModelListWithSamplingPlanIDDB(SamplingPlanID);

            foreach (SamplingPlanSubsectorModel SamplingPlanSubsectorModel in SamplingPlanSubsectorModelList)
            {
                MWQMSubsectorModel mwqmSubsectorModel = _MWQMSubsectorService.GetMWQMSubsectorModelWithMWQMSubsectorTVItemIDDB(SamplingPlanSubsectorModel.SubsectorTVItemID);
                if (!string.IsNullOrWhiteSpace(mwqmSubsectorModel.Error))
                {
                    NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFind_With_Equal_, TaskRunnerServiceRes.MWQMSubsector, TaskRunnerServiceRes.SubsectorTVItemID, SamplingPlanSubsectorModel.SubsectorTVItemID.ToString());
                    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat3List("CouldNotFind_With_Equal_", TaskRunnerServiceRes.MWQMSubsector, TaskRunnerServiceRes.SubsectorTVItemID, SamplingPlanSubsectorModel.SubsectorTVItemID.ToString());
                }

                List <SamplingPlanSubsectorSiteModel> SamplingPlanSubsectorSiteModelList = _SamplingPlanSubsectorSiteService.GetSamplingPlanSubsectorSiteModelListWithSamplingPlanSubsectorIDDB(SamplingPlanSubsectorModel.SamplingPlanSubsectorID);

                if (SamplingPlanSubsectorSiteModelList.Count > 0)
                {
                    sb.AppendLine("Subsector\t" + SamplingPlanSubsectorModel.SubsectorTVText + "\t" + SamplingPlanSubsectorModel.SubsectorTVItemID + "\t" + mwqmSubsectorModel.TideLocationSIDText);


                    sb.Append("MWQM Sites\t");
                    foreach (SamplingPlanSubsectorSiteModel SamplingPlanSubsectorSiteModel in SamplingPlanSubsectorSiteModelList)
                    {
                        sb.Append(SamplingPlanSubsectorSiteModel.MWQMSiteText + ",");
                    }
                    sb.Append("\t");
                    foreach (SamplingPlanSubsectorSiteModel SamplingPlanSubsectorSiteModel in SamplingPlanSubsectorSiteModelList)
                    {
                        sb.Append(SamplingPlanSubsectorSiteModel.MWQMSiteTVItemID + ",");
                    }
                    sb.AppendLine("");
                }

                if (SamplingPlanSubsectorSiteModelList.Where(c => c.IsDuplicate == true).Count() > 0)
                {
                    sb.Append("Daily Duplicate\t");
                    foreach (SamplingPlanSubsectorSiteModel SamplingPlanSubsectorSiteModel in SamplingPlanSubsectorSiteModelList.Where(c => c.IsDuplicate == true))
                    {
                        sb.Append(SamplingPlanSubsectorSiteModel.MWQMSiteText + ",");
                    }
                    sb.Append("\t");
                    foreach (SamplingPlanSubsectorSiteModel SamplingPlanSubsectorSiteModel in SamplingPlanSubsectorSiteModelList.Where(c => c.IsDuplicate == true))
                    {
                        sb.Append(SamplingPlanSubsectorSiteModel.MWQMSiteTVItemID + ",");
                    }
                    sb.AppendLine("");
                }
            }

            sb.AppendLine("App\t" + CreateCode(SamplingPlanModel.AccessCode) + "\t" + CreateCode(SamplingPlanModel.Year.ToString()));
            sb.AppendLine("Precision Criteria\t" + CreateCode(SamplingPlanModel.DailyDuplicatePrecisionCriteria.ToString()) + "\t" + CreateCode(SamplingPlanModel.IntertechDuplicatePrecisionCriteria.ToString()));
            sb.AppendLine("Include Laboratory QA/QC\t" + SamplingPlanModel.IncludeLaboratoryQAQC.ToString() + "\t" + CreateCode(SamplingPlanModel.ApprovalCode));
            sb.AppendLine("Backup Directory\t" + SamplingPlanModel.BackupDirectory);

            StreamWriter sw = fi.CreateText();

            sw.Write(sb.ToString());
            sw.Close();
        }