/// <summary> /// Valida a existência do transportador /// </summary> IMessageFormattable[] Entidades.IValidadorTransportador.ValidaExistencia(Entidades.Transportador transportador) { 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() .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.Cte.ParticipanteCte>() .Where("IdTransportador=?id") .Add("?id", transportador.IdTransportador) .Count(), tratarResultado("Há CTe's associados ao mesmo.")) .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.Cliente>() .Where("IdTransportador=?id") .Add("?id", transportador.IdTransportador) .Count(), tratarResultado("Há clientes associados ao mesmo.")) .Execute(); return(mensagens.Select(f => f.GetFormatter()).ToArray()); }
/// <summary> /// Salva os dados do transportador. /// </summary> /// <param name="transportador"></param> /// <returns></returns> public Colosoft.Business.SaveResult SalvarTransportador(Entidades.Transportador transportador) { transportador.Require("transportador").NotNull(); using (var session = SourceContext.Instance.CreateSession()) { var resultado = transportador.Save(session); if (!resultado) { return(resultado); } return(session.Execute(false).ToSaveResult()); } }