예제 #1
0
        public static List <object> ReportByDoctorByStatus(int doctor, MyDbContext _context)
        {
            Receta[] recetas = GetAllByDoctorByStatus(doctor, _context);
            var      data    = new List <object>();

            foreach (Receta receta in recetas)
            {
                var items = ItemReceta.ReportReceta(receta.id, _context);
                if (items.Count() > 0)
                {
                    data.Add(new { receta = receta, items = items });
                }
            }

            return(data);
        }
예제 #2
0
        public static void Delete(int id, MyDbContext _context)
        {
            var tran = _context.Database.BeginTransaction(); //Se inicia transacción en la BDD

            try
            {
                ItemReceta[] items = ItemReceta.ReportReceta(id, _context);

                foreach (var item in items) //Se cambia el estado a cancelado en todos los itemsReceta y se hace rollback al item farmacia
                {
                    _context.Database.ExecuteSqlCommand($"EXEC ItemReceta_Delete @id={item.id}");
                }

                _context.Database.ExecuteSqlCommand($"EXEC Receta_Delete @id={id}"); //Se cambia el estado a eliminado en la receta

                tran.Commit();                                                       //Si todo sale bien se hace commit
            } catch (Exception e) {
                tran.Rollback();                                                     //Rollback
                throw new Exception("Error al eliminar receta", e);
            }
        }