예제 #1
0
        /// <summary>
        /// Regra de negócio que cria as sequências
        /// </summary>
        /// <param name="objeto">objeto</param>
        public static void RnCriarOrdem(IOrdenacao objeto)
        {
            int total = objeto.GetMaiorOrdem();

            if (objeto.GetNbOrdem() >= total || objeto.GetNbOrdem() == 0)
            {
                objeto.SetNbOrdem((UInt16)(total + 1));
                objeto.SetOrdemOld(objeto.GetNbOrdem());
            }
        }
 public MenusConsole(IExercicio1 exercicio1, IEmpresa exercicio2, IMultiplos exercicio3, INotas exercicio4,
                     IFormula exercicio5, IParametros exercicio6, ISomaPar exercicio7, IOrdenacao exercicio8,
                     ILinq exercicio9)
 {
     _exercicio1 = exercicio1;
     _exercicio2 = exercicio2;
     _exercicio3 = exercicio3;
     _exercicio4 = exercicio4;
     _exercicio5 = exercicio5;
     _exercicio6 = exercicio6;
     _exercicio7 = exercicio7;
     _exercicio8 = exercicio8;
     _exercicio9 = exercicio9;
 }
예제 #3
0
        /// <summary>
        /// Regra de negócio que verifica se a sequência está subindo ou descendo
        /// </summary>
        /// <param name="objeto">objeto</param>
        public static void RnAplicarOrdenacao(IOrdenacao objeto)
        {
            int maiorPrioridade = objeto.GetMaiorOrdem();

            if (objeto.GetNbOrdem() < (UInt16)objeto.GetOrdemOld())
            {
                RnRepriorizar(objeto, CsOrdenacaoDomain.SubirOrdem);
            }
            else
            if (objeto.GetNbOrdem() > objeto.GetOrdemOld() && objeto.GetNbOrdem() <= maiorPrioridade)
            {
                RnRepriorizar(objeto, CsOrdenacaoDomain.DescerOrdem);
            }

            objeto.SetOrdemOld(objeto.GetNbOrdem());
            objeto.SetReOrdenando(false);
        }
예제 #4
0
        /// <summary>
        /// Regra de negocio que reordena as sequências
        /// </summary>
        /// <param name="objeto">objeto</param>
        /// <param name="operacao">operacao</param>
        /// <param name="salvar">salvar</param>
        public static void RnRepriorizar(IOrdenacao objeto, CsOrdenacaoDomain operacao, bool salvar = true)
        {
            if ((objeto.GetReOrdenando() || objeto.GetOrdemOld() == objeto.GetNbOrdem()) && !objeto.IsDeleted())
            {
                objeto.SetReOrdenando(false);
                return;
            }

            List <Object> itens      = null;
            UInt16        prioridade = 0;

            if (operacao == CsOrdenacaoDomain.DescerOrdem)
            {
                if (objeto.GetOrdemOld() != 0)
                {
                    itens      = objeto.GetItensPorOrdem(objeto.GetOrdemOld() + 1, objeto.GetNbOrdem());
                    prioridade = objeto.GetOrdemOld();
                }
                else
                {
                    itens      = objeto.GetItensPorOrdem(objeto.GetOrdemOld());
                    prioridade = (UInt16)(objeto.GetNbOrdem() + 1);
                }
            }
            else
            if (operacao == CsOrdenacaoDomain.SubirOrdem)
            {
                if (!objeto.GetOid().Equals(new Guid()) && objeto.GetNbOrdem() != 0)
                {
                    itens = objeto.GetItensPorOrdem(objeto.GetNbOrdem(), objeto.GetOrdemOld() - 1);
                }
                else if (objeto.GetNbOrdem() != 0)
                {
                    itens = objeto.GetItensPorOrdem(objeto.GetNbOrdem() - 1);
                }
                else
                {
                    itens = objeto.GetItensPorOrdem(objeto.GetOrdemOld() + 1);
                }

                prioridade = (UInt16)(objeto.GetNbOrdem() + 1);
            }
            else
            {
                if (operacao == CsOrdenacaoDomain.ExcluirOrdem)
                {
                    itens      = objeto.GetItensPorOrdem(objeto.GetNbOrdem());
                    prioridade = objeto.GetNbOrdem();
                }
            }
            if (itens.Count > 0)
            {
                foreach (IOrdenacao item in itens)
                {
                    item.SetReOrdenando(true);
                    item.SetNbOrdem(prioridade);
                    item.SetOrdemOld(prioridade);
                    if (salvar)
                    {
                        item.Save();
                    }
                    item.SetReOrdenando(false);
                    prioridade += 1;
                }
            }
        }
예제 #5
0
 /// <summary>
 /// Regra de negócio que verifica se a sequência está sendo deletada
 /// </summary>
 /// <param name="objeto">objeto</param>
 public static void RnDeletarOrdenacao(IOrdenacao objeto)
 {
     RnRepriorizar(objeto, CsOrdenacaoDomain.ExcluirOrdem);
     objeto.SetOrdemOld(objeto.GetNbOrdem());
 }