public async Task ShouldDeleteShooterSOStagesBeOkHavingProvidedData() { // get stage without shooterStage var existingShooterSOStage = Scenario.ShooterSOStages.FirstOrDefault(); if (existingShooterSOStage == null) { Assert.Inconclusive("Shooter PSO Stage not found"); } //Conteggio gli elementi prima della creazione var countBefore = Scenario.ShooterSOStages.Count; //Composizione della request var request = new ShooterSOStageRequest { ShooterSOStageId = existingShooterSOStage.Id, }; //Invoke del metodo var response = await Controller.DeleteStageSO(request); //Conteggio gli elementi dopo la creazione var countAfter = Scenario.ShooterSOStages.Count; //Parsing della risposta e assert var parsed = ParseExpectedOk <IList <ShooterSOStageContract> >(response); Assert.IsTrue(parsed != null && countAfter == countBefore - 1 && parsed.Data.All(x => x.ShooterSOStageId != request.ShooterSOStageId)); }
public Task <IActionResult> DeleteStageSO(ShooterSOStageRequest request) { //Recupero l'elemento dal business layer var entity = BasicLayer.GetShooterSOStage(request.ShooterSOStageId); //Se l'utente non hai i permessi non posso rimuovere entità con userId nullo if (entity == null) { return(Task.FromResult <IActionResult>(NotFound())); } //Invocazione del service layer var validations = BasicLayer.DeleteShooterSOStage(entity); if (validations.Count > 0) { return(BadRequestTask(validations)); } var shooterSOStagees = BasicLayer.FetchShooterSOStagesByStageId(entity.StageId); var shooterIds = shooterSOStagees.Select(x => x.ShooterId).ToList(); var shooters = BasicLayer.FetchShootersByIds(shooterIds); //Return contract return(Reply(shooterSOStagees.As(x => ContractUtils.GenerateContract(x, shooters.FirstOrDefault(s => s.Id == x.ShooterId))))); }