Beispiel #1
0
        /// <summary>
        /// Apaga os dados da Classificação.
        /// </summary>
        /// <param name="classificacao"></param>
        /// <returns></returns>
        public Colosoft.Business.DeleteResult ApagarClassificacao(Entidades.ClassificacaoRoteiroProducao classificacao)
        {
            classificacao.Require("classificacao").NotNull();

            using (var session = SourceContext.Instance.CreateSession())
            {
                var resultado = classificacao.Delete(session);

                if (!resultado)
                {
                    return(resultado);
                }

                return(session.Execute(false).ToDeleteResult());
            }
        }
Beispiel #2
0
        /// <summary>
        /// Valida a existencia do dados da cor do vidro.
        /// </summary>
        /// <returns></returns>
        public IMessageFormattable[] ValidaExistencia(Entidades.ClassificacaoRoteiroProducao classificacao)
        {
            var mensagens = new List <string>();

            // Handler para criar a consulta padrão da existencia do registro.
            var criarConsulta = new Func <Type, Colosoft.Query.Queryable>(type =>
                                                                          SourceContext.Instance.CreateQuery()
                                                                          .From(new Colosoft.Query.EntityInfo(type.FullName))
                                                                          .Count()
                                                                          .Where("IdClassificacaoRoteiroProducao=?id")
                                                                          .Add("?id", classificacao.IdClassificacaoRoteiroProducao));

            // Handler para tratar o resultado da consulta de validação.
            var tratarResultado = new Func <string, Colosoft.Query.QueryCallBack>(mensagem =>
                                                                                  (sender, query, result) =>
            {
                if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0 &&
                    !mensagens.Contains(mensagem))
                {
                    mensagens.Add(mensagem);
                }
            });

            var consultas = SourceContext.Instance.CreateMultiQuery()

                            // Verifica se a classificação está associada a algum subgrupo de produto.
                            .Add(criarConsulta(typeof(Glass.Data.Model.ClassificacaoSubgrupo)),
                                 tratarResultado("Esta classificação não pode ser excluída pois existem subgrupos associados a ela. Desassocie-os e tente novamente."))

                            // Verifica se a classificação está associada a algum roteiro de produção.
                            .Add(criarConsulta(typeof(Glass.Data.Model.RoteiroProducao)),
                                 tratarResultado("Esta classificação não pode ser excluída pois existem roteiros associados a ela. Desassocie-os e tente novamente."));

            consultas.Execute();

            return(mensagens.Select(f => f.GetFormatter()).ToArray());
        }