public DtoActionResult Post(EntitySoftwareModule module) { var result = _softwareModuleServices.AddModule(module); if (result.Success) { var auditLog = new EntityAuditLog(); auditLog.ObjectType = "SoftwareModule"; auditLog.ObjectId = result.Id; auditLog.ObjectName = module.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(module); auditLog.UserId = _userId; auditLog.AuditType = EnumAuditEntry.AuditType.Create; _auditLogService.AddAuditLog(auditLog); } return(result); }
public DtoActionResult UpdateModule(EntitySoftwareModule module) { var u = GetModule(module.Id); if (u == null) { return new DtoActionResult { ErrorMessage = "Module Not Found", Id = 0 } } ; var isActiveModule = new ServiceModule().IsModuleActive(module.Id, EnumModule.ModuleType.Software); if (!string.IsNullOrEmpty(isActiveModule)) { return new DtoActionResult() { ErrorMessage = isActiveModule, Id = 0 } } ; var validationResult = ValidateModule(module, false); var actionResult = new DtoActionResult(); if (validationResult.Success) { _uow.SoftwareModuleRepository.Update(module, module.Id); _uow.Save(); actionResult.Success = true; actionResult.Id = module.Id; } else { actionResult.ErrorMessage = validationResult.ErrorMessage; } return(actionResult); }
public DtoActionResult Put(int id, EntitySoftwareModule module) { module.Id = id; var result = _softwareModuleServices.UpdateModule(module); if (result == null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); } if (result.Success) { var auditLog = new EntityAuditLog(); auditLog.ObjectType = "SoftwareModule"; auditLog.ObjectId = result.Id; auditLog.ObjectName = module.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(module); auditLog.UserId = _userId; auditLog.AuditType = EnumAuditEntry.AuditType.Update; _auditLogService.AddAuditLog(auditLog); } return(result); }
public DtoActionResult AddModule(EntitySoftwareModule module) { var validationResult = ValidateModule(module, true); var actionResult = new DtoActionResult(); if (validationResult.Success) { _uow.SoftwareModuleRepository.Insert(module); var moduleType = new EntityModule(); moduleType.ModuleType = EnumModule.ModuleType.Software; moduleType.Guid = module.Guid; _uow.ModuleRepository.Insert(moduleType); _uow.Save(); actionResult.Success = true; actionResult.Id = module.Id; } else { actionResult.ErrorMessage = validationResult.ErrorMessage; } return(actionResult); }
protected void btnAdd_OnClick(object sender, EventArgs e) { int timeout = 0; var parseResult = Int32.TryParse(txtTimeout.Text, out timeout); if (!parseResult) { EndUserMessage = "Timeout Is Not Valid"; return; } var module = new EntitySoftwareModule() { Name = txtDisplayName.Text, Description = txtDescription.Text, InstallType = (EnumSoftwareModule.MsiInstallType)Enum.Parse(typeof(EnumSoftwareModule.MsiInstallType), ddlType.SelectedValue), Timeout = Convert.ToInt32(txtTimeout.Text), RedirectStdOut = chkStdOut.Checked, RedirectStdError = chkStdError.Checked, SuccessCodes = txtSuccessCodes.Text, ImpersonationId = Convert.ToInt32(ddlRunAs.SelectedValue) }; var result = Call.SoftwareModuleApi.Post(module); if (!result.Success) { EndUserMessage = result.ErrorMessage; } else { EndUserMessage = "Successfully Created Software Module"; Response.Redirect("~/views/modules/softwaremodules/general.aspx?softwareModuleId=" + result.Id); } }
private DtoValidationResult ValidateModule(EntitySoftwareModule module, bool isNew) { var validationResult = new DtoValidationResult { Success = true }; int value; if (!int.TryParse(module.Timeout.ToString(), out value)) { validationResult.Success = false; validationResult.ErrorMessage = "Invalid Timeout"; return(validationResult); } try { if (string.IsNullOrEmpty(module.SuccessCodes)) { validationResult.Success = false; validationResult.ErrorMessage = "Invalid Success Code"; return(validationResult); } if (module.SuccessCodes.Split(',').Any(code => !int.TryParse(code, out value))) { validationResult.Success = false; validationResult.ErrorMessage = "Invalid Success Code"; return(validationResult); } } catch { validationResult.Success = false; validationResult.ErrorMessage = "Invalid Success Code"; return(validationResult); } if (module.Timeout < 0) { module.Timeout = 0; } if (string.IsNullOrEmpty(module.Name) || !module.Name.All(c => char.IsLetterOrDigit(c) || c == '_' || c == '-' || c == ' ' || c == '.')) { validationResult.Success = false; validationResult.ErrorMessage = "Module Name Is Not Valid"; return(validationResult); } if (isNew) { if (_uow.SoftwareModuleRepository.Exists(h => h.Name == module.Name)) { validationResult.Success = false; validationResult.ErrorMessage = "A Module With This Name Already Exists"; return(validationResult); } } else { var originalModule = _uow.SoftwareModuleRepository.GetById(module.Id); if (originalModule.Name != module.Name) { if (_uow.SoftwareModuleRepository.Exists(h => h.Name == module.Name)) { validationResult.Success = false; validationResult.ErrorMessage = "A Module With This Name Already Exists"; return(validationResult); } } } return(validationResult); }
private DtoActionResult CreateSoftware() { foreach (var softwareModule in _export.SoftwareModules) { if (_export.Instructions.Contains("[generate-module-guid]")) { softwareModule.Guid = Guid.NewGuid().ToString(); } if (_uow.SoftwareModuleRepository.Exists(h => h.Guid.Equals(softwareModule.Guid))) { return(new DtoActionResult() { ErrorMessage = "A Software Module With This Guid Already Exists. " + softwareModule.Guid }); } var software = new EntitySoftwareModule(); software.Name = softwareModule.DisplayName; software.Description = "Added Via Policy Template " + _export.Name + " On " + DateTime.Now + "\r\n" + software.Description; software.Guid = softwareModule.Guid; software.Arguments = softwareModule.Arguments; software.RedirectStdError = softwareModule.RedirectError; software.RedirectStdOut = softwareModule.RedirectOutput; software.SuccessCodes = softwareModule.SuccessCodes; software.Timeout = softwareModule.Timeout; software.AdditionalArguments = softwareModule.AdditionalArguments; software.Command = softwareModule.Command; software.InstallType = softwareModule.InstallType; software.ImpersonationId = -1; if (softwareModule.UploadedFiles.Any()) { _policyHasInternalFiles = true; } if (softwareModule.ExternalFiles.Any()) { _policyHasExternalFiles = true; } if (_uow.SoftwareModuleRepository.Exists(h => h.Name.Equals(software.Name))) { for (var c = 1; c <= 100; c++) { if (c == 100) { return new DtoActionResult() { ErrorMessage = "Could Not Determine A Software Name" } } ; var newName = software.Name + "_" + c; if (!_uow.SoftwareModuleRepository.Exists(h => h.Name == newName)) { software.Name = newName; break; } } } var addResult = new ServiceSoftwareModule().AddModule(software); if (!addResult.Success) { return(addResult); } var policyModule = new EntityPolicyModules(); policyModule.Guid = software.Guid; policyModule.ModuleId = addResult.Id; policyModule.ModuleType = EnumModule.ModuleType.Software; policyModule.Name = software.Name; policyModule.Order = softwareModule.Order; policyModule.PolicyId = _policy.Id; policyModule.ConditionFailedAction = softwareModule.ConditionFailedAction; policyModule.ConditionNextModule = softwareModule.ConditionNextOrder; var conditionId = CreateCondition(softwareModule.Condition); if (conditionId != 0) { policyModule.ConditionId = conditionId; } else { policyModule.ConditionId = -1; } _uow.PolicyModulesRepository.Insert(policyModule); } return(new DtoActionResult() { Success = true }); }