public DtoActionResult AddHistory(DtoPolicyResults results) { Request.Method = Method.POST; Request.Resource = string.Format("ProvisionedComm/{0}/AddHistory/", Resource); return(new ApiRequest().ExecuteSymKeyEncryption <DtoActionResult>(Request, JsonConvert.SerializeObject(results))); }
public DtoActionResult AddHistories(DtoPolicyResults results, string clientIdentity) { var client = _uow.ComputerRepository.GetFirstOrDefault(x => x.Guid == clientIdentity); if (client == null) { return new DtoActionResult() { ErrorMessage = "Client Not Found", Success = false } } ; var actionResult = new DtoActionResult(); foreach (var history in results.Histories) { var policy = _uow.PolicyRepository.GetFirstOrDefault(x => x.Guid == history.PolicyGuid); if (policy == null) { continue; } history.PolicyId = policy.Id; history.ComputerId = client.Id; _uow.PolicyHistoryRepository.Insert(history); } _uow.Save(); foreach (var ci in results.CustomInventories) { var module = _uow.ScriptModuleRepository.GetFirstOrDefault(x => x.Guid == ci.ModuleGuid); if (module == null) { continue; } var existing = _uow.CustomInventoryRepository.GetFirstOrDefault( x => x.ComputerId == client.Id && x.ScriptId == module.Id); if (existing == null) { ci.ScriptId = module.Id; ci.ComputerId = client.Id; _uow.CustomInventoryRepository.Insert(ci); } else { existing.Value = ci.Value; _uow.CustomInventoryRepository.Update(existing, existing.Id); } } _uow.Save(); actionResult.Success = true; return(actionResult); } }
public DtoActionResult SendServerResults(DtoPolicyResults results) { Request.Method = Method.POST; Request.AddJsonBody(results); Request.Resource = string.Format("api/{0}/SendServerResults/", Resource); return (new ApiRequest("http://localhost:" + DtoGobalSettings.LocalApiPort + "/").Execute <DtoActionResult>( Request)); }
public DtoActionResult AddHistory(DtoPolicyResults results) { var clientGuid = RequestContext.Principal.Identity.Name; return(new ServicePolicyHistory().AddHistories(results, clientGuid)); }
private void RecordResults() { Logger.Info("Submitting Policy Results"); var serverHistoryList = new List <DtoServerPolicyHistory>(); var customInventoryList = new List <DtoScriptModuleOutput>(); foreach (var policyResult in _policyResults) { var history = new EntityPolicyHistory(); history.PolicyGUID = policyResult.PolicyGuid; history.PolicyHash = policyResult.PolicyHash; history.LastRunTime = DateTime.UtcNow; history.Username = Environment.UserDomainName + "\\" + Environment.UserName; if (!policyResult.SkipServerResult) { var serverHistory = new DtoServerPolicyHistory(); serverHistory.Hash = policyResult.PolicyHash; if (policyResult.PolicyResult == EnumPolicy.Result.Success) { serverHistory.Result = EnumPolicyHistory.RunResult.Success; } else if (policyResult.PolicyResult == EnumPolicy.Result.Failed) { serverHistory.Result = EnumPolicyHistory.RunResult.Failed; } else if (policyResult.PolicyResult == EnumPolicy.Result.Skipped) { serverHistory.Result = EnumPolicyHistory.RunResult.Skipped; } else { serverHistory.Result = EnumPolicyHistory.RunResult.NotApplicable; } serverHistory.PolicyGuid = policyResult.PolicyGuid; serverHistory.LastRunTime = DateTime.UtcNow; serverHistory.User = Environment.UserDomainName + "\\" + Environment.UserName; serverHistoryList.Add(serverHistory); } //Don't record local results if not success, only server if (policyResult.PolicyResult == EnumPolicy.Result.Success || policyResult.PolicyResult == EnumPolicy.Result.NotApplicable) { if (policyResult.ScriptOutputs.Count > 0) { customInventoryList.AddRange(policyResult.ScriptOutputs); } if (_trigger == EnumPolicy.Trigger.Login) { new APICall().LocalApi.WritePolicyHistory(history); } else { new PolicyHistoryServices().AddHistory(history); } } } var results = new DtoPolicyResults(); results.CustomInventories = customInventoryList; results.Histories = serverHistoryList; if (results.CustomInventories.Count == 0 && results.Histories.Count == 0) { Logger.Info("Completed Submitting Policy Results"); return; } if (_trigger == EnumPolicy.Trigger.Login) { new APICall().LocalApi.SendServerResults(results); } else { new APICall().PolicyApi.AddHistory(results); } Logger.Info("Completed Submitting Policy Results"); }
public DtoActionResult SendServerResults(DtoPolicyResults results) { return(new APICall().PolicyApi.AddHistory(results)); }