public void Execute_ValidationSucceeds_JobsRegisteredForLogFiles() { int id = new Random().Next(1, 1000); ProjectRequestAggregateModel model = DataHelper.CreateProjectRequestAggregateModel(); _projectRequestAggregateRepo.GetById(id).Returns(model); LogFileModel log1 = DataHelper.CreateLogFileModel(model.ProjectId); log1.Id = 1; LogFileModel log2 = DataHelper.CreateLogFileModel(model.ProjectId); log2.Id = 2; LogFileModel log3 = DataHelper.CreateLogFileModel(model.ProjectId); log3.Id = 3; _logFileRepo.GetByProject(model.ProjectId).Returns(new LogFileModel[] { log1, log2, log3 }); // execute _deleteProjectRequestAggregateCommand.Execute(id); // assert _logFileRepo.Received(1).GetByProject(model.ProjectId); _setLogFileUnprocessedCommand.Received(1).Execute(log1.Id); _setLogFileUnprocessedCommand.Received(1).Execute(log2.Id); _setLogFileUnprocessedCommand.Received(1).Execute(log3.Id); }
public void Execute_ValidationSucceeds_JobsRegisteredForLogFiles() { ProjectRequestAggregateModel model = DataHelper.CreateProjectRequestAggregateModel(); _projectRequestAggregateValidator.Validate(model).Returns(new ValidationResult()); LogFileModel log1 = DataHelper.CreateLogFileModel(model.ProjectId); log1.Id = 1; LogFileModel log2 = DataHelper.CreateLogFileModel(model.ProjectId); log2.Id = 2; LogFileModel log3 = DataHelper.CreateLogFileModel(model.ProjectId); log3.Id = 3; _logFileRepo.GetByProject(model.ProjectId).Returns(new LogFileModel[] { log1, log2, log3 }); // execute _createProjectRequestAggregateCommand.Execute(model); // assert _logFileRepo.Received(1).GetByProject(model.ProjectId); _setLogFileUnprocessedCommand.Received(1).Execute(log1.Id); _setLogFileUnprocessedCommand.Received(1).Execute(log2.Id); _setLogFileUnprocessedCommand.Received(1).Execute(log3.Id); }
public ProjectRequestAggregateModel Execute(ProjectRequestAggregateModel projectRequestAggregate) { // validate ValidationResult result = _projectRequestAggregateValidator.Validate(projectRequestAggregate); if (!result.Success) { throw new ValidationException(result.Messages); } // insert new record string sql = @"INSERT INTO ProjectRequestAggregates (ProjectId, RegularExpression, AggregateTarget, CreateDate) VALUES (@ProjectId, @RegularExpression, @AggregateTarget, @CreateDate)"; _dbContext.ExecuteNonQuery(sql, projectRequestAggregate); // update the id sql = @"select last_insert_rowid()"; projectRequestAggregate.Id = _dbContext.ExecuteScalar <int>(sql); // register jobs so all log files are reprocessed IEnumerable <LogFileModel> logFiles = _logFileRepo.GetByProject(projectRequestAggregate.ProjectId); foreach (LogFileModel logFile in logFiles) { _setLogFileUnprocessedCommand.Execute(logFile.Id); } return(projectRequestAggregate); }
public dynamic Files(dynamic pId) { // make sure the id is a valid integer int projectId = 0; if (!Int32.TryParse((pId ?? "").ToString(), out projectId)) { return(HttpStatusCode.BadRequest); } IEnumerable <LogFileModel> logFiles = _logFileRepo.GetByProject(projectId); IEnumerable <LogFileViewModel> logFileViewModels = logFiles.Select(x => Mapper.Map <LogFileModel, LogFileViewModel>(x)); return(this.Response.AsJson <IEnumerable <LogFileViewModel> >(logFileViewModels)); }
public void Execute(int id) { // load the record up ProjectRequestAggregateModel projectRequestAggregate = _projectRequestAggregateRepo.GetById(id); if (projectRequestAggregate == null) { throw new InvalidOperationException(String.Format("No project aggregate request found with id {0}", id)); } // insert new record string sql = @"DELETE FROM ProjectRequestAggregates WHERE Id = @Id"; _dbContext.ExecuteNonQuery(sql, new { Id = id }); // register jobs so all log files are reprocessed IEnumerable <LogFileModel> logFiles = _logFileRepo.GetByProject(projectRequestAggregate.ProjectId); foreach (LogFileModel logFile in logFiles) { _setLogFileUnprocessedCommand.Execute(logFile.Id); } }
public void Files_ValidProjectId_GetsLogFilesFromDatabase() { int projectId = new Random().Next(1, 1000); // setup var currentUser = new UserIdentity() { Id = Guid.NewGuid(), UserName = "******" }; var browser = new Browser((bootstrapper) => bootstrapper.Module(new ProjectModule(_dbContext, _projectValidator, _createProjectCommand, _deleteProjectCommand, _projectRepo, _logFileRepo, _requestRepo, _projectRequestAggregateRepo)) .RequestStartup((container, pipelines, context) => { context.CurrentUser = currentUser; }) ); LogFileModel log1 = DataHelper.CreateLogFileModel(); LogFileModel log2 = DataHelper.CreateLogFileModel(); LogFileModel log3 = DataHelper.CreateLogFileModel(); _logFileRepo.GetByProject(projectId).Returns(new LogFileModel[] { log1, log2, log3 }); // execute var url = Actions.Project.Files(projectId); var response = browser.Post(url, (with) => { with.HttpRequest(); with.FormsAuth(currentUser.Id, new Nancy.Authentication.Forms.FormsAuthenticationConfiguration()); }); // assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); _logFileRepo.Received(1).GetByProject(projectId); IEnumerable <LogFileViewModel> result = JsonConvert.DeserializeObject <IEnumerable <LogFileViewModel> >(response.Body.AsString()); Assert.AreEqual(3, result.Count()); }