public Location_ GetLocation(int id)
 {
     using (var db = new Project_Db_Context())
     {
         return(db.Locations.FirstOrDefault(r => r.id == id));
     }
 }
 public Fall GetFall(int id)
 {
     using (var db = new Project_Db_Context())
     {
         return(db.Falls.FirstOrDefault(f => f.id == id));
     }
 }
 public Report GetReport(int id)
 {
     using (var db = new Project_Db_Context())
     {
         return(db.Reports.SingleOrDefault(r => r.id == id));
     }
 }
 public Assessment GetAssessment(int _id)
 {
     using (var db = new Project_Db_Context())
     {
         //  var r=db.Assessments.FirstOrDefault(e => e.id == _id);
         //    r.reports=from a in db.Reports.ToList()
         //            where a.
         return(db.Assessments.FirstOrDefault(e => e.id == _id));
     }
 }
 public List <Location_> GetAllLocation()
 {
     using (var db = new Project_Db_Context())
     {
         if (db.Locations == null)
         {
             throw new Exception("No falls exist in the system");
         }
         return(db.Locations.ToList());
     }
 }
 public List <Report> GetAllReports()
 {
     using (var db = new Project_Db_Context())
     {
         if (db.Reports == null)
         {
             throw new Exception("No reports exist in the system");
         }
         return(db.Reports.ToList());
     }
 }
 public List <Fall> GetAllFalls()
 {
     using (var db = new Project_Db_Context())
     {
         if (db.Falls == null)
         {
             throw new Exception("No falls exist in the system");
         }
         var d = db.Falls;
         return(db.Falls.
                Include("Location").
                ToList());
     }
 }
        public void AddFall(Fall fall)
        {
            var ToAdd = GetFall(fall.id);

            if (ToAdd != null)
            {
                throw new Exception("An Fall with an identical id already exists...");
            }
            using (var db = new Project_Db_Context())
            {
                db.Falls.Add(fall);
                db.SaveChanges();
            }
        }
        public void RemoveLocation(int id)
        {
            Location_ ToRemove = GetLocation(id);

            if (ToRemove == null)
            {
                throw new Exception("An Assessment with this ID does not exist..");
            }
            using (var db = new Project_Db_Context())
            {
                db.Locations.Remove(ToRemove);
                db.SaveChanges();
            }
        }
        public void AddLocation(Location_ location)
        {
            var toAdd = GetLocation(location.id);

            if (toAdd != null)
            {
                throw new Exception("An Location with an identical id already exists...");
            }
            using (var db = new Project_Db_Context())
            {
                db.Locations.Add(location);
                db.SaveChanges();
            }
        }
        public void AddAssessment(Assessment assessment)
        {
            var ToAdd = GetAssessment(assessment.id);

            if (ToAdd != null)
            {
                throw new Exception("An Assessment with an identical id already exists...");
            }
            using (var db = new Project_Db_Context())
            {
                db.Assessments.Add(assessment);
                db.SaveChanges();
            }
        }
        public void RemoveReport(int id)
        {
            Report ToRemove = GetReport(id);

            if (ToRemove == null)
            {
                throw new Exception("An report with this ID does not exist..");
            }
            using (var db = new Project_Db_Context())
            {
                db.Reports.Remove(ToRemove);
                db.SaveChanges();
            }
        }
        public void RemoveAssessment(int _id)
        {
            Assessment ToRemove = GetAssessment(_id);

            if (ToRemove == null)
            {
                throw new Exception("An Assessment with this ID does not exist..");
            }
            using (var db = new Project_Db_Context())
            {
                db.Assessments.Remove(ToRemove);
                db.SaveChanges();
            }
        }
        public void UpdateReport(Report report)
        {
            var ToUpdate = GetReport(report.id);

            if (ToUpdate == null)
            {
                throw new Exception("the report to update not found");
            }
            using (var db = new Project_Db_Context())
            {
                db.Entry(report);
                db.Reports.AddOrUpdate(report);
                db.SaveChanges();
            }
        }
        public void UpdateFall(Fall fall)
        {
            var ToUpdate = GetFall(fall.id);

            if (ToUpdate == null)
            {
                throw new Exception("the assessment to update not found");
            }
            using (var db = new Project_Db_Context())
            {
                db.Entry(fall);
                db.Falls.AddOrUpdate(fall);
                db.SaveChanges();
            }
        }
 public List <Assessment> GetAllAassessments()
 {
     using (var db = new Project_Db_Context())
     {
         if (db.Assessments == null)
         {
             throw new Exception("No assessments exist in the system");
         }
         List <Assessment> a = db.Assessments
                               .Include("Reports")
                               .Include("Falls")
                               .Include("Locations")
                               .ToList();
         return(a);
     }
 }
        public void UpdateAssessment(Assessment assessment)
        {
            var ToUpdate = GetAssessment(assessment.id);

            if (ToUpdate == null)
            {
                throw new Exception("the assessment to update not found");
            }
            using (var db = new Project_Db_Context())
            {
                foreach (Location_ l in assessment.Locations)
                {
                    db.Locations.Add(l);
                    db.SaveChanges();
                }
                db.Entry(assessment);
                db.Assessments.AddOrUpdate(assessment);
                db.SaveChanges();
            }
        }
        //private static Project_Db_Context db ;

        #region Report functions
        public void AddReport(Report report)
        {
            var ToAdd = GetReport(report.id);

            if (ToAdd != null)
            {
                throw new Exception("An Assessment with an identical id already exists...");
            }
            using (var db = new Project_Db_Context())
            {
                try
                {
                    AddLocation(report.location);
                    db.Reports.Add(report);
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    System.Windows.Forms.MessageBox.Show(e.InnerException.Message);
                }
            }
        }