Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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)))));
        }