Пример #1
0
        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);
            }
        }