public void Update(Domain.Models.FunilAggregation.Funil funil)
 {
     verificaFunilDefault(funil);
     for (int i = 0; i < funil.Etapas.Count; i++)
     {
         funil.Etapas[i].UsuarioAlteracaoId = int.Parse(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier));
     }
     _funilRep.Edit(funil);
     _unitOfWork.Commit();
 }
 public void verificaFunilDefault(Domain.Models.FunilAggregation.Funil funil)
 {
     // se o funil que esta sendo criado é o padrão ou seja o default, vericamos se existe algum no banco como default e colocamos como false
     if (funil.Default)
     {
         var funilDefault = _funilRep.FindBy(x => x.Default).FirstOrDefault();
         if (funilDefault != null)
         {
             funilDefault.Default = false;
             _funilRep.Edit(funilDefault);
             _unitOfWork.Commit();
         }
     }
 }
        public Domain.Models.FunilAggregation.Funil Create(Domain.Models.FunilAggregation.Funil funil)
        {
            verificaFunilDefault(funil);

            if (_funilRep.FindBy(x => x.Titulo == funil.Titulo && x.Excluido == false).Any())
            {
                throw new Infrastructure.Services.Core.AppException("Funil \"" + funil.Titulo + "\" já existe.");
            }

            funil.UsuarioCriacaoId = int.Parse(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier));
            for (int i = 0; i < funil.Etapas.Count; i++)
            {
                funil.Etapas[i].UsuarioCriacaoId = int.Parse(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier));
            }
            _funilRep.Add(funil);
            _unitOfWork.Commit();
            return(funil);
        }