<commit_before>using CQRS.Authorization;
using CQRS.Commands.Authorizers;
using SO115App.Models.Classi.Utility;
using SO115App.Models.Servizi.Infrastruttura.Autenticazione;
using SO115App.Models.Servizi.Infrastruttura.GestioneConcorrenza;
using SO115App.Models.Servizi.Infrastruttura.GestioneUtenti.VerificaUtente;
using System.Collections.Generic;
using System.Security.Principal;

namespace SO115App.Models.Servizi.CQRS.Commands.GestioneConcorrenza.AddBlock
{
    public class AddBlockAuthorization : ICommandAuthorizer<AddBlockCommand>
    {
        private readonly IPrincipal _currentUser;
        private readonly IFindUserByUsername _findUserByUsername;
        private readonly IGetAutorizzazioni _getAutorizzazioni;
        private readonly IGetBlockByValue _getBlockByValue;

        public AddBlockAuthorization(
            IPrincipal currentUser,
            IFindUserByUsername findUserByUsername,
            IGetAutorizzazioni getAutorizzazioni,
            IGetBlockByValue getBlockByValue)
        {
            _currentUser = currentUser;
            _findUserByUsername = findUserByUsername;
            _getAutorizzazioni = getAutorizzazioni;
            _getBlockByValue = getBlockByValue;
        }

        public IEnumerable<AuthorizationResult> Authorize(AddBlockCommand command)
        {
            command.utente = _findUserByUsername.FindUserByUs(_currentUser.Identity.Name);

            if (_getBlockByValue.Get(command.concorrenza.Value) != null)
            {
                if (command.concorrenza.Type.Equals(0))
                    yield return new AuthorizationResult(Costanti.InterventoBloccato);
                if (command.concorrenza.Type.Equals(1))
                    yield return new AuthorizationResult(Costanti.MezzoPrenotato);
                if (command.concorrenza.Type.Equals(3))
                    yield return new AuthorizationResult(Costanti.SquadraPrenotata);
            }

            if (_currentUser.Identity.IsAuthenticated)
            {
                if (command.utente == null)
                    yield return new AuthorizationResult(Costanti.UtenteNonAutorizzato);
                else
                {
                    bool abilitato = false;
                    if (_getAutorizzazioni.GetAutorizzazioniUtente(command.utente.Ruoli, command.concorrenza.CodComando, Costanti.GestoreRichieste))
                        abilitato = true;

                    if (_getAutorizzazioni.GetAutorizzazioniUtente(command.utente.Ruoli, command.concorrenza.CodComando, Costanti.GestoreChiamate))
                        abilitato = true;

                    if (!abilitato)<commit_msg>Concorrenza - Fix in Add<commit_after>using CQRS.Authorization;
using CQRS.Commands.Authorizers;
using SO115App.Models.Classi.Concorrenza;
using SO115App.Models.Classi.Utility;
using SO115App.Models.Servizi.Infrastruttura.Autenticazione;
using SO115App.Models.Servizi.Infrastruttura.GestioneConcorrenza;
using SO115App.Models.Servizi.Infrastruttura.GestioneUtenti.VerificaUtente;
using System.Collections.Generic;
using System.Security.Principal;

namespace SO115App.Models.Servizi.CQRS.Commands.GestioneConcorrenza.AddBlock
{
    public class AddBlockAuthorization : ICommandAuthorizer<AddBlockCommand>
    {
        private readonly IPrincipal _currentUser;
        private readonly IFindUserByUsername _findUserByUsername;
        private readonly IGetAutorizzazioni _getAutorizzazioni;
        private readonly IGetBlockByValue _getBlockByValue;

        public AddBlockAuthorization(
            IPrincipal currentUser,
            IFindUserByUsername findUserByUsername,
            IGetAutorizzazioni getAutorizzazioni,
            IGetBlockByValue getBlockByValue)
        {
            _currentUser = currentUser;
            _findUserByUsername = findUserByUsername;
            _getAutorizzazioni = getAutorizzazioni;
            _getBlockByValue = getBlockByValue;
        }

        public IEnumerable<AuthorizationResult> Authorize(AddBlockCommand command)
        {
            command.utente = _findUserByUsername.FindUserByUs(_currentUser.Identity.Name);

            if (_getBlockByValue.Get(command.concorrenza.Value) != null)
            {
                if (command.concorrenza.Type.Equals(TipoOperazione.Richiesta))
                    yield return new AuthorizationResult(Costanti.InterventoBloccato);
                if (command.concorrenza.Type.Equals(TipoOperazione.Mezzo))
                    yield return new AuthorizationResult(Costanti.MezzoPrenotato);
                if (command.concorrenza.Type.Equals(TipoOperazione.Squadra))
                    yield return new AuthorizationResult(Costanti.SquadraPrenotata);
            }

            if (_currentUser.Identity.IsAuthenticated)
            {
                if (command.utente == null)
                    yield return new AuthorizationResult(Costanti.UtenteNonAutorizzato);
                else
                {
                    bool abilitato = false;
                    if (_getAutorizzazioni.GetAutorizzazioniUtente(command.utente.Ruoli, command.concorrenza.CodComando, Costanti.GestoreRichieste))
                        abilitato = true;

                    if (_getAutorizzazioni.GetAutorizzazioniUtente(command.utente.Ruoli, command.concorrenza.CodComando, Costanti.GestoreChiamate))
                        abilitato = true;

                    if (!abilitato)
{'fraction_non_alphanumeric': 0.0639320029563932, 'fraction_numerical': 0.0066518847006651885, 'mean_word_length': 2.565876152832675, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6821968', 'n_tokens_mistral': 1547, 'n_tokens_neox': 1474, 'n_words': 224}