public AcaoEfetuada Salvar(Fonte obj, int fontesId, short actionId) { try { if (obj.Id == 0) //se for insert { if (_fonte.Fetch(new Fonte { Descricao = obj.Descricao, Codigo = obj.Codigo }).Any(x => x.Descricao == obj.Descricao)) { throw new SidsException("Não é possível realizar cadastro, já existe fonte com a descrição e o código já cadastrada"); } if (_fonte.Fetch(new Fonte { Codigo = obj.Codigo }).Any()) { throw new SidsException("Não é possível realizar cadastro, já existe fonte com o código já cadastrado"); } if (_fonte.Fetch(new Fonte { Descricao = obj.Descricao }).Any(x => x.Descricao == obj.Descricao)) { throw new SidsException("Não é possível realizar cadastro, já existe fonte com a descrição já cadastrada"); } obj.Id = _fonte.Add(obj); } else { if (_fonte.DuplicateCheck(new Fonte { Id = obj.Id, Codigo = obj.Codigo, Descricao = obj.Descricao }).Any()) { throw new SidsException("Registro já existente!"); } _fonte.Edit(obj); } var fontes = (IEnumerator <Fonte>)_fonte.Fetch(new Fonte()); SetCurrentCache(fontes, "Fonte"); var arg = $"Fonte {obj.Descricao}, Codigo {obj.Id}"; return(LogSucesso(actionId, fontesId, arg)); } catch (Exception ex) { throw SaveLog(ex, actionId: actionId, functionalityId: fontesId); } }