/// <summary> /// Valida a atualização do grupo. /// </summary> IMessageFormattable[] Entidades.IValidadorGrupoProd.ValidaAtualizacao(Entidades.GrupoProd grupoProd) { if (!grupoProd.TipoCalculo.HasValue || !grupoProd.TipoCalculoNf.HasValue) { return new IMessageFormattable[] { "Informe o tipo de cálculo do grupo.".GetFormatter() } } ; return(new IMessageFormattable[0]); } /// <summary> /// Valida a existema o grupo de produtos. /// </summary> /// <param name="grupoProd"></param> /// <returns></returns> IMessageFormattable[] Entidades.IValidadorGrupoProd.ValidaExistencia(Entidades.GrupoProd grupoProd) { var resultado = new List <IMessageFormattable>(); SourceContext.Instance.CreateMultiQuery() .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.Produto>() .Where("IdGrupoProd=?id").Add("?id", grupoProd.IdGrupoProd) .Count(), (sender, query, result) => { if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0) { resultado.Add("Este grupo não pode ser excluído. Existem produtos relacionados ao mesmo.".GetFormatter()); } }) .Add(SourceContext.Instance.CreateQuery() .From <Data.Model.SubgrupoProd>() .Where("IdGrupoProd=?id").Add("?id", grupoProd.IdGrupoProd) .Count(), (sender, query, result) => { if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0) { resultado.Add("Este grupo não pode ser excluído. Existem subgrupos relacionados ao mesmo.".GetFormatter()); } }) .Execute(); return(resultado.ToArray()); }
/// <summary> /// Apaga os dados do grupo de produtos. /// </summary> /// <param name="grupoProd"></param> /// <returns></returns> public Colosoft.Business.DeleteResult ApagarGrupoProduto(Entidades.GrupoProd grupoProd) { grupoProd.Require("grupoProd").NotNull(); using (var session = SourceContext.Instance.CreateSession()) { var resultado = grupoProd.Delete(session); if (!resultado) { return(resultado); } return(session.Execute(false).ToDeleteResult()); } }