public List <Audit> GetAudits()
 {
     using (Context = new AudiReportContext())
     {
         var audits = Context.Audits.Include("Issues").Include("Issues.Recommendations").ToList();
         return(audits);
     }
 }
        private void DeleteIssue(int issueId, AudiReportContext context)
        {
            var issue = context.Issues.Where(x => x.IssueId == issueId).FirstOrDefault();

            context.Issues.Attach(issue);
            context.Issues.Remove(issue);
            context.SaveChanges();
        }
 public Audit FindAuditById(int id)
 {
     using (Context = new AudiReportContext())
     {
         var result = Context.Audits.Include("Issues").Include("Issues.Recommendations").Where(a => a.AuditId == id).FirstOrDefaultAsync();
         return(result.Result);
     }
 }
 public void UpdateOnlyAudit(int auditId, string docId)
 {
     using (Context = new AudiReportContext())
     {
         var audit = Context.Audits.Where(x => x.AuditId == auditId).FirstOrDefault();
         audit.GoogleDocId          = docId;
         Context.Entry(audit).State = EntityState.Modified;
         Context.SaveChanges();
     }
 }
        private void UpdateRecommendation(Recommendation recommendation, AudiReportContext context)
        {
            // Find Issue by Id
            Recommendation RecommendationModel = context.Recommendations.Where(r => r.RecommendationId == recommendation.RecommendationId).FirstOrDefaultAsync().Result;

            // Update Data
            RecommendationModel.Description          = recommendation.Description;
            Context.Entry(RecommendationModel).State = EntityState.Modified;
            Context.SaveChanges();
        }
        private void UpdateIssue(Issue issue, AudiReportContext context)
        {
            // Find Issue by Id
            Issue issueModel = context.Issues.Include("Recommendations").Where(i => i.IssueId == issue.IssueId).FirstOrDefaultAsync().Result;

            // Update Data
            issueModel.Title                = issue.Title;
            issueModel.Description          = issue.Description;
            Context.Entry(issueModel).State = EntityState.Modified;
            Context.SaveChanges();
        }
 private void AddOrUpdateIssue(int auditId, Audit audit, AudiReportContext context)
 {
     foreach (Issue issue in audit.Issues)
     {
         issue.AuditId = auditId;
         if (issue.IssueId == 0)
         {
             CreateIssue(issue, context);
         }
         else if (issue.Title != "{delete}")
         {
             UpdateIssue(issue, context);
         }
         else
         {
             DeleteIssue(issue.IssueId, context);
         }
     }
 }
        public void UpdateAudit(Audit audit)
        {
            Audit model = FindAuditById(audit.AuditId);

            using (Context = new AudiReportContext())
            {
                model.Title = audit.Title;
                Context.Entry(model).State = EntityState.Modified;
                Context.SaveChanges();
                // Update or add Issues
                AddOrUpdateIssue(model.AuditId, audit, Context);
                // Update or add Recommendations

                foreach (Issue issue in audit.Issues)
                {
                    if (issue.Recommendations != null)
                    {
                        AddOrUpdateRecommendation(issue.Recommendations, issue.IssueId, Context);
                    }
                }
            }
        }
 private void CreateIssue(Issue issue, AudiReportContext context)
 {
     context.Issues.Add(issue);
     context.SaveChanges();
 }
 private void AddOrUpdateRecommendation(List <Recommendation> recomendations, int issueId, AudiReportContext context)
 {
     foreach (var recom in recomendations)
     {
         recom.IssueId = issueId;
         if (recom.RecommendationId == 0)
         {
             CreateRecommendation(recom, context);
         }
         else
         {
             UpdateRecommendation(recom, context);
         }
     }
 }
 private void CreateRecommendation(Recommendation recommendation, AudiReportContext context)
 {
     context.Recommendations.Add(recommendation);
     context.SaveChanges();
 }