public CheckinSetting GetPoliciesToExecute() { var checkin = GetPolicies(_triggerType); foreach (var policy in checkin.Policies) { switch (policy.Scope) { case "Computer": var policyHistory = _policyHistoryServices.GetLastPolicyRun(policy.Hash); switch (policy.Frequeny) { case (int)EnumPolicyInterval.Frequency.Ongoing: _policiesToRun.Add(policy); break; case (int)EnumPolicyInterval.Frequency.OncePerComputer: OncePerComputer(policy, policyHistory); break; case (int)EnumPolicyInterval.Frequency.OncePerDay: OncePerDay(policy, policyHistory); break; case (int)EnumPolicyInterval.Frequency.OncePerWeek: OncePerWeek(policy, policyHistory); break; case (int)EnumPolicyInterval.Frequency.OncePerMonth: OncePerMonth(policy, policyHistory); break; } break; case "User": var policyHistoryUser = _policyHistoryServices.GetLastPolicyRunForUser(policy.Hash, _currentUser); switch (policy.Frequeny) { case (int)EnumPolicyInterval.Frequency.Ongoing: _policiesToRun.Add(policy); break; case (int)EnumPolicyInterval.Frequency.OncePerUserPerComputer: OncePerComputerPerUser(policy, policyHistoryUser); break; } break; default: throw new Exception("Policy scope not defined"); } } var checkinResult = new CheckinSetting(); checkinResult.CheckinTime = checkin.CheckinTime; checkinResult.Policies = _policiesToRun; return(checkinResult); }
private CheckinSetting GetPolicies(EnumPolicyInterval.Trigger triggerType) { //todo change to api call //for now seeded for development var checkinSetting = new CheckinSetting(); checkinSetting.CheckinTime = 60; checkinSetting.Policies = Seed(); return(checkinSetting); }