コード例 #1
0
 public void Include(EntityData otherData)
 {
     Alerts.AddRange(otherData.Alerts);
     EmailAlertRecipients.AddRange(otherData.EmailAlertRecipients);
     SmsAlertRecipients.AddRange(otherData.SmsAlertRecipients);
     AlertReports.AddRange(otherData.AlertReports);
     AlertRules.AddRange(otherData.AlertRules);
     ApplicationLanguages.AddRange(otherData.ApplicationLanguages);
     ContentLanguages.AddRange(otherData.ContentLanguages);
     Countries.AddRange(otherData.Countries);
     DataCollectors.AddRange(otherData.DataCollectors);
     Districts.AddRange(otherData.Districts);
     GatewaySettings.AddRange(otherData.GatewaySettings);
     HeadManagerConsents.AddRange(otherData.HeadManagerConsents);
     HealthRisks.AddRange(otherData.HealthRisks);
     HealthRiskLanguageContents.AddRange(otherData.HealthRiskLanguageContents);
     Localizations.AddRange(otherData.Localizations);
     LocalizedTemplates.AddRange(otherData.LocalizedTemplates);
     NationalSocieties.AddRange(otherData.NationalSocieties);
     Notifications.AddRange(otherData.Notifications);
     Projects.AddRange(otherData.Projects);
     SupervisorUserProjects.AddRange(otherData.SupervisorUserProjects);
     ProjectHealthRisks.AddRange(otherData.ProjectHealthRisks);
     RawReports.AddRange(otherData.RawReports);
     Regions.AddRange(otherData.Regions);
     Reports.AddRange(otherData.Reports);
     Users.AddRange(otherData.Users);
     UserNationalSocieties.AddRange(otherData.UserNationalSocieties);
     Villages.AddRange(otherData.Villages);
     Zones.AddRange(otherData.Zones);
 }
コード例 #2
0
        private void CheckUser()
        {
            StivLibrary.DataCollectors SDC = new DataCollectors();

            string username = Job2Do.TaskOptions;
            string domain   = Environment.UserDomainName;


            GV.CurrentActionForLog = "Checking status of user " + Job2Do.TaskOptions + " on " + domain;
            var chekker = SDC.ADGetObjectDistinguishedName("user", "distinguishedName", username, domain);

            GV.CurrentActionForLog = "Get Distinguished Object = " + chekker;


            if (SDC.ADObjectExists(@"users\stivo"))
            {
                GV.CurrentActionForLog = "Found user: "******"Did not find " + Job2Do.TaskOptions;
            }



            Job2Do.timecompleted   = DateTime.Now;
            Job2Do.TaskStatusColor = "Green";
            Job2Do.taskdetails.Add("Get Object DN", chekker);
        }
コード例 #3
0
        private void CheckLocalUpdates_Click(object sender, RoutedEventArgs e)
        {
            StivLibrary.DataCollectors DC = new DataCollectors();
            var    goobtash = DC.ListUninstalledUpdates();
            string result   = "";

            foreach (KeyValuePair <string, List <string> > disone in goobtash)
            {
                result = disone.Key;
            }
            MessageBox.Show(result);
        }
コード例 #4
0
        public INyssContext GetNyssContextMock()
        {
            var nyssContextMock = Substitute.For <INyssContext>();

            var nationalSocietiesDbSet  = NationalSocieties.AsQueryable().BuildMockDbSet();
            var healthRisksDbSet        = HealthRisks.AsQueryable().BuildMockDbSet();
            var alertRulesDbSet         = AlertRules.AsQueryable().BuildMockDbSet();
            var projectsDbSet           = Projects.AsQueryable().BuildMockDbSet();
            var projectHealthRisksDbSet = ProjectHealthRisks.AsQueryable().BuildMockDbSet();
            var dataCollectorsDbSet     = DataCollectors.AsQueryable().BuildMockDbSet();
            var reportsDbSet            = Reports.AsQueryable().BuildMockDbSet();
            var rawReportsDbSet         = RawReports.AsQueryable().BuildMockDbSet();
            var usersDbSet = Users.AsQueryable().BuildMockDbSet();
            var supervisorUserProjectsDbSet = SupervisorUserProjects.AsQueryable().BuildMockDbSet();
            var userNationalSocietiesDbSet  = UserNationalSocieties.AsQueryable().BuildMockDbSet();
            var regionsDbSet   = Regions.AsQueryable().BuildMockDbSet();
            var districtsDbSet = Districts.AsQueryable().BuildMockDbSet();
            var villagesDbSet  = Villages.AsQueryable().BuildMockDbSet();
            var zonesDbSet     = Zones.AsQueryable().BuildMockDbSet();
            var alertsDbSet    = Alerts.AsQueryable().BuildMockDbSet();

            nyssContextMock.NationalSocieties.Returns(nationalSocietiesDbSet);
            nyssContextMock.HealthRisks.Returns(healthRisksDbSet);
            nyssContextMock.AlertRules.Returns(alertRulesDbSet);
            nyssContextMock.Projects.Returns(projectsDbSet);
            nyssContextMock.ProjectHealthRisks.Returns(projectHealthRisksDbSet);
            nyssContextMock.DataCollectors.Returns(dataCollectorsDbSet);
            nyssContextMock.Reports.Returns(reportsDbSet);
            nyssContextMock.RawReports.Returns(rawReportsDbSet);
            nyssContextMock.Users.Returns(usersDbSet);
            nyssContextMock.SupervisorUserProjects.Returns(supervisorUserProjectsDbSet);
            nyssContextMock.UserNationalSocieties.Returns(userNationalSocietiesDbSet);
            nyssContextMock.Regions.Returns(regionsDbSet);
            nyssContextMock.Districts.Returns(districtsDbSet);
            nyssContextMock.Villages.Returns(villagesDbSet);
            nyssContextMock.Zones.Returns(zonesDbSet);
            nyssContextMock.Alerts.Returns(alertsDbSet);

            return(nyssContextMock);
        }
コード例 #5
0
        public void StartWorking()
        {
            StivLibrary.DataCollectors DC = new DataCollectors();
            Job2Do.status          = "Executing";
            Job2Do.TaskStatusColor = "Yellow";
            Job2Do.timeexecuted    = DateTime.Now;
            //NetTcpBinding bindbert = new NetTcpBinding();
            //bindbert.Security.Mode = SecurityMode.None;
            //var ConsoleContract = new ChannelFactory<TaskConsoleWCFService.ContractDefinition>(bindbert);
            //var ConsoleService = ConsoleContract.CreateChannel(new EndpointAddress(GV.ConsoleEndPoint));
            try//
            {
                NotifyConsole();
            }
            catch (Exception ex)//How do we handle failed commands?   Later investigation.
            {
                string erp       = ex.ToString();
                string Error2log = "Worker croaked over trying to hit the service endpoint. /n";
                Error2log += "Command to execute: " + Job2Do.Taskname;
                GV.CurrentActionForLog = Error2log;
            }

            switch (Job2Do.Taskname)
            {
            case "GetUninstalledUpdates":
                GetUnInstalledUpdates();
                break;

            case "AdminService-Stop":
            case "AdminService-Start":
            case "AdminService-Restart":
                AdminService();
                break;

            case "CheckUser":
                CheckUser();
                break;

            case "IIS-Stop":
                ExecuteCommandline("iisreset -stop");
                break;

            case "IIS-Start":
                ExecuteCommandline("iisreset -start");
                break;

            case "IIS-Reset":
                ExecuteCommandline("iisreset");
                break;

            case "WSUSCheck-in":
                ExecuteCommandline("wuaclt /detectnow /reportnow");
                break;

            case "Restart":
                ExecuteCommandline("shutdown.exe /r /t 20");
                break;

            case "Terminate":
                GV.Whackme = true;
                break;

            case "ParseEvents":
                ParseEventLog();
                break;

            case "LastDump":
                LastDump();
                break;

            case "CertChains":
                CertChains();
                break;

            case "FindPrivate":
                FindPrivate();
                break;

            default:
                GV.CurrentActionForLog = "Recieved an task we dont know how to handle " + Job2Do.Taskname;


                Job2Do.TaskStatusColor = "Red";
                Job2Do.status          = "Execution: Failed";
                Job2Do.taskdetails.Add("Did not recognize task:", Job2Do.Taskname);
                break;
            }
            NotifyConsole();
        }
コード例 #6
0
        public void Listener()// A Thread that runs and polls for commands from server. Process commands and return results

        {
            StivLibrary.DataCollectors SDC = new DataCollectors();
            ThreadClass TC = new ThreadClass();


            string strHostName = "";

            strHostName = System.Net.Dns.GetHostName();
            IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);

            IPAddress[] addr = ipEntry.AddressList;



            NetTcpBinding bindbert = new NetTcpBinding();

            bindbert.Security.Mode = SecurityMode.None;
            var ConsoleContract = new ChannelFactory <TaskConsoleWCFService.ContractDefinition>(bindbert);
            var ConsoleService  = ConsoleContract.CreateChannel(new EndpointAddress(GV.ConsoleEndPoint));

            try//Just a quick test to make sure the server responds....
            {
                string getthread = ConsoleService.GetThreadData();
            }
            catch
            {
                GV.CurrentActionForLog         = "Listener croaked over trying to hit the service endpoint. \n";
                GV.Whackme                     = true;
                GV.ServerCommunicationReceived = DateTime.Now;
            }



            while (!GV.Whackme)
            {
                try
                {
                    TaskConsoleWCFService.Jobber myjob = ConsoleService.GetJob(Dns.GetHostName(), SDC.GetHostIP(Dns.GetHostName()));

                    GV.ServerCommunicationReceived = DateTime.Now;

                    //  Here is where we need to process any recieved jobs.
                    if (myjob.Taskname.Equals("No jobs for joo!"))
                    {
                        if (GV.Verbose)
                        {
                            GV.CurrentActionForLog = "No new jobs for me at: " + GV.ConsoleEndPoint;
                        }
                    }
                    else
                    {
                        myjob.timerecieved = DateTime.Now;
                        myjob.status       = "Recieved";
                        ConsoleService.UpdateJob(myjob);

                        GV.Tasklist.Add(myjob.ThisTaskGuid, myjob);
                        GV.CurrentActionForLog = "Recieved new job " + myjob.Taskname;

                        LeWorker Lew = new LeWorker();
                        Lew.Job2Do = myjob;
                        Thread Wthread = new Thread(new ThreadStart(Lew.StartWorking));
                        Wthread.IsBackground = true;
                        Wthread.Name         = "StivAgent Worker Thread";
                        Wthread.Start();
                    }



                    //GV.CurrentActionForLog = ConsoleService.GetArgsToPass().ToString();
                }
                catch
                {
                    GV.CurrentActionForLog = "Lost communication to Console!";
                    GV.Whackme             = true;
                }


                Thread.Sleep(5000); //5 Second wait to poll.
            }
        }
コード例 #7
0
        private void GenerateDataCollectorsWithReports()
        {
            var numberOfDataCollectors           = 17;
            var numberOfHumanDataCollectors      = 10;
            var numberOfDataCollectionPoints     = 6;
            var humansStartIndex                 = 0;
            var collectionPointsStartIndex       = numberOfHumanDataCollectors;
            var numberOfTrainingHumans           = 2;
            var numberOfTrainingCollectionPoints = 2;
            var numberOfReports      = (numberOfDataCollectors - 1) * 2;
            var numberOfErrorReports = 2;


            DataCollectors = Enumerable.Range(1, numberOfDataCollectors)
                             .Select(i => new DataCollector
            {
                Id                = i,
                Project           = Projects[0],
                Supervisor        = (SupervisorUser)Users[0],
                DataCollectorType = DataCollectorType.Human,
                IsInTrainingMode  = false,
                Reports           = new List <Report>(),
                RawReports        = new List <RawReport>(),
                Zone              = i == numberOfDataCollectors
                        ? Zones[i - 2]
                        : Zones[i - 1],
                Village = i == numberOfDataCollectors
                        ? Zones[i - 2].Village
                        : Zones[i - 1].Village
            })
                             .ToList();

            DataCollectors.GetRange(collectionPointsStartIndex, numberOfDataCollectionPoints).ForEach(dc => dc.DataCollectorType = DataCollectorType.CollectionPoint);
            DataCollectors.GetRange(humansStartIndex, numberOfTrainingHumans).ForEach(dc => dc.IsInTrainingMode = true);
            DataCollectors.GetRange(collectionPointsStartIndex, numberOfTrainingCollectionPoints).ForEach(dc => dc.IsInTrainingMode = true);

            Reports = Enumerable.Range(1, numberOfReports)
                      .Select(i => new Report
            {
                Id            = i,
                DataCollector = DataCollectors[(i - 1) / 2],
                Status        = ReportStatus.New
            })
                      .ToList();

            Reports.ForEach(r =>
            {
                r.IsTraining        = r.DataCollector.IsInTrainingMode;
                r.CreatedAt         = BaseDate.AddDays(r.Id - 1);
                r.ReceivedAt        = r.CreatedAt;
                r.EpiWeek           = _dateTimeProvider.GetEpiDate(r.CreatedAt).EpiWeek;
                r.EpiYear           = _dateTimeProvider.GetEpiDate(r.CreatedAt).EpiYear;
                r.ProjectHealthRisk = ProjectHealthRisks[(r.Id - 1) % 3 == 0
                    ? 0
                    : 1];
                r.RawReport = new RawReport
                {
                    Id              = r.Id,
                    DataCollector   = r.DataCollector,
                    NationalSociety = NationalSocieties[0],
                    IsTraining      = r.IsTraining,
                    Village         = r.DataCollector.Village,
                    Zone            = r.DataCollector.Zone,
                    Report          = r
                };

                r.DataCollector.Reports.Add(r);
                r.ProjectHealthRisk.Reports.Add(r);
            });

            Reports.Where(r => r.DataCollector.DataCollectorType == DataCollectorType.Human).ToList()
            .ForEach(r =>
            {
                r.ReportedCaseCount = (r.Id % 4) switch
                {
                    0 => 1,
                    1 => 1,
                    2 => 1,
                    3 => 1,
                    _ => (r.ReportedCase.CountMalesBelowFive ?? 0) + (r.ReportedCase.CountFemalesAtLeastFive ?? 0) + (r.ReportedCase.CountFemalesBelowFive ?? 0) +
                    (r.ReportedCase.CountMalesAtLeastFive ?? 0) + (r.DataCollectionPointCase.DeathCount ?? 0) + (r.DataCollectionPointCase.FromOtherVillagesCount ?? 0) +
                    (r.DataCollectionPointCase.ReferredCount ?? 0)
                };

                r.ReportedCase = (r.Id % 4) switch
                {
                    0 => new ReportCase
                    {
                        CountMalesBelowFive     = 1,
                        CountMalesAtLeastFive   = 0,
                        CountFemalesBelowFive   = 0,
                        CountFemalesAtLeastFive = 0
                    },
                    1 => new ReportCase
                    {
                        CountMalesAtLeastFive   = 1,
                        CountFemalesBelowFive   = 0,
                        CountFemalesAtLeastFive = 0,
                        CountMalesBelowFive     = 0
                    },
                    2 => new ReportCase
                    {
                        CountFemalesBelowFive   = 1,
                        CountMalesBelowFive     = 0,
                        CountMalesAtLeastFive   = 0,
                        CountFemalesAtLeastFive = 0
                    },
                    3 => new ReportCase
                    {
                        CountFemalesAtLeastFive = 1,
                        CountMalesBelowFive     = 0,
                        CountFemalesBelowFive   = 0,
                        CountMalesAtLeastFive   = 0
                    },
                    _ => r.ReportedCase
                };
            });

            var test = Reports.Where(r => r.DataCollector.DataCollectorType == DataCollectorType.CollectionPoint).ToList();

            Reports.Where(r => r.DataCollector.DataCollectorType == DataCollectorType.CollectionPoint).ToList()
            .ForEach(r =>
            {
                r.ReportType   = ReportType.DataCollectionPoint;
                r.ReportedCase = (r.Id % 4) switch
                {
                    0 => new ReportCase
                    {
                        CountMalesBelowFive     = 1,
                        CountMalesAtLeastFive   = 0,
                        CountFemalesBelowFive   = 0,
                        CountFemalesAtLeastFive = 0
                    },
                    1 => new ReportCase
                    {
                        CountMalesAtLeastFive   = 1,
                        CountFemalesBelowFive   = 0,
                        CountFemalesAtLeastFive = 0,
                        CountMalesBelowFive     = 0
                    },
                    2 => new ReportCase
                    {
                        CountFemalesBelowFive   = 1,
                        CountMalesBelowFive     = 0,
                        CountMalesAtLeastFive   = 0,
                        CountFemalesAtLeastFive = 0
                    },
                    3 => new ReportCase
                    {
                        CountFemalesAtLeastFive = 1,
                        CountMalesBelowFive     = 0,
                        CountFemalesBelowFive   = 0,
                        CountMalesAtLeastFive   = 0
                    },
                    _ => r.ReportedCase
                };

                r.DataCollectionPointCase = (r.Id % 3) switch
                {
                    0 => new DataCollectionPointCase
                    {
                        FromOtherVillagesCount = 1,
                        ReferredCount          = 0,
                        DeathCount             = 0
                    },
                    1 => new DataCollectionPointCase
                    {
                        ReferredCount          = 1,
                        FromOtherVillagesCount = 0,
                        DeathCount             = 0
                    },
                    2 => new DataCollectionPointCase
                    {
                        DeathCount             = 1,
                        FromOtherVillagesCount = 0,
                        ReferredCount          = 0
                    },
                    _ => r.DataCollectionPointCase
                };

                r.ReportedCaseCount = (r.Id % 4) switch
                {
                    0 => 1,
                    1 => 1,
                    2 => 1,
                    3 => 1,
                    _ => (r.ReportedCase.CountMalesBelowFive ?? 0) + (r.ReportedCase.CountFemalesAtLeastFive ?? 0) + (r.ReportedCase.CountFemalesBelowFive ?? 0) +
                    (r.ReportedCase.CountMalesAtLeastFive ?? 0) + (r.DataCollectionPointCase.DeathCount ?? 0) + (r.DataCollectionPointCase.FromOtherVillagesCount ?? 0) +
                    (r.DataCollectionPointCase.ReferredCount ?? 0)
                };
            });

            RawReports = new List <RawReport>();
            Reports.ForEach(r =>
            {
                var rawReport = new RawReport
                {
                    Id            = r.Id,
                    DataCollector = r.DataCollector,
                    ReceivedAt    = r.ReceivedAt,
                    IsTraining    = r.IsTraining,
                    Report        = r
                };
                RawReports.Add(rawReport);
            });

            var errorReports = Enumerable.Range(1, numberOfErrorReports)
                               .Select(i => new RawReport
            {
                Id            = i + numberOfReports,
                DataCollector = DataCollectors[DataCollectors.Count - 1],
                ReceivedAt    = BaseDate.AddDays(i - 1),
                IsTraining    = false
            }).ToList();

            RawReports.AddRange(errorReports);

            RawReports.ForEach(r => r.DataCollector.RawReports.Add(r));
        }