/// <summary> /// Apaga os dados do comissionado. /// </summary> /// <param name="comissionado"></param> /// <returns></returns> public Colosoft.Business.DeleteResult ApagarComissionado(Entidades.Comissionado comissionado) { comissionado.Require("comissionado").NotNull(); using (var session = SourceContext.Instance.CreateSession()) { var resultado = comissionado.Delete(session); if (!resultado) { return(resultado); } return(session.Execute(false).ToDeleteResult()); } }
/// <summary> /// Implementação da validação de existência do comissionado. /// </summary> /// <param name="comissionado"></param> /// <returns></returns> public IMessageFormattable[] ValidaExistencia(Entidades.Comissionado comissionado) { var mensagens = new List <string>(); // 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); } }); SourceContext.Instance.CreateMultiQuery() // Verifica se o comissionado possui clientes relacionados à seu id .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.Cliente>() .Where("IdComissionado=?id") .Add("?id", comissionado.IdComissionado) .Count(), tratarResultado("Este comissionado não pode ser excluído por possuir clientes relacionados ao mesmo.")) // Verifica se o comissionado possui orçamentos relacionados à seu id .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.Orcamento>() .Where("IdComissionado=?id") .Add("?id", comissionado.IdComissionado) .Count(), tratarResultado("Este comissionado não pode ser excluído por possuir orçamentos relacionados ao mesmo.")) // Verifica se o comissionado possui pedidos relacionados à seu id .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.Pedido>() .Where("IdComissionado=?id") .Add("?id", comissionado.IdComissionado) .Count(), tratarResultado("Este comissionado não pode ser excluído por possuir pedidos relacionados ao mesmo.")) // Verifica se o comissionado possui pedidos PCP relacionados à seu id .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.PedidoEspelho>() .Where("IdComissionado=?id") .Add("?id", comissionado.IdComissionado) .Count(), tratarResultado("Este comissionado não pode ser excluído por possuir clientes relacionados ao mesmo.")) // Verifica se o comissionado possui comissões relacionadas à seu id .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.Comissao>() .Where("IdComissionado=?id") .Add("?id", comissionado.IdComissionado) .Count(), tratarResultado("Este comissionado não pode ser excluído por possuir comissões relacionadas ao mesmo.")) // Verifica se o comissionado possui comissões de pedidos relacionadas à seu id .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.PedidoComissao>() .Where("IdComissionado=?id") .Add("?id", comissionado.IdComissionado) .Count(), tratarResultado("Este comissionado não pode ser excluído por possuir comissões de pedidos relacionadas ao mesmo.")) .Execute(); return(mensagens.Select(f => f.GetFormatter()).ToArray()); }