public void GenerateProvinceHTML()
        {
            _TaskRunnerBaseService.generateDocParams = _TaskRunnerBaseService.CheckGenerateModelOK(FileGeneratorEnum.Province, FileGeneratorTypeEnum.HTML);

            if (_TaskRunnerBaseService._BWObj.TextLanguageList.Count > 0)
            {
                return;
            }

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

            FileInfo fi = _TaskRunnerBaseService.GetFileInfo(_TaskRunnerBaseService.generateDocParams);

            TVItemModel tvItemModelFile = _TaskRunnerBaseService.CreateFileTVItem(fi);

            if (_TaskRunnerBaseService._BWObj.TextLanguageList.Count > 0)
            {
                return;
            }

            HtmlServiceProvince htmlServiceProvince = new HtmlServiceProvince(_TaskRunnerBaseService);

            htmlServiceProvince.Generate(fi);

            _TaskRunnerBaseService.UpdateOrCreateTVFile(_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID, fi, tvItemModelFile, TaskRunnerServiceRes.ProvinceFileAutoGenerate, FilePurposeEnum.Generated);
        }
 public DocTemplateService(LanguageEnum LanguageRequest, IPrincipal User)
     : base(LanguageRequest, User)
 {
     _TVItemService = new TVItemService(LanguageRequest, User);
     _LogService    = new LogService(LanguageRequest, User);
     _TVFileService = new TVFileService(LanguageRequest, User);
 }
        private void SetupTest(ContactModel contactModelToDo, CultureInfo culture, string actionStr)
        {
            LanguageEnum languageEnum = (culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en);

            if (contactModelToDo == null)
            {
                user = null;
            }
            else
            {
                user = new GenericPrincipal(new GenericIdentity(contactModelToDo.LoginEmail, "Forms"), null);
            }
            routeData = new RouteData();
            routeData.Values.Add("culture", culture);
            routeData.Values.Add("controller", "MikeScenario");
            routeData.Values.Add("action", actionStr);

            stubHttpContext            = new StubHttpContextBase();
            stubHttpRequestBase        = new StubHttpRequestBase();
            stubHttpContext.RequestGet = () => stubHttpRequestBase;
            requestContext             = new RequestContext(stubHttpContext, routeData);
            controller     = new MikeScenarioController();
            controller.Url = new UrlHelper(requestContext);
            controller.ControllerContext = new ControllerContext(stubHttpContext, routeData, controller);
            stubHttpContext.UserGet      = () => user;
            randomService  = new RandomService(languageEnum, user);
            mapInfoService = new MapInfoService(languageEnum, user);
            tvItemService  = new TVItemService(languageEnum, user);
            mikeBoundaryConditionService = new MikeBoundaryConditionService(languageEnum, user);
            appTaskService            = new AppTaskService(languageEnum, user);
            mikeScenarioService       = new MikeScenarioService(languageEnum, user);
            tvFileService             = new TVFileService(languageEnum, user);
            mikeSourceService         = new MikeSourceService(languageEnum, user);
            mikeSourceStartEndService = new MikeSourceStartEndService(languageEnum, user);

            controller.SetRequestContext(requestContext);

            // Assert
            Assert.IsNotNull(controller);
            Assert.AreEqual(2, controller.CultureListAllowable.Count);
            Assert.AreEqual("en-CA", controller.CultureListAllowable[0]);
            Assert.AreEqual("fr-CA", controller.CultureListAllowable[1]);
            Assert.IsNotNull(controller._ContactService);
            Assert.IsNotNull(controller._RequestContext);
            Assert.IsNotNull(controller._MikeScenarioService);
            Assert.IsNotNull(culture.Name, controller._RequestContext.RouteData.Values["culture"].ToString());
            Assert.IsNotNull("MikeScenario", controller._RequestContext.RouteData.Values["controller"].ToString());
            Assert.IsNotNull(actionStr, controller._RequestContext.RouteData.Values["action"].ToString());
            Assert.AreEqual((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), controller.LanguageRequest);
            Assert.AreEqual((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), controller.ViewBag.Language);
            Assert.AreEqual(culture.Name, controller.CultureRequest);
            Assert.AreEqual(culture.Name, controller.ViewBag.Culture);
            if (contactModelToDo != null)
            {
                Assert.AreEqual(contactModelToDo.IsAdmin, controller.IsAdmin);
                Assert.AreEqual(contactModelToDo.IsAdmin, controller.ViewBag.IsAdmin);
            }
            Assert.AreEqual(true, controller.Debug);
            Assert.AreEqual(true, controller.ViewBag.Debug);
        }
Example #4
0
 protected override void Initialize(System.Web.Routing.RequestContext requestContext)
 {
     base.Initialize(requestContext);
     _TVFileService      = new TVFileService(LanguageRequest, User);
     _MapInfoService     = new MapInfoService(LanguageRequest, User);
     _DocTemplateService = new DocTemplateService(LanguageRequest, User);
     _BaseEnumService    = new BaseEnumService(LanguageRequest);
 }
 protected override void Initialize(System.Web.Routing.RequestContext requestContext)
 {
     base.Initialize(requestContext);
     _ReportSectionService = new ReportSectionService(LanguageRequest, User);
     _ReportTypeService    = new ReportTypeService(LanguageRequest, User);
     _TVFileService        = new TVFileService(LanguageRequest, User);
     _BaseEnumService      = new BaseEnumService(LanguageRequest);
 }
 public void SetupTest(LanguageEnum LanguageRequest)
 {
     csspWebToolsTaskRunner = new CSSPWebToolsTaskRunner();
     _TVItemService         = new TVItemService(LanguageRequest, csspWebToolsTaskRunner._TaskRunnerBaseService._User);
     _AppTaskService        = new AppTaskService(LanguageRequest, csspWebToolsTaskRunner._TaskRunnerBaseService._User);
     _TVFileService         = new TVFileService(LanguageRequest, csspWebToolsTaskRunner._TaskRunnerBaseService._User);
     _MapInfoService        = new MapInfoService(LanguageRequest, csspWebToolsTaskRunner._TaskRunnerBaseService._User);
 }
Example #7
0
 public MikeSourceService(LanguageEnum LanguageRequest, IPrincipal User)
     : base(LanguageRequest, User)
 {
     _MapInfoService            = new MapInfoService(LanguageRequest, User);
     _MikeSourceStartEndService = new MikeSourceStartEndService(LanguageRequest, User);
     _TVItemService             = new TVItemService(LanguageRequest, User);
     _TVFileService             = new TVFileService(LanguageRequest, User);
     _LogService = new LogService(LanguageRequest, User);
 }
 public IHttpActionResult GetTVFileList([FromUri] string lang = "en", [FromUri] int skip  = 0, [FromUri] int take      = 200,
                                        [FromUri] string asc  = "", [FromUri] string desc = "", [FromUri] string where = "", [FromUri] string extra = "")
 {
     using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
     {
         TVFileService tvFileService = new TVFileService(new Query()
         {
             Lang = lang
         }, db, ContactID);
        public void TVFile_Controller_Put_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    TVFileController tvFileController = new TVFileController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(tvFileController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, tvFileController.DatabaseType);

                    TVFile tvFileLast = new TVFile();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        Query query = new Query();
                        query.Language = LanguageRequest;

                        TVFileService tvFileService = new TVFileService(query, db, ContactID);
                        tvFileLast = (from c in db.TVFiles select c).FirstOrDefault();
                    }

                    // ok with TVFile info
                    IHttpActionResult jsonRet = tvFileController.GetTVFileWithID(tvFileLast.TVFileID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <TVFile> Ret = jsonRet as OkNegotiatedContentResult <TVFile>;
                    TVFile tvFileRet = Ret.Content;
                    Assert.AreEqual(tvFileLast.TVFileID, tvFileRet.TVFileID);

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

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

                    OkNegotiatedContentResult <TVFile> tvFileRet2 = jsonRet2 as OkNegotiatedContentResult <TVFile>;
                    Assert.IsNotNull(tvFileRet2);

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

                    // Put to return CSSPError because TVFileID of 0 does not exist
                    tvFileRet.TVFileID = 0;
                    IHttpActionResult jsonRet3 = tvFileController.Put(tvFileRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    OkNegotiatedContentResult <TVFile> tvFileRet3 = jsonRet3 as OkNegotiatedContentResult <TVFile>;
                    Assert.IsNull(tvFileRet3);

                    BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult;
                    Assert.IsNotNull(badRequest3);
                }
            }
        }
 public SamplingPlanEmailService(LanguageEnum LanguageRequest, IPrincipal User)
     : base(LanguageRequest, User)
 {
     _AppTaskService       = new AppTaskService(LanguageRequest, User);
     _TVItemService        = new TVItemService(LanguageRequest, User);
     _TVFileService        = new TVFileService(LanguageRequest, User);
     _MWQMSubsectorService = new MWQMSubsectorService(LanguageRequest, User);
     _MapInfoService       = new MapInfoService(LanguageRequest, User);
     _LogService           = new LogService(LanguageRequest, User);
 }
 public ProvinceToolsService(LanguageEnum LanguageRequest, IPrincipal User)
     : base(LanguageRequest, User)
 {
     _TVItemService                    = new TVItemService(LanguageRequest, User);
     _AppTaskService                   = new AppTaskService(LanguageRequest, User);
     _TVFileService                    = new TVFileService(LanguageRequest, User);
     _MapInfoService                   = new MapInfoService(LanguageRequest, User);
     _PolSourceSiteService             = new PolSourceSiteService(LanguageRequest, User);
     _PolSourceObservationService      = new PolSourceObservationService(LanguageRequest, User);
     _PolSourceObservationIssueService = new PolSourceObservationIssueService(LanguageRequest, User);
 }
 protected override void Initialize(System.Web.Routing.RequestContext requestContext)
 {
     base.Initialize(requestContext);
     _PolSourceSiteService          = new PolSourceSiteService(LanguageRequest, User);
     _PolSourceSiteInputToolService = new PolSourceSiteInputToolService(LanguageRequest, User);
     _MapInfoService      = new MapInfoService(LanguageRequest, User);
     _MapInfoPointService = new MapInfoPointService(LanguageRequest, User);
     _AddressService      = new AddressService(LanguageRequest, User);
     _BaseEnumService     = new BaseEnumService(LanguageRequest);
     _TVFileService       = new TVFileService(LanguageRequest, User);
 }
 public LabSheetTubeMPNDetailService(LanguageEnum LanguageRequest, IPrincipal User)
     : base(LanguageRequest, User)
 {
     _MWQMRunService    = new MWQMRunService(LanguageRequest, User);
     _TVItemService     = new TVItemService(LanguageRequest, User);
     _MWQMSiteService   = new MWQMSiteService(LanguageRequest, User);
     _MWQMSampleService = new MWQMSampleService(LanguageRequest, User);
     _TVFileService     = new TVFileService(LanguageRequest, User);
     _AppTaskService    = new AppTaskService(LanguageRequest, User);
     _ContactService    = new ContactService(LanguageRequest, User);
     _LogService        = new LogService(LanguageRequest, User);
 }
Example #14
0
 protected override void Initialize(System.Web.Routing.RequestContext requestContext)
 {
     base.Initialize(requestContext);
     _AppTaskService                   = new AppTaskService(LanguageRequest, User);
     _SamplingPlanService              = new SamplingPlanService(LanguageRequest, User);
     _SamplingPlanEmailService         = new SamplingPlanEmailService(LanguageRequest, User);
     _SamplingPlanSubsectorService     = new SamplingPlanSubsectorService(LanguageRequest, User);
     _SamplingPlanSubsectorSiteService = new SamplingPlanSubsectorSiteService(LanguageRequest, User);
     _TVFileService   = new TVFileService(LanguageRequest, User);
     _LabSheetService = new LabSheetService(LanguageRequest, User);
     _BaseEnumService = new BaseEnumService(LanguageRequest);
 }
        public void TVFile_CRUD_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    TVFileService tvFileService = new TVFileService(new Query()
                    {
                        Lang = culture.TwoLetterISOLanguageName
                    }, dbTestDB, ContactID);

                    int count = 0;
                    if (count == 1)
                    {
                        // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used]
                    }

                    TVFile tvFile = GetFilledRandomTVFile("");

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

                    count = tvFileService.GetTVFileList().Count();

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

                    tvFileService.Add(tvFile);
                    if (tvFile.HasErrors)
                    {
                        Assert.AreEqual("", tvFile.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(true, tvFileService.GetTVFileList().Where(c => c == tvFile).Any());
                    tvFileService.Update(tvFile);
                    if (tvFile.HasErrors)
                    {
                        Assert.AreEqual("", tvFile.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count + 1, tvFileService.GetTVFileList().Count());
                    tvFileService.Delete(tvFile);
                    if (tvFile.HasErrors)
                    {
                        Assert.AreEqual("", tvFile.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count, tvFileService.GetTVFileList().Count());
                }
            }
        }
Example #16
0
 public MikeScenarioResultService(LanguageEnum LanguageRequest, IPrincipal User)
     : base(LanguageRequest, User)
 {
     _AppTaskService               = new AppTaskService(LanguageRequest, User);
     _TVFileService                = new TVFileService(LanguageRequest, User);
     _MapInfoService               = new MapInfoService(LanguageRequest, User);
     _MikeSourceService            = new MikeSourceService(LanguageRequest, User);
     _MikeBoundaryConditionService = new MikeBoundaryConditionService(LanguageRequest, User);
     _TideSiteService              = new TideSiteService(LanguageRequest, User);
     _TVItemService                = new TVItemService(LanguageRequest, User);
     _LogService     = new LogService(LanguageRequest, User);
     _MWQMRunService = new MWQMRunService(LanguageRequest, User);
 }
        public IHttpActionResult GetTVFileWithID([FromUri] int TVFileID, [FromUri] string lang = "en", [FromUri] string extra = "")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                TVFileService tvFileService = new TVFileService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                tvFileService.Query = tvFileService.FillQuery(typeof(TVFile), lang, 0, 1, "", "", extra);

                if (tvFileService.Query.Extra == "A")
                {
                    TVFileExtraA tvFileExtraA = new TVFileExtraA();
                    tvFileExtraA = tvFileService.GetTVFileExtraAWithTVFileID(TVFileID);

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

                    return(Ok(tvFileExtraA));
                }
                else if (tvFileService.Query.Extra == "B")
                {
                    TVFileExtraB tvFileExtraB = new TVFileExtraB();
                    tvFileExtraB = tvFileService.GetTVFileExtraBWithTVFileID(TVFileID);

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

                    return(Ok(tvFileExtraB));
                }
                else
                {
                    TVFile tvFile = new TVFile();
                    tvFile = tvFileService.GetTVFileWithTVFileID(TVFileID);

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

                    return(Ok(tvFile));
                }
            }
        }
Example #18
0
        public void SetupTest(ContactModel contactModelToDo, CultureInfo culture)
        {
            Thread.CurrentThread.CurrentCulture   = culture;
            Thread.CurrentThread.CurrentUICulture = culture;

            contactModel           = contactModelToDo;
            user                   = new GenericPrincipal(new GenericIdentity(contactModel.LoginEmail, "Forms"), null);
            tvFileService          = new TVFileService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user);
            tvFileLanguageService  = new TVFileLanguageService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user);
            testDBService          = new TestDBService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user, TableName, Plurial);
            randomService          = new RandomService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user);
            tvItemService          = new TVItemService((culture.TwoLetterISOLanguageName == "fr" ? LanguageEnum.fr : LanguageEnum.en), user);
            tvFileLanguageModelNew = new TVFileLanguageModel();
            tvFileLanguage         = new TVFileLanguage();
        }
        public void TVFile_Controller_GetTVFileWithID_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    TVFileController tvFileController = new TVFileController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(tvFileController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, tvFileController.DatabaseType);

                    TVFile tvFileFirst = new TVFile();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        TVFileService tvFileService = new TVFileService(new Query(), db, ContactID);
                        tvFileFirst = (from c in db.TVFiles select c).FirstOrDefault();
                    }

                    // ok with TVFile info
                    IHttpActionResult jsonRet = tvFileController.GetTVFileWithID(tvFileFirst.TVFileID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <TVFile> Ret = jsonRet as OkNegotiatedContentResult <TVFile>;
                    TVFile tvFileRet = Ret.Content;
                    Assert.AreEqual(tvFileFirst.TVFileID, tvFileRet.TVFileID);

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

                    // Not Found
                    IHttpActionResult jsonRet2 = tvFileController.GetTVFileWithID(0);
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <TVFile> tvFileRet2 = jsonRet2 as OkNegotiatedContentResult <TVFile>;
                    Assert.IsNull(tvFileRet2);

                    NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult;
                    Assert.IsNotNull(notFoundRequest);
                }
            }
        }
        public IHttpActionResult Delete([FromBody] TVFile tvFile, [FromUri] string lang = "en")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                TVFileService tvFileService = new TVFileService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                if (!tvFileService.Delete(tvFile))
                {
                    return(BadRequest(String.Join("|||", tvFile.ValidationResults)));
                }
                else
                {
                    tvFile.ValidationResults = null;
                    return(Ok(tvFile));
                }
            }
        }
        public void GetTVFileList_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    TVFileService tvFileService = new TVFileService(new Query()
                    {
                        Lang = culture.TwoLetterISOLanguageName
                    }, dbTestDB, ContactID);
                    TVFile tvFile = (from c in dbTestDB.TVFiles select c).FirstOrDefault();
                    Assert.IsNotNull(tvFile);

                    List <TVFile> tvFileDirectQueryList = new List <TVFile>();
                    tvFileDirectQueryList = (from c in dbTestDB.TVFiles select c).Take(200).ToList();

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

                        if (string.IsNullOrWhiteSpace(extra))
                        {
                            List <TVFile> tvFileList = new List <TVFile>();
                            tvFileList = tvFileService.GetTVFileList().ToList();
                            CheckTVFileFields(tvFileList);
                        }
                        else
                        {
                            //Assert.AreEqual(true, false);
                        }
                    }
                }
            }
        }
        public void GetTVFileList_2Where_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    foreach (string extra in new List <string>()
                    {
                        null, "A", "B", "C", "D", "E"
                    })
                    {
                        TVFileService tvFileService = new TVFileService(new Query()
                        {
                            Lang = culture.TwoLetterISOLanguageName
                        }, dbTestDB, ContactID);

                        tvFileService.Query = tvFileService.FillQuery(typeof(TVFile), culture.TwoLetterISOLanguageName, 0, 10000, "", "", "TVFileID,GT,2|TVFileID,LT,5", extra);

                        List <TVFile> tvFileDirectQueryList = new List <TVFile>();
                        tvFileDirectQueryList = (from c in dbTestDB.TVFiles select c).Where(c => c.TVFileID > 2 && c.TVFileID < 5).ToList();

                        if (string.IsNullOrWhiteSpace(extra))
                        {
                            List <TVFile> tvFileList = new List <TVFile>();
                            tvFileList = tvFileService.GetTVFileList().ToList();
                            CheckTVFileFields(tvFileList);
                            Assert.AreEqual(tvFileDirectQueryList[0].TVFileID, tvFileList[0].TVFileID);
                        }
                        else
                        {
                            //Assert.AreEqual(true, false);
                        }
                    }
                }
            }
        }
        public IHttpActionResult GetTVFileList([FromUri] string lang = "en", [FromUri] int skip  = 0, [FromUri] int take      = 200,
                                               [FromUri] string asc  = "", [FromUri] string desc = "", [FromUri] string where = "", [FromUri] string extra = "")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                TVFileService tvFileService = new TVFileService(new Query()
                {
                    Lang = lang
                }, db, ContactID);

                if (extra == "A") // QueryString contains [extra=A]
                {
                    tvFileService.Query = tvFileService.FillQuery(typeof(TVFileExtraA), lang, skip, take, asc, desc, where, extra);

                    if (tvFileService.Query.HasErrors)
                    {
                        return(Ok(new List <TVFileExtraA>()
                        {
                            new TVFileExtraA()
                            {
                                HasErrors = tvFileService.Query.HasErrors,
                                ValidationResults = tvFileService.Query.ValidationResults,
                            },
                        }.ToList()));
                    }
                    else
                    {
                        return(Ok(tvFileService.GetTVFileExtraAList().ToList()));
                    }
                }
                else if (extra == "B") // QueryString contains [extra=B]
                {
                    tvFileService.Query = tvFileService.FillQuery(typeof(TVFileExtraB), lang, skip, take, asc, desc, where, extra);

                    if (tvFileService.Query.HasErrors)
                    {
                        return(Ok(new List <TVFileExtraB>()
                        {
                            new TVFileExtraB()
                            {
                                HasErrors = tvFileService.Query.HasErrors,
                                ValidationResults = tvFileService.Query.ValidationResults,
                            },
                        }.ToList()));
                    }
                    else
                    {
                        return(Ok(tvFileService.GetTVFileExtraBList().ToList()));
                    }
                }
                else // QueryString has no parameter [extra] or extra is empty
                {
                    tvFileService.Query = tvFileService.FillQuery(typeof(TVFile), lang, skip, take, asc, desc, where, extra);

                    if (tvFileService.Query.HasErrors)
                    {
                        return(Ok(new List <TVFile>()
                        {
                            new TVFile()
                            {
                                HasErrors = tvFileService.Query.HasErrors,
                                ValidationResults = tvFileService.Query.ValidationResults,
                            },
                        }.ToList()));
                    }
                    else
                    {
                        return(Ok(tvFileService.GetTVFileList().ToList()));
                    }
                }
            }
        }
Example #24
0
        public void Generate(FileInfo fi)
        {
            TVItemService  tvItemService  = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            MapInfoService mapInfoService = new MapInfoService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);

            if (_TaskRunnerBaseService._BWObj.appTaskModel.Language == "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();
            }

            StringBuilder sbKMZ = new StringBuilder();

            sbKMZ.AppendLine(@"<?xml version=""1.0"" encoding=""UTF-8""?>");
            sbKMZ.AppendLine(@"<kml xmlns=""http://www.opengis.net/kml/2.2"" xmlns:gx=""http://www.google.com/kml/ext/2.2"" xmlns:kml=""http://www.opengis.net/kml/2.2"" xmlns:atom=""http://www.w3.org/2005/Atom"">");
            sbKMZ.AppendLine(@"<Document>");
            sbKMZ.AppendLine(@"	<name>" + _TaskRunnerBaseService.generateDocParams.FileName + "</name>");

            sbKMZ.AppendLine(@"    <StyleMap id=""msn_ylw-pushpin"">");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>normal</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sn_ylw-pushpin</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>highlight</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sh_ylw-pushpin</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"	</StyleMap>");
            sbKMZ.AppendLine(@"	<Style id=""sh_ylw-pushpin"">");
            sbKMZ.AppendLine(@"		<IconStyle>");
            sbKMZ.AppendLine(@"			<scale>1.2</scale>");
            sbKMZ.AppendLine(@"		</IconStyle>");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<width>1.5</width>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>0000ff00</color>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");
            sbKMZ.AppendLine(@"	<Style id=""sn_ylw-pushpin"">");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<width>1.5</width>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>0000ff00</color>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");

            TVItemModel tvItemModelProvince = tvItemService.GetTVItemModelWithTVItemIDDB(_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID);
            List <MapInfoPointModel> mapInfoPointModelList = mapInfoService._MapInfoPointService.GetMapInfoPointModelListWithTVItemIDAndTVTypeAndMapInfoDrawTypeDB(tvItemModelProvince.TVItemID, TVTypeEnum.Province, MapInfoDrawTypeEnum.Point);

            sbKMZ.AppendLine(@"	<Folder>");
            sbKMZ.AppendLine(@"	<name>Province</name>");

            // Doing Point
            sbKMZ.AppendLine(@"	<Placemark>");
            sbKMZ.AppendLine(@"	<name>" + tvItemModelProvince.TVText + "</name>");
            sbKMZ.AppendLine(@"<styleUrl>#msn_ylw-pushpin</styleUrl>");
            //sbKMZ.AppendLine(@"	<description>");
            //sbKMZ.AppendLine(@"<![CDATA[");
            //sbKMZ.AppendLine(@"<a href=""" + _TaskRunnerBaseService.GetUrlFromTVItem(tvItemModelRoot) + @""">" + tvItemModelRoot.TVText + "</a>");
            //sbKMZ.AppendLine(@"]]>");
            //sbKMZ.AppendLine(@"	</description>");
            sbKMZ.AppendLine(@"	<Point>");
            sbKMZ.AppendLine(@"		<coordinates>"+ mapInfoPointModelList[0].Lng + "," + mapInfoPointModelList[0].Lat + ",0</coordinates>");
            sbKMZ.AppendLine(@"	</Point>");
            sbKMZ.AppendLine(@"	</Placemark>");

            // Doing Polygon
            sbKMZ.AppendLine(@"	<Placemark>");
            sbKMZ.AppendLine(@"		<name>"+ tvItemModelProvince.TVText + " (poly)</name>");
            sbKMZ.AppendLine(@"<styleUrl>#msn_ylw-pushpin</styleUrl>");
            //sbKMZ.AppendLine(@"	<description>");
            //sbKMZ.AppendLine(@"<![CDATA[");
            //sbKMZ.AppendLine(@"<a href=""" + _TaskRunnerBaseService.GetUrlFromTVItem(tvItemModelRoot) + @""">" + tvItemModelRoot.TVText + "</a>");
            //sbKMZ.AppendLine(@"]]>");
            //sbKMZ.AppendLine(@"	</description>");
            sbKMZ.AppendLine(@"		<Polygon>");
            sbKMZ.AppendLine(@"			<outerBoundaryIs>");
            sbKMZ.AppendLine(@"				<LinearRing>");
            sbKMZ.AppendLine(@"					<coordinates>");
            sbKMZ.AppendLine(@"		"+ (mapInfoPointModelList[0].Lng - 0.1) + "," + (mapInfoPointModelList[0].Lat - 0.1) + ",0");
            sbKMZ.AppendLine(@"		"+ (mapInfoPointModelList[0].Lng + 0.1) + "," + (mapInfoPointModelList[0].Lat - 0.1) + ",0");
            sbKMZ.AppendLine(@"		"+ (mapInfoPointModelList[0].Lng + 0.1) + "," + (mapInfoPointModelList[0].Lat + 0.1) + ",0");
            sbKMZ.AppendLine(@"		"+ (mapInfoPointModelList[0].Lng - 0.1) + "," + (mapInfoPointModelList[0].Lat + 0.1) + ",0");
            sbKMZ.AppendLine(@"		"+ (mapInfoPointModelList[0].Lng - 0.1) + "," + (mapInfoPointModelList[0].Lat - 0.1) + ",0");
            sbKMZ.AppendLine(@"					</coordinates>");
            sbKMZ.AppendLine(@"				</LinearRing>");
            sbKMZ.AppendLine(@"			</outerBoundaryIs>");
            sbKMZ.AppendLine(@"		</Polygon>");
            sbKMZ.AppendLine(@"	</Placemark>");

            sbKMZ.AppendLine(@" <Folder>");
            sbKMZ.AppendLine(@"	<name>Areas</name>");
            List <TVItemModel> tvItemModelAreaList = tvItemService.GetChildrenTVItemModelListWithTVItemIDAndTVTypeDB(tvItemModelProvince.TVItemID, TVTypeEnum.Area);

            foreach (TVItemModel tvItemModelArea in tvItemModelAreaList)
            {
                // Doing point
                sbKMZ.AppendLine(@"	<Placemark>");
                sbKMZ.AppendLine(@"	<name>" + tvItemModelArea.TVText + "</name>");
                sbKMZ.AppendLine(@"<styleUrl>#msn_ylw-pushpin</styleUrl>");
                //sbKMZ.AppendLine(@"	<description>");
                //sbKMZ.AppendLine(@"<![CDATA[");
                //sbKMZ.AppendLine(@"<a href=""" + _TaskRunnerBaseService.GetUrlFromTVItem(tvItemModelCountry) + @""">" + tvItemModelCountry.TVText + "</a>");
                //sbKMZ.AppendLine(@"]]>");
                //sbKMZ.AppendLine(@"	</description>");

                mapInfoPointModelList = mapInfoService._MapInfoPointService.GetMapInfoPointModelListWithTVItemIDAndTVTypeAndMapInfoDrawTypeDB(tvItemModelArea.TVItemID, TVTypeEnum.Area, MapInfoDrawTypeEnum.Point);

                sbKMZ.AppendLine(@"		<Point>");
                sbKMZ.AppendLine(@"			<coordinates>"+ mapInfoPointModelList[0].Lng + "," + mapInfoPointModelList[0].Lat + ",0</coordinates>");
                sbKMZ.AppendLine(@"		</Point>");
                sbKMZ.AppendLine(@"	</Placemark>");

                // Doing Polygon
                sbKMZ.AppendLine(@"	<Placemark>");
                sbKMZ.AppendLine(@"		<name>"+ tvItemModelArea.TVText + " (poly)</name>");
                sbKMZ.AppendLine(@"<styleUrl>#msn_ylw-pushpin</styleUrl>");
                //sbKMZ.AppendLine(@"	<description>");
                //sbKMZ.AppendLine(@"<![CDATA[");
                //sbKMZ.AppendLine(@"<a href=""" + _TaskRunnerBaseService.GetUrlFromTVItem(tvItemModelCountry) + @""">" + tvItemModelCountry.TVText + "</a>");
                //sbKMZ.AppendLine(@"]]>");
                //sbKMZ.AppendLine(@"	</description>");
                sbKMZ.AppendLine(@"		<Polygon>");
                sbKMZ.AppendLine(@"			<outerBoundaryIs>");
                sbKMZ.AppendLine(@"				<LinearRing>");
                sbKMZ.AppendLine(@"					<coordinates>");

                mapInfoPointModelList = mapInfoService._MapInfoPointService.GetMapInfoPointModelListWithTVItemIDAndTVTypeAndMapInfoDrawTypeDB(tvItemModelArea.TVItemID, TVTypeEnum.Area, MapInfoDrawTypeEnum.Polygon);
                foreach (MapInfoPointModel mapInfoPointModel in mapInfoPointModelList)
                {
                    sbKMZ.AppendLine(mapInfoPointModel.Lng + "," + mapInfoPointModel.Lat + ",0 ");
                }

                sbKMZ.AppendLine(@"					</coordinates>");
                sbKMZ.AppendLine(@"				</LinearRing>");
                sbKMZ.AppendLine(@"			</outerBoundaryIs>");
                sbKMZ.AppendLine(@"		</Polygon>");
                sbKMZ.AppendLine(@"	</Placemark>");
            }
            sbKMZ.AppendLine(@" </Folder>");

            sbKMZ.AppendLine(@"	</Folder>");

            sbKMZ.AppendLine(@"</Document>");
            sbKMZ.AppendLine(@"</kml>");

            StreamWriter sw = fi.CreateText();

            sw.Write(sbKMZ.ToString());

            sw.Close();
        }
        public void Generate(FileInfo fi)
        {
            if (_TaskRunnerBaseService._BWObj.appTaskModel.Language == "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();
            }

            StringBuilder sbHTML = new StringBuilder();

            TVItemService tvItemService   = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            TVItemModel   tvItemModelRoot = tvItemService.GetRootTVItemModelDB();

            sbHTML.AppendLine(@"<!DOCTYPE html>");
            sbHTML.AppendLine(@"<html xmlns=""http://www.w3.org/1999/xhtml"">");
            sbHTML.AppendLine(@"<head>");
            sbHTML.AppendLine(@"<meta charset=""utf-8"">");
            sbHTML.AppendLine(@"<meta http-equiv=""X-UA-Compatible"" content=""IE=edge"">");
            sbHTML.AppendLine(@"<title>");
            sbHTML.AppendLine(tvItemModelRoot.TVText);
            sbHTML.AppendLine(@"</title>");
            sbHTML.AppendLine(@"</head>");
            sbHTML.AppendLine(@"<body>");

            List <TVItemModel> tvItemModelList = tvItemService.GetChildrenTVItemModelListWithTVItemIDAndTVTypeDB(tvItemModelRoot.TVItemID, TVTypeEnum.Country);

            sbHTML.AppendLine(@"<ul>");
            foreach (TVItemModel tvItemModelCountry in tvItemModelList)
            {
                sbHTML.AppendLine(@"<li>");
                sbHTML.AppendLine(@"" + tvItemModelCountry.TVText + "");
                sbHTML.AppendLine(@"</li>");
            }
            sbHTML.AppendLine(@"</ul>");
            sbHTML.AppendLine(@"</body>");
            sbHTML.AppendLine(@"</html>");

            StreamWriter sw = fi.CreateText();

            sw.Write(sbHTML.ToString());

            sw.Close();
        }
Example #26
0
        private bool GenerateKMZ()
        {
            string NotUsed = "";

            //StringBuilder sbKMZ = new StringBuilder();
            //DateTime CD = DateTime.Now;

            //string Language = "_" + _TaskRunnerBaseService._BWObj.appTaskModel.Language;

            //string DateText = "_" + CD.Year.ToString() +
            //    "_" + (CD.Month > 9 ? CD.Month.ToString() : "0" + CD.Month.ToString()) +
            //    "_" + (CD.Day > 9 ? CD.Day.ToString() : "0" + CD.Day.ToString()) +
            //    "_" + (CD.Hour > 9 ? CD.Hour.ToString() : "0" + CD.Hour.ToString()) +
            //    "_" + (CD.Minute > 9 ? CD.Minute.ToString() : "0" + CD.Minute.ToString());

            switch (reportTypeModel.TVType)
            {
            case TVTypeEnum.MikeScenario:
                break;

            case TVTypeEnum.Subsector:
                break;

            default:
                break;
            }

            //if (!RenameStartOfFileNameKMZ(fi))
            //{
            //    return false;
            //}

            fi = new FileInfo(fi.FullName.Replace(".html", ".kml"));

            if (fi.Exists)
            {
                try
                {
                    fi.Delete();
                    fi = new FileInfo(fi.FullName);
                }
                catch (Exception ex)
                {
                    NotUsed = string.Format(TaskRunnerServiceRes.CouldNotDeleteFile_Error_, fi.FullName, ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""));
                    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotDeleteFile_Error_", fi.FullName, ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""));
                    return(false);
                }
            }

            switch (reportTypeModel.TVType)
            {
            case TVTypeEnum.Root:
            {
                if (!GenerateKMZRoot())
                {
                    return(false);
                }
            }
            break;

            case TVTypeEnum.Area:
            case TVTypeEnum.Country:
            case TVTypeEnum.Infrastructure:
            case TVTypeEnum.MikeScenario:
            {
                if (!GenerateKMZMikeScenario())
                {
                    return(false);
                }
            }
            break;

            case TVTypeEnum.MikeSource:
            case TVTypeEnum.Municipality:
            case TVTypeEnum.MWQMSite:
            case TVTypeEnum.PolSourceSite:
            case TVTypeEnum.Province:
            case TVTypeEnum.Sector:
            case TVTypeEnum.Subsector:
            {
                if (!GenerateKMZSubsector())
                {
                    return(false);
                }
            }
            break;

            case TVTypeEnum.BoxModel:
            case TVTypeEnum.VisualPlumesScenario:
                if (!GenerateKMZNotImplemented())
                {
                    return(false);
                }
                break;

            default:
                break;
            }


            DirectoryInfo di = new DirectoryInfo(fi.DirectoryName);

            if (!di.Exists)
            {
                try
                {
                    di.Create();
                }
                catch (Exception ex)
                {
                    NotUsed = string.Format(TaskRunnerServiceRes.CouldNotCreateDirectory__, di.FullName, ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""));
                    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotCreateDirectory__", di.FullName, ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""));
                    return(false);
                }
            }

            StreamWriter sw = fi.CreateText();

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

            fi = new FileInfo(fi.FullName);

            if (!fi.Exists)
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFindFile_, fi.FullName);
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CouldNotFindFile_", fi.FullName);
                return(false);
            }


            //ProcessStartInfo pZip = new ProcessStartInfo();
            //pZip.Arguments = "a -tzip \"" + fi.FullName.Replace(".kml", ".kmz") + "\" \"" + fi.FullName + "\"";
            //pZip.RedirectStandardInput = true;
            //pZip.UseShellExecute = false;
            //pZip.CreateNoWindow = true;
            //pZip.WindowStyle = ProcessWindowStyle.Hidden;

            //Process processZip = new Process();
            //processZip.StartInfo = pZip;
            //try
            //{
            //    pZip.FileName = @"C:\Program Files\7-Zip\7z.exe";
            //    processZip.Start();
            //}
            //catch (Exception ex)
            //{
            //    NotUsed = string.Format(TaskRunnerServiceRes.CompressKMLDidNotWorkWith7zError_, ex.Message);
            //    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CompressKMLDidNotWorkWith7zError_", ex.Message);
            //    return false;
            //}

            //while (!processZip.HasExited)
            //{
            //    // waiting for the processZip to finish then continue
            //}

            //fi = new FileInfo(fi.FullName);

            //if (fi.Exists)
            //{
            //    try
            //    {
            //        //fi.Delete();
            //    }
            //    catch (Exception ex)
            //    {
            //        NotUsed = string.Format(TaskRunnerServiceRes.CouldNotDeleteFile_Error_, fi.FullName, ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""));
            //        _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotDeleteFile_Error_", fi.FullName, ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""));
            //        return false;
            //    }
            //}

            //fi = new FileInfo(fi.FullName.Replace(".kml", ".kmz"));

            //if (!fi.Exists)
            //{
            //    NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFindFile_, fi.FullName);
            //    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CouldNotFindFile_", fi.FullName);
            //    return false;
            //}

            TVFileService tvFileService = new TVFileService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            TVItemService tvItemService = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            TVItemModel   tvItemModel   = tvItemService.PostAddChildTVItemDB(_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID, fi.Name.Replace(fi.Extension, ""), TVTypeEnum.File);

            if (!string.IsNullOrWhiteSpace(tvItemModel.Error))
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotAdd_Error_, TaskRunnerServiceRes.TVItem, _TaskRunnerBaseService._BWObj.appTaskModel.TVItemID.ToString());
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotAdd_Error_", TaskRunnerServiceRes.TVItem, _TaskRunnerBaseService._BWObj.appTaskModel.TVItemID.ToString());
                return(false);
            }

            TVFileModel tvFileModelNew = new TVFileModel();

            tvFileModelNew.TVFileTVItemID            = tvItemModel.TVItemID;
            tvFileModelNew.TemplateTVType            = 0;
            tvFileModelNew.ReportTypeID              = reportTypeModel.ReportTypeID;
            tvFileModelNew.Parameters                = Parameters;
            tvFileModelNew.ServerFileName            = fi.Name;
            tvFileModelNew.FilePurpose               = FilePurposeEnum.ReportGenerated;
            tvFileModelNew.Language                  = _TaskRunnerBaseService._BWObj.appTaskModel.Language;
            tvFileModelNew.Year                      = DateTime.Now.Year;
            tvFileModelNew.FileDescription           = reportTypeModel.Description;
            tvFileModelNew.FileType                  = tvFileService.GetFileType(fi.Extension);
            tvFileModelNew.FileSize_kb               = (((int)fi.Length / 1024) == 0 ? 1 : (int)fi.Length / 1024);
            tvFileModelNew.FileInfo                  = TaskRunnerServiceRes.FileName + "[" + fi.Name + "]\r\n" + TaskRunnerServiceRes.FileType + "[" + fi.Extension + "]\r\n";
            tvFileModelNew.FileCreatedDate_UTC       = fi.LastWriteTimeUtc;
            tvFileModelNew.ServerFilePath            = (fi.DirectoryName + @"\").Replace(@"C:\", @"E:\");
            tvFileModelNew.LastUpdateDate_UTC        = DateTime.UtcNow;
            tvFileModelNew.LastUpdateContactTVItemID = _TaskRunnerBaseService._BWObj.appTaskModel.LastUpdateContactTVItemID;

            TVFileModel tvFileModelRet = tvFileService.PostAddTVFileDB(tvFileModelNew);

            if (!string.IsNullOrWhiteSpace(tvFileModelRet.Error))
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotAdd_Error_, TaskRunnerServiceRes.TVFile, tvFileModelRet.Error);
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotAdd_Error_", TaskRunnerServiceRes.TVFile, tvFileModelRet.Error);
                return(false);
            }

            return(true);
        }
        public void GenerateLinksBetweenMWQMSitesAndPolSourceSitesForCSSPWebToolsVisualization()
        {
            string NotUsed = "";

            TVItemService                  tvItemService                  = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            AppTaskService                 appTaskService                 = new AppTaskService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            TVFileService                  tvFileService                  = new TVFileService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            ProvinceToolsService           provinceToolsService           = new ProvinceToolsService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            MapInfoService                 mapInfoService                 = new MapInfoService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            AppTaskModel                   appTaskModel                   = appTaskService.GetAppTaskModelWithAppTaskIDDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID);
            PolSourceSiteEffectService     polSourceSiteEffectService     = new PolSourceSiteEffectService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);

            if (_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID == 0)
            {
                NotUsed = string.Format(TaskRunnerServiceRes._Required, TaskRunnerServiceRes.TVItemID);
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_Required", TaskRunnerServiceRes.TVItemID);
                return;
            }
            if (_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID2 == 0)
            {
                NotUsed = string.Format(TaskRunnerServiceRes._Required, TaskRunnerServiceRes.TVItemID2);
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("_Required", TaskRunnerServiceRes.TVItemID2);
                return;
            }

            TVItemModel tvItemModelProvince = tvItemService.GetTVItemModelWithTVItemIDDB(_TaskRunnerBaseService._BWObj.appTaskModel.TVItemID);

            if (!string.IsNullOrWhiteSpace(tvItemModelProvince.Error))
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFind_With_Equal_, TaskRunnerServiceRes.TVItem, TaskRunnerServiceRes.TVItemID, _TaskRunnerBaseService._BWObj.appTaskModel.TVItemID.ToString());
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat3List("CouldNotFind_With_Equal_", TaskRunnerServiceRes.TVItem, TaskRunnerServiceRes.TVItemID, _TaskRunnerBaseService._BWObj.appTaskModel.TVItemID.ToString());
                return;
            }

            if (tvItemModelProvince.TVType != TVTypeEnum.Province)
            {
                NotUsed = string.Format(TaskRunnerServiceRes.TVTypeShouldBe_, TVTypeEnum.Province.ToString());
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("TVTypeShouldBe_", TVTypeEnum.Province.ToString());
                return;
            }

            string Parameters = _TaskRunnerBaseService._BWObj.appTaskModel.Parameters;

            string[] ParamValueList   = Parameters.Split("|||".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            int      ProvinceTVItemID = 0;

            foreach (string s in ParamValueList)
            {
                string[] ParamValue = s.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

                if (ParamValue.Length != 2)
                {
                    NotUsed = string.Format(TaskRunnerServiceRes.CouldNotParse_Properly, TaskRunnerServiceRes.Parameters);
                    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CouldNotParse_Properly", TaskRunnerServiceRes.Parameters);
                    return;
                }

                if (ParamValue[0] == "ProvinceTVItemID")
                {
                    ProvinceTVItemID = int.Parse(ParamValue[1]);
                }
                else
                {
                    NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFind_, ParamValue[0]);
                    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CouldNotFind_", ParamValue[0].ToString());
                    return;
                }
            }

            if (tvItemModelProvince.TVItemID != ProvinceTVItemID)
            {
                NotUsed = string.Format(TaskRunnerServiceRes._NotEqualTo_, "tvItemModelProvince.TVItemID[" + tvItemModelProvince.TVItemID.ToString() + "]", "ProvinceTVItemID[" + ProvinceTVItemID.ToString() + "]");
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("_NotEqualTo_", "tvItemModelProvince.TVItemID[" + tvItemModelProvince.TVItemID.ToString() + "]", "ProvinceTVItemID[" + ProvinceTVItemID.ToString() + "]");
                return;
            }

            string ServerPath = tvFileService.GetServerFilePath(ProvinceTVItemID);
            string Init       = provinceToolsService.GetInit(ProvinceTVItemID);

            #region Reading the MWQMSitesAndPolSourceSites_XX.KML
            List <TVItemIDAndLatLng> TVItemIDAndLatLngList = new List <TVItemIDAndLatLng>();

            string FileName = $"MWQMSitesAndPolSourceSites_{Init}.kml";

            FileInfo fi = new FileInfo(ServerPath + FileName);

            if (!fi.Exists)
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFindFile_, fi.FullName);
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CouldNotFindFile_", fi.FullName);
                return;
            }

            XmlDocument doc = new XmlDocument();
            doc.Load(fi.FullName);

            foreach (XmlNode node in doc.ChildNodes)
            {
                GetTVItemIDAndLatLng(TVItemIDAndLatLngList, node);
            }

            #endregion Reading the MWQMSitesAndPolSourceSites_XX.KML

            #region Reading the GroupingInputs__XX.KML

            string FileName2 = $"GroupingInputs_{Init}.kml";

            FileInfo fi2 = new FileInfo(ServerPath + FileName2);

            if (!fi2.Exists)
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFindFile_, fi2.FullName);
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CouldNotFindFile_", fi2.FullName);
                return;
            }

            XmlDocument doc2 = new XmlDocument();
            doc2.Load(fi2.FullName);

            string CurrentSubsector = "";
            string CurrentGroupingMWQMSitesAndPolSourceSites = "";

            List <PolyObj> polyObjList = new List <PolyObj>();

            XmlNode StartNode2 = doc2.ChildNodes[1].ChildNodes[0];
            foreach (XmlNode n in StartNode2.ChildNodes)
            {
                if (n.Name == "Folder")
                {
                    CurrentSubsector = "";

                    foreach (XmlNode n22 in n)
                    {
                        if (n22.Name == "name")
                        {
                            CurrentSubsector = n22.InnerText;
                        }

                        if (n22.Name == "Placemark")
                        {
                            CurrentGroupingMWQMSitesAndPolSourceSites = "";

                            foreach (XmlNode n2 in n22)
                            {
                                if (n2.Name == "name")
                                {
                                    CurrentGroupingMWQMSitesAndPolSourceSites = n2.InnerText;
                                }

                                if (n2.Name == "Polygon")
                                {
                                    foreach (XmlNode n222 in n2.ChildNodes)
                                    {
                                        if (n222.Name == "outerBoundaryIs")
                                        {
                                            foreach (XmlNode n2222 in n222.ChildNodes)
                                            {
                                                if (n2222.Name == "LinearRing")
                                                {
                                                    PolyObj polyObj = new PolyObj();

                                                    polyObj.Subsector      = CurrentSubsector;
                                                    polyObj.Classification = CurrentGroupingMWQMSitesAndPolSourceSites.ToUpper().Trim();

                                                    foreach (XmlNode n3 in n2222.ChildNodes)
                                                    {
                                                        if (n3.Name == "coordinates")
                                                        {
                                                            string coordText = n3.InnerText.Trim();

                                                            List <string> pointListText = coordText.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();

                                                            int ordinal = 0;
                                                            foreach (string pointText in pointListText)
                                                            {
                                                                string pointTxt = pointText.Trim();

                                                                if (!string.IsNullOrWhiteSpace(pointTxt))
                                                                {
                                                                    List <string> valListText = pointTxt.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();

                                                                    if (valListText.Count != 3)
                                                                    {
                                                                        NotUsed = "valListText.Count != 3";
                                                                        _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageList("valListText.Count != 3");
                                                                        return;
                                                                    }

                                                                    float Lng = float.Parse(valListText[0]);
                                                                    float Lat = float.Parse(valListText[1]);

                                                                    Coord coord = new Coord()
                                                                    {
                                                                        Lat = Lat, Lng = Lng, Ordinal = ordinal
                                                                    };

                                                                    polyObj.coordList.Add(coord);

                                                                    ordinal += 1;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    if (polyObj.coordList.Count > 0)
                                                    {
                                                        polyObj.MinLat = polyObj.coordList.Min(c => c.Lat);
                                                        polyObj.MaxLat = polyObj.coordList.Max(c => c.Lat);
                                                        polyObj.MinLng = polyObj.coordList.Min(c => c.Lng);
                                                        polyObj.MaxLng = polyObj.coordList.Max(c => c.Lng);
                                                    }
                                                    polyObjList.Add(polyObj);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            #endregion Reading the GroupingInputs__XX.KML

            #region Saving PolSourceSiteEffect in CSSPDB
            TVItemModel tvItemModelProv = tvItemService.GetTVItemModelWithTVItemIDDB(ProvinceTVItemID);
            if (!string.IsNullOrWhiteSpace(tvItemModelProv.Error))
            {
                NotUsed = string.Format(TaskRunnerServiceRes.CouldNotFind_With_Equal_, TaskRunnerServiceRes.TVItem, TaskRunnerServiceRes.TVItemID, ProvinceTVItemID.ToString());
                _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat3List("CouldNotFind_With_Equal_", TaskRunnerServiceRes.TVItem, TaskRunnerServiceRes.TVItemID, ProvinceTVItemID.ToString());
                return;
            }

            // getting all active MWQMSites and PolSourceSites under the province

            List <TVItem> tvItemMWQMSiteList = new List <TVItem>();
            List <TVItem> tvItemPSSList      = new List <TVItem>();
            List <TVItem> tvItemInfraList    = new List <TVItem>();
            using (CSSPDBEntities db2 = new CSSPDBEntities())
            {
                tvItemMWQMSiteList = (from c in db2.TVItems
                                      where c.TVPath.StartsWith(tvItemModelProv.TVPath + "p") &&
                                      c.TVType == (int)TVTypeEnum.MWQMSite &&
                                      c.IsActive == true
                                      select c).ToList();


                tvItemPSSList = (from c in db2.TVItems
                                 where c.TVPath.StartsWith(tvItemModelProv.TVPath + "p") &&
                                 c.TVType == (int)TVTypeEnum.PolSourceSite &&
                                 c.IsActive == true
                                 select c).ToList();

                tvItemInfraList = (from c in db2.TVItems
                                   where c.TVPath.StartsWith(tvItemModelProv.TVPath + "p") &&
                                   c.TVType == (int)TVTypeEnum.Infrastructure &&
                                   c.IsActive == true
                                   select c).ToList();
            }

            List <TVItemModel> tvitemModelSSList = tvItemService.GetChildrenTVItemModelListWithTVItemIDAndTVTypeDB(tvItemModelProv.TVItemID, TVTypeEnum.Subsector);

            List <PolSourceSiteEffect> existingPolSourceSiteEffectSubsectorList = new List <PolSourceSiteEffect>();
            List <PolSourceSiteEffect> newPolSourceSiteEffectSubsectorList      = new List <PolSourceSiteEffect>();

            int    CountSS    = 0;
            int    TotalCount = tvitemModelSSList.Count;
            string Status     = appTaskModel.StatusText;
            foreach (TVItemModel tvItemModelSS in tvitemModelSSList)
            {
                CountSS += 1;
                if (CountSS % 1 == 0)
                {
                    _TaskRunnerBaseService.SendPercentToDB(_TaskRunnerBaseService._BWObj.appTaskModel.AppTaskID, (int)(100.0f * ((float)CountSS / (float)TotalCount)));
                }
                Application.DoEvents();

                string TVTextSS = "";
                if (tvItemModelSS.TVText.Contains(" "))
                {
                    TVTextSS = tvItemModelSS.TVText.Substring(0, tvItemModelSS.TVText.IndexOf(" "));
                }
                else
                {
                    TVTextSS = tvItemModelSS.TVText;
                }

                foreach (PolyObj polyObj in polyObjList.Where(c => c.Subsector == TVTextSS))
                {
                    List <MapInfo> mapInfoMWQMSiteList2 = new List <MapInfo>();
                    List <MapInfo> mapInfoPSSList2      = new List <MapInfo>();
                    List <MapInfo> mapInfoInfraList2    = new List <MapInfo>();

                    using (CSSPDBEntities db2 = new CSSPDBEntities())
                    {
                        var mapInfoMWQMSiteList = (from c in db2.MapInfos
                                                   let lat = (from d in db2.MapInfoPoints where c.MapInfoID == d.MapInfoID select d).FirstOrDefault().Lat
                                                             let lng = (from d in db2.MapInfoPoints where c.MapInfoID == d.MapInfoID select d).FirstOrDefault().Lng
                                                                       where c.TVType == (int)TVTypeEnum.MWQMSite &&
                                                                       c.MapInfoDrawType == (int)MapInfoDrawTypeEnum.Point &&
                                                                       lat >= polyObj.MinLat &&
                                                                       lat <= polyObj.MaxLat &&
                                                                       lng >= polyObj.MinLng &&
                                                                       lng <= polyObj.MaxLng
                                                                       select new { c, lat, lng }).ToList();

                        var mapInfoPSSList = (from c in db2.MapInfos
                                              let lat = (from d in db2.MapInfoPoints where c.MapInfoID == d.MapInfoID select d).FirstOrDefault().Lat
                                                        let lng = (from d in db2.MapInfoPoints where c.MapInfoID == d.MapInfoID select d).FirstOrDefault().Lng
                                                                  where c.TVType == (int)TVTypeEnum.PolSourceSite &&
                                                                  c.MapInfoDrawType == (int)MapInfoDrawTypeEnum.Point &&
                                                                  lat >= polyObj.MinLat &&
                                                                  lat <= polyObj.MaxLat &&
                                                                  lng >= polyObj.MinLng &&
                                                                  lng <= polyObj.MaxLng
                                                                  select new { c, lat, lng }).ToList();

                        var mapInfoInfraList = (from c in db2.MapInfos
                                                let lat = (from d in db2.MapInfoPoints where c.MapInfoID == d.MapInfoID select d).FirstOrDefault().Lat
                                                          let lng = (from d in db2.MapInfoPoints where c.MapInfoID == d.MapInfoID select d).FirstOrDefault().Lng
                                                                    where (c.TVType == (int)TVTypeEnum.WasteWaterTreatmentPlant ||
                                                                           c.TVType == (int)TVTypeEnum.LiftStation ||
                                                                           c.TVType == (int)TVTypeEnum.LineOverflow) &&
                                                                    c.MapInfoDrawType == (int)MapInfoDrawTypeEnum.Point &&
                                                                    lat >= polyObj.MinLat &&
                                                                    lat <= polyObj.MaxLat &&
                                                                    lng >= polyObj.MinLng &&
                                                                    lng <= polyObj.MaxLng
                                                                    select new { c, lat, lng }).ToList();


                        foreach (var mapInfo in mapInfoMWQMSiteList)
                        {
                            if (mapInfoService.CoordInPolygon(polyObj.coordList, new Coord()
                            {
                                Lat = (float)mapInfo.lat, Lng = (float)mapInfo.lng, Ordinal = 0
                            }))
                            {
                                mapInfoMWQMSiteList2.Add(mapInfo.c);
                            }
                        }

                        foreach (var mapInfo in mapInfoPSSList)
                        {
                            if (mapInfoService.CoordInPolygon(polyObj.coordList, new Coord()
                            {
                                Lat = (float)mapInfo.lat, Lng = (float)mapInfo.lng, Ordinal = 0
                            }))
                            {
                                mapInfoPSSList2.Add(mapInfo.c);
                            }
                        }

                        foreach (var mapInfo in mapInfoInfraList)
                        {
                            if (mapInfoService.CoordInPolygon(polyObj.coordList, new Coord()
                            {
                                Lat = (float)mapInfo.lat, Lng = (float)mapInfo.lng, Ordinal = 0
                            }))
                            {
                                mapInfoInfraList2.Add(mapInfo.c);
                            }
                        }
                    }

                    List <int> PSSTVItemIDList = (from c in mapInfoPSSList2
                                                  select c.TVItemID).Distinct().ToList();
                    List <int> MWQMTVItemIDList = (from c in mapInfoMWQMSiteList2
                                                   select c.TVItemID).Distinct().ToList();
                    List <int> InfraTVItemIDList = (from c in mapInfoInfraList2
                                                    select c.TVItemID).Distinct().ToList();

                    using (CSSPDBEntities db2 = new CSSPDBEntities())
                    {
                        List <int> TVItemIDMWQMSiteWithinSubsector = tvItemMWQMSiteList.Where(c => c.TVPath.Contains(tvItemModelSS.TVPath + "p")).Select(c => c.TVItemID).ToList();

                        existingPolSourceSiteEffectSubsectorList = (from c in db2.PolSourceSiteEffects
                                                                    from m in TVItemIDMWQMSiteWithinSubsector
                                                                    where c.MWQMSiteTVItemID == m
                                                                    select c).ToList();
                    }

                    foreach (TVItem tvItemMWQMSite in tvItemMWQMSiteList.Where(c => c.TVPath.Contains(tvItemModelSS.TVPath + "p")))
                    {
                        if (MWQMTVItemIDList.Contains(tvItemMWQMSite.TVItemID))
                        {
                            List <PolSourceSiteEffect> MWQMSiteExistingPolSourceSiteEffectList = (from c in existingPolSourceSiteEffectSubsectorList
                                                                                                  where c.MWQMSiteTVItemID == tvItemMWQMSite.TVItemID
                                                                                                  select c).ToList();

                            // doing pollution source site
                            foreach (int PSSTVItemID in PSSTVItemIDList)
                            {
                                newPolSourceSiteEffectSubsectorList.Add(new PolSourceSiteEffect()
                                {
                                    PolSourceSiteOrInfrastructureTVItemID = PSSTVItemID, MWQMSiteTVItemID = tvItemMWQMSite.TVItemID,
                                });

                                if (!(MWQMSiteExistingPolSourceSiteEffectList.Where(c => c.PolSourceSiteOrInfrastructureTVItemID == PSSTVItemID).Any()))
                                {
                                    PolSourceSiteEffectModel polSourceSiteEffectModelNew = new PolSourceSiteEffectModel()
                                    {
                                        PolSourceSiteOrInfrastructureTVItemID = PSSTVItemID,
                                        MWQMSiteTVItemID = tvItemMWQMSite.TVItemID,
                                    };

                                    PolSourceSiteEffectModel polSourceSiteEffectModelAlreadyExist = polSourceSiteEffectService.GetPolSourceSiteEffectModelWithPolSourceSiteOrInfrastructureTVItemIDAndMWQMSiteTVItemIDDB(PSSTVItemID, tvItemMWQMSite.TVItemID);
                                    if (!string.IsNullOrWhiteSpace(polSourceSiteEffectModelAlreadyExist.Error))
                                    {
                                        PolSourceSiteEffectModel polSourceSiteEffectModelRet = polSourceSiteEffectService.PostAddPolSourceSiteEffectDB(polSourceSiteEffectModelNew);
                                        if (!string.IsNullOrWhiteSpace(polSourceSiteEffectModelRet.Error))
                                        {
                                            NotUsed = string.Format(TaskRunnerServiceRes.CouldNotAdd_Error_, TaskRunnerServiceRes.PolSourceSiteEffect, polSourceSiteEffectModelRet.Error);
                                            _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotAdd_Error_", TaskRunnerServiceRes.PolSourceSiteEffect, polSourceSiteEffectModelRet.Error);
                                            return;
                                        }
                                    }
                                }
                            }

                            // doing infrastructure
                            foreach (int InfraTVItemID in InfraTVItemIDList)
                            {
                                newPolSourceSiteEffectSubsectorList.Add(new PolSourceSiteEffect()
                                {
                                    PolSourceSiteOrInfrastructureTVItemID = InfraTVItemID, MWQMSiteTVItemID = tvItemMWQMSite.TVItemID,
                                });

                                if (!(MWQMSiteExistingPolSourceSiteEffectList.Where(c => c.PolSourceSiteOrInfrastructureTVItemID == InfraTVItemID).Any()))
                                {
                                    PolSourceSiteEffectModel polSourceSiteEffectModelNew = new PolSourceSiteEffectModel()
                                    {
                                        PolSourceSiteOrInfrastructureTVItemID = InfraTVItemID,
                                        MWQMSiteTVItemID = tvItemMWQMSite.TVItemID,
                                    };

                                    PolSourceSiteEffectModel polSourceSiteEffectModelAlreadyExist = polSourceSiteEffectService.GetPolSourceSiteEffectModelWithPolSourceSiteOrInfrastructureTVItemIDAndMWQMSiteTVItemIDDB(InfraTVItemID, tvItemMWQMSite.TVItemID);
                                    if (!string.IsNullOrWhiteSpace(polSourceSiteEffectModelAlreadyExist.Error))
                                    {
                                        PolSourceSiteEffectModel polSourceSiteEffectModelRet = polSourceSiteEffectService.PostAddPolSourceSiteEffectDB(polSourceSiteEffectModelNew);
                                        if (!string.IsNullOrWhiteSpace(polSourceSiteEffectModelRet.Error))
                                        {
                                            NotUsed = string.Format(TaskRunnerServiceRes.CouldNotAdd_Error_, TaskRunnerServiceRes.PolSourceSiteEffect, polSourceSiteEffectModelRet.Error);
                                            _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotAdd_Error_", TaskRunnerServiceRes.PolSourceSiteEffect, polSourceSiteEffectModelRet.Error);
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            foreach (PolSourceSiteEffect polSourceSiteEffect in existingPolSourceSiteEffectSubsectorList)
            {
                if (!newPolSourceSiteEffectSubsectorList.Where(c => c.PolSourceSiteOrInfrastructureTVItemID == polSourceSiteEffect.PolSourceSiteOrInfrastructureTVItemID &&
                                                               c.MWQMSiteTVItemID == polSourceSiteEffect.MWQMSiteTVItemID).Any())
                {
                    PolSourceSiteEffectModel polSourceSiteEffectModelAlreadyExist = polSourceSiteEffectService.GetPolSourceSiteEffectModelWithPolSourceSiteOrInfrastructureTVItemIDAndMWQMSiteTVItemIDDB(polSourceSiteEffect.PolSourceSiteOrInfrastructureTVItemID, polSourceSiteEffect.MWQMSiteTVItemID);
                    if (string.IsNullOrWhiteSpace(polSourceSiteEffectModelAlreadyExist.Error))
                    {
                        PolSourceSiteEffectModel polSourceSiteEffectModelRet = polSourceSiteEffectService.PostDeletePolSourceSiteEffectDB(polSourceSiteEffectModelAlreadyExist.PolSourceSiteEffectID);
                        if (!string.IsNullOrWhiteSpace(polSourceSiteEffectModelRet.Error))
                        {
                            NotUsed = string.Format(TaskRunnerServiceRes.CouldNotDelete_Error_, TaskRunnerServiceRes.PolSourceSiteEffect, polSourceSiteEffectModelRet.Error);
                            _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat2List("CouldNotDelete_Error_", TaskRunnerServiceRes.PolSourceSiteEffect, polSourceSiteEffectModelRet.Error);
                            return;
                        }
                    }
                }
            }

            #endregion Saving PolSourceSiteEffect in CSSPDB

            appTaskModel.PercentCompleted = 100;
            appTaskService.PostUpdateAppTask(appTaskModel);
        }
Example #28
0
        public void Generate(FileInfo fi)
        {
            string NotUsed = "";

            TVItemService  tvItemService  = new TVItemService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);
            MapInfoService mapInfoService = new MapInfoService(_TaskRunnerBaseService._BWObj.appTaskModel.Language, _TaskRunnerBaseService._User);

            if (_TaskRunnerBaseService._BWObj.appTaskModel.Language == "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();
            }

            MWQMPlanModel mwqmPlanModel = _MWQMPlanService.GetMWQMPlanModelWithMWQMPlanIDDB(_TaskRunnerBaseService._BWObj.MWQMPlanID);

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

            StringBuilder sbKMZ = new StringBuilder();

            sbKMZ.AppendLine(@"<?xml version=""1.0"" encoding=""UTF-8""?>");
            sbKMZ.AppendLine(@"<kml xmlns=""http://www.opengis.net/kml/2.2"" xmlns:gx=""http://www.google.com/kml/ext/2.2"" xmlns:kml=""http://www.opengis.net/kml/2.2"" xmlns:atom=""http://www.w3.org/2005/Atom"">");
            sbKMZ.AppendLine(@"<Document>");
            sbKMZ.AppendLine(@"	<name>KmlFile</name>");
            sbKMZ.AppendLine(@"	<StyleMap id=""msn_ylw-pushpin1"">");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>normal</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sn_ylw-pushpin1</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>highlight</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sh_ylw-pushpin1</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"	</StyleMap>");
            sbKMZ.AppendLine(@"	<Style id=""sn_ylw-pushpin"">");
            sbKMZ.AppendLine(@"		<IconStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<scale>1.1</scale>");
            sbKMZ.AppendLine(@"			<Icon>");
            sbKMZ.AppendLine(@"				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>");
            sbKMZ.AppendLine(@"			</Icon>");
            sbKMZ.AppendLine(@"			<hotSpot x=""20"" y=""2"" xunits=""pixels"" yunits=""pixels""/>");
            sbKMZ.AppendLine(@"		</IconStyle>");
            sbKMZ.AppendLine(@"		<LabelStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"		</LabelStyle>");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<fill>0</fill>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");
            sbKMZ.AppendLine(@"	<Style id=""sn_ylw-pushpin0"">");
            sbKMZ.AppendLine(@"		<IconStyle>");
            sbKMZ.AppendLine(@"			<scale>1.1</scale>");
            sbKMZ.AppendLine(@"			<Icon>");
            sbKMZ.AppendLine(@"				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>");
            sbKMZ.AppendLine(@"			</Icon>");
            sbKMZ.AppendLine(@"			<hotSpot x=""20"" y=""2"" xunits=""pixels"" yunits=""pixels""/>");
            sbKMZ.AppendLine(@"		</IconStyle>");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff0000ff</color>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>ff0000ff</color>");
            sbKMZ.AppendLine(@"			<fill>0</fill>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");
            sbKMZ.AppendLine(@"	<StyleMap id=""msn_ylw-pushpin10"">");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>normal</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sn_ylw-pushpin0</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>highlight</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sh_ylw-pushpin0</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"	</StyleMap>");
            sbKMZ.AppendLine(@"	<Style id=""sh_ylw-pushpin"">");
            sbKMZ.AppendLine(@"		<IconStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<scale>1.3</scale>");
            sbKMZ.AppendLine(@"			<Icon>");
            sbKMZ.AppendLine(@"				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>");
            sbKMZ.AppendLine(@"			</Icon>");
            sbKMZ.AppendLine(@"			<hotSpot x=""20"" y=""2"" xunits=""pixels"" yunits=""pixels""/>");
            sbKMZ.AppendLine(@"		</IconStyle>");
            sbKMZ.AppendLine(@"		<LabelStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"		</LabelStyle>");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<fill>0</fill>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");
            sbKMZ.AppendLine(@"	<Style id=""sh_ylw-pushpin0"">");
            sbKMZ.AppendLine(@"		<IconStyle>");
            sbKMZ.AppendLine(@"			<scale>1.3</scale>");
            sbKMZ.AppendLine(@"			<Icon>");
            sbKMZ.AppendLine(@"				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>");
            sbKMZ.AppendLine(@"			</Icon>");
            sbKMZ.AppendLine(@"			<hotSpot x=""20"" y=""2"" xunits=""pixels"" yunits=""pixels""/>");
            sbKMZ.AppendLine(@"		</IconStyle>");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff0000ff</color>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>ff0000ff</color>");
            sbKMZ.AppendLine(@"			<fill>0</fill>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");
            sbKMZ.AppendLine(@"	<Style id=""sh_ylw-pushpin1"">");
            sbKMZ.AppendLine(@"		<IconStyle>");
            sbKMZ.AppendLine(@"			<scale>1.3</scale>");
            sbKMZ.AppendLine(@"			<Icon>");
            sbKMZ.AppendLine(@"				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>");
            sbKMZ.AppendLine(@"			</Icon>");
            sbKMZ.AppendLine(@"			<hotSpot x=""20"" y=""2"" xunits=""pixels"" yunits=""pixels""/>");
            sbKMZ.AppendLine(@"		</IconStyle>");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<fill>0</fill>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");
            sbKMZ.AppendLine(@"	<Style id=""sn_ylw-pushpin1"">");
            sbKMZ.AppendLine(@"		<IconStyle>");
            sbKMZ.AppendLine(@"			<scale>1.1</scale>");
            sbKMZ.AppendLine(@"			<Icon>");
            sbKMZ.AppendLine(@"				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>");
            sbKMZ.AppendLine(@"			</Icon>");
            sbKMZ.AppendLine(@"			<hotSpot x=""20"" y=""2"" xunits=""pixels"" yunits=""pixels""/>");
            sbKMZ.AppendLine(@"		</IconStyle>");
            sbKMZ.AppendLine(@"		<LineStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"		</LineStyle>");
            sbKMZ.AppendLine(@"		<PolyStyle>");
            sbKMZ.AppendLine(@"			<color>ff00ff00</color>");
            sbKMZ.AppendLine(@"			<fill>0</fill>");
            sbKMZ.AppendLine(@"		</PolyStyle>");
            sbKMZ.AppendLine(@"	</Style>");
            sbKMZ.AppendLine(@"	<StyleMap id=""msn_ylw-pushpin11"">");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>normal</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sn_ylw-pushpin</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"		<Pair>");
            sbKMZ.AppendLine(@"			<key>highlight</key>");
            sbKMZ.AppendLine(@"			<styleUrl>#sh_ylw-pushpin</styleUrl>");
            sbKMZ.AppendLine(@"		</Pair>");
            sbKMZ.AppendLine(@"	</StyleMap>");

            sbKMZ.AppendLine(@"	<Folder>");
            sbKMZ.AppendLine(@"		<name>"+ mwqmPlanModel.ConfigFileName.Replace(".txt", ".kmz") + "</name>");
            sbKMZ.AppendLine(@"		<open>1</open>");

            List <MWQMPlanSubsectorModel> mwqmPlanSubsectorModelList = _MWQMPlanSubsectorService.GetMWQMPlanSubsectorModelListWithMWQMPlanIDDB(_TaskRunnerBaseService._BWObj.MWQMPlanID);

            foreach (MWQMPlanSubsectorModel MWQMPlanSubsectorModel in mwqmPlanSubsectorModelList)
            {
                sbKMZ.AppendLine(@"		<Folder>");
                sbKMZ.AppendLine(@"			<name>"+ MWQMPlanSubsectorModel.SubsectorTVText + "</name>");
                sbKMZ.AppendLine(@"			<open>1</open>");
                sbKMZ.AppendLine(@"			<Placemark>");
                sbKMZ.AppendLine(@"				<name>Poly</name>");
                sbKMZ.AppendLine(@"				<styleUrl>#msn_ylw-pushpin10</styleUrl>");
                sbKMZ.AppendLine(@"				<Polygon>");
                sbKMZ.AppendLine(@"					<tessellate>1</tessellate>");
                sbKMZ.AppendLine(@"					<outerBoundaryIs>");
                sbKMZ.AppendLine(@"						<LinearRing>");
                sbKMZ.AppendLine(@"							<coordinates>");

                List <MapInfoPointModel> mapInfoPointModelList = _MapInfoService._MapInfoPointService.GetMapInfoPointModelListWithTVItemIDAndTVTypeAndMapInfoDrawTypeDB(MWQMPlanSubsectorModel.SubsectorTVItemID, TVTypeEnum.Subsector, MapInfoDrawTypeEnum.Polygon);

                foreach (MapInfoPointModel mapInfoPointModel in mapInfoPointModelList)
                {
                    sbKMZ.Append(mapInfoPointModel.Lng + "," + mapInfoPointModel.Lat + ",0 ");
                }
                sbKMZ.AppendLine("");
                sbKMZ.AppendLine(@"							</coordinates>");
                sbKMZ.AppendLine(@"						</LinearRing>");
                sbKMZ.AppendLine(@"					</outerBoundaryIs>");
                sbKMZ.AppendLine(@"				</Polygon>");
                sbKMZ.AppendLine(@"			</Placemark>");

                mapInfoPointModelList = _MapInfoService._MapInfoPointService.GetMapInfoPointModelListWithTVItemIDAndTVTypeAndMapInfoDrawTypeDB(MWQMPlanSubsectorModel.SubsectorTVItemID, TVTypeEnum.Subsector, MapInfoDrawTypeEnum.Point);

                if (mapInfoPointModelList.Count > 0)
                {
                    sbKMZ.AppendLine(@"			<Placemark>");
                    sbKMZ.AppendLine(@"				<name>"+ MWQMPlanSubsectorModel.SubsectorTVText + "</name>");
                    sbKMZ.AppendLine(@"				<styleUrl>#msn_ylw-pushpin1</styleUrl>");
                    sbKMZ.AppendLine(@"				<Point>");
                    sbKMZ.AppendLine(@"					<coordinates>"+ mapInfoPointModelList[0].Lng + "," + mapInfoPointModelList[0].Lat + ",0</coordinates>");
                    sbKMZ.AppendLine(@"				</Point>");
                    sbKMZ.AppendLine(@"			</Placemark>");
                }

                List <MWQMPlanSubsectorSiteModel> mwqmPlanSubsectorSiteModelList = _MWQMPlanSubsectorSiteService.GetMWQMPlanSubsectorSiteModelListWithMWQMPlanSubsectorIDDB(MWQMPlanSubsectorModel.MWQMPlanSubsectorID);

                sbKMZ.AppendLine(@"			<Folder>");
                sbKMZ.AppendLine(@"				<name>MWQMSites</name>");
                sbKMZ.AppendLine(@"				<open>1</open>");

                foreach (MWQMPlanSubsectorSiteModel MWQMPlanSubsectorSiteModel in mwqmPlanSubsectorSiteModelList)
                {
                    mapInfoPointModelList = _MapInfoService._MapInfoPointService.GetMapInfoPointModelListWithTVItemIDAndTVTypeAndMapInfoDrawTypeDB(MWQMPlanSubsectorSiteModel.MWQMSiteTVItemID, TVTypeEnum.MWQMSite, MapInfoDrawTypeEnum.Point);
                    if (mapInfoPointModelList.Count > 0)
                    {
                        sbKMZ.AppendLine(@"    			<Placemark>");
                        sbKMZ.AppendLine(@"    				<name>"+ MWQMPlanSubsectorSiteModel.MWQMSiteText + "</name>");
                        sbKMZ.AppendLine(@"    				<styleUrl>#msn_ylw-pushpin11</styleUrl>");
                        sbKMZ.AppendLine(@"    				<Point>");
                        sbKMZ.AppendLine(@"    					<coordinates>"+ mapInfoPointModelList[0].Lng + "," + mapInfoPointModelList[0].Lat + ",0</coordinates>");
                        sbKMZ.AppendLine(@"    				</Point>");
                        sbKMZ.AppendLine(@"    			</Placemark>");
                    }
                }
                sbKMZ.AppendLine(@"			</Folder>");
                sbKMZ.AppendLine(@"		</Folder>");
            }
            sbKMZ.AppendLine(@"	</Folder>");
            sbKMZ.AppendLine(@"</Document>");
            sbKMZ.AppendLine(@"</kml>");

            StreamWriter sw = fi.CreateText();

            sw.Write(sbKMZ.ToString());
            sw.Close();

            //string KMLFileName = fi.FullName;
            //string KMZFileName = fi.FullName.Replace(".kml", ".kmz");

            //// make sure directory exist if not create it
            //di = new DirectoryInfo(KMZFileName.Substring(0, KMZFileName.LastIndexOf("\\")));
            //if (!di.Exists)
            //    di.Create();

            //ProcessStartInfo pZip = new ProcessStartInfo();
            //pZip.Arguments = "a -tzip \"" + KMZFileName + "\" \"" + KMLFileName + "\"";
            //pZip.RedirectStandardInput = true;
            //pZip.UseShellExecute = false;
            //pZip.CreateNoWindow = true;
            //pZip.WindowStyle = ProcessWindowStyle.Hidden;

            //Process processZip = new Process();
            //processZip.StartInfo = pZip;
            //try
            //{
            //    pZip.FileName = @"C:\Program Files\7-Zip\7z.exe";
            //    processZip.Start();
            //}
            //catch (Exception ex)
            //{
            //    NotUsed = string.Format(TaskRunnerServiceRes.CompressKMLDidNotWorkWith7zError_, ex.Message);
            //    _TaskRunnerBaseService._BWObj.TextLanguageList = _TaskRunnerBaseService.GetTextLanguageFormat1List("CompressKMLDidNotWorkWith7zError_", ex.Message);
            //    return;
            //}

            //while (!processZip.HasExited)
            //{
            //    // waiting for the processZip to finish then continue
            //}

            //File.Delete(KMLFileName);
        }
        public void TVFile_Controller_GetTVFileList_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    TVFileController tvFileController = new TVFileController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(tvFileController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, tvFileController.DatabaseType);

                    TVFile tvFileFirst = new TVFile();
                    int    count       = -1;
                    Query  query       = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        TVFileService tvFileService = new TVFileService(query, db, ContactID);
                        tvFileFirst = (from c in db.TVFiles select c).FirstOrDefault();
                        count       = (from c in db.TVFiles select c).Count();
                        count       = (query.Take > count ? count : query.Take);
                    }

                    // ok with TVFile info
                    IHttpActionResult jsonRet = tvFileController.GetTVFileList();
                    Assert.IsNotNull(jsonRet);

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

                    List <TVFile> tvFileList = new List <TVFile>();
                    count = -1;
                    query = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        TVFileService tvFileService = new TVFileService(query, db, ContactID);
                        tvFileList = (from c in db.TVFiles select c).OrderBy(c => c.TVFileID).Skip(0).Take(2).ToList();
                        count      = (from c in db.TVFiles select c).Count();
                    }

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

                        // ok with TVFile info
                        jsonRet = tvFileController.GetTVFileList(query.Language.ToString(), query.Skip, query.Take);
                        Assert.IsNotNull(jsonRet);

                        ret = jsonRet as OkNegotiatedContentResult <List <TVFile> >;
                        Assert.AreEqual(tvFileList[0].TVFileID, ret.Content[0].TVFileID);
                        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 TVFile info
                            IHttpActionResult jsonRet2 = tvFileController.GetTVFileList(query.Language.ToString(), query.Skip, query.Take);
                            Assert.IsNotNull(jsonRet2);

                            OkNegotiatedContentResult <List <TVFile> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <TVFile> >;
                            Assert.AreEqual(tvFileList[1].TVFileID, ret2.Content[0].TVFileID);
                            Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count);
                        }
                    }
                }
            }
        }
        public void TVFile_Controller_Post_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    TVFileController tvFileController = new TVFileController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(tvFileController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, tvFileController.DatabaseType);

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

                        TVFileService tvFileService = new TVFileService(query, db, ContactID);
                        tvFileLast = (from c in db.TVFiles select c).FirstOrDefault();
                    }

                    // ok with TVFile info
                    IHttpActionResult jsonRet = tvFileController.GetTVFileWithID(tvFileLast.TVFileID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <TVFile> Ret = jsonRet as OkNegotiatedContentResult <TVFile>;
                    TVFile tvFileRet = Ret.Content;
                    Assert.AreEqual(tvFileLast.TVFileID, tvFileRet.TVFileID);

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

                    // Post to return CSSPError because TVFileID exist
                    IHttpActionResult jsonRet2 = tvFileController.Post(tvFileRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <TVFile> tvFileRet2 = jsonRet2 as OkNegotiatedContentResult <TVFile>;
                    Assert.IsNull(tvFileRet2);

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

                    // Post to return newly added TVFile
                    tvFileRet.TVFileID                  = 0;
                    tvFileController.Request            = new System.Net.Http.HttpRequestMessage();
                    tvFileController.Request.RequestUri = new System.Uri("http://localhost:5000/api/tvFile");
                    IHttpActionResult jsonRet3 = tvFileController.Post(tvFileRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    CreatedNegotiatedContentResult <TVFile> tvFileRet3 = jsonRet3 as CreatedNegotiatedContentResult <TVFile>;
                    Assert.IsNotNull(tvFileRet3);

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

                    IHttpActionResult jsonRet4 = tvFileController.Delete(tvFileRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet4);

                    OkNegotiatedContentResult <TVFile> tvFileRet4 = jsonRet4 as OkNegotiatedContentResult <TVFile>;
                    Assert.IsNotNull(tvFileRet4);

                    BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest4);
                }
            }
        }