public bool Save(Produtos p) { try { db.Begin(System.Data.IsolationLevel.ReadUncommitted); if (!Valid(p)) { return(false); } if (db.Find(p.Id) == null) { if (!string.IsNullOrWhiteSpace(p.Referencia)) { if (db.Where(e => e.Referencia.Equals(p.Referencia)).FirstOrDefault() != null) { BStatus.Alert($"Já existe um produto com a referência '{p.Referencia}'"); return(false); } } p.Id = db.NextId(e => e.Id); db.Save(p); Estoque est = new Estoque(); est.Produto_id = p.Id; est.Loja_id = UsuariosController.LojaAtual.Id; est.Data_entrada = DateTime.Now; est.Quant = 0; est.Lote = string.Empty; est.Sublote = string.Empty; EstoqueController ec = new EstoqueController(); ec.SetContext(db.Context); ec.Save(est); } else { db.Update(p); } db.Commit(); BStatus.Success("Produto salvo"); return(true); } catch (Exception ex) { db.RollBack(); return(false); } }