Skip to content

Commit

Permalink
Assessment upgrade feedback, comments, observations, and documents
Browse files Browse the repository at this point in the history
  • Loading branch information
LaddieZeigler committed Mar 5, 2025
1 parent 398f642 commit 9270826
Showing 1 changed file with 114 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1135,6 +1135,7 @@ public void ConvertAssessment(int assessment_id, int original_id, string targetA
{
try
{
ConvertContacts(assessment_id, original_id);
JArray questionIds = null;

var rh = new ResourceHelper();
Expand Down Expand Up @@ -1176,24 +1177,131 @@ public void ConvertAssessment(int assessment_id, int original_id, string targetA
ComponentGuid = original_record.Component_Guid,
Reviewed = original_record.Reviewed,
QuestionType = original_record.Question_Type,
Is_Maturity = original_record.Is_Maturity ?? true
Is_Maturity = original_record.Is_Maturity ?? true,
Comment = original_record.Comment
};


var adminTabBusiness = new AdminTabBusiness(_context);
var mb = new MaturityBusiness(_context, _assessmentUtil, adminTabBusiness);
mb.StoreAnswer(assessment_id, answer);

var newAnswer = _context.ANSWER
.Where(x => x.Assessment_Id == assessment_id &&
x.Question_Or_Requirement_Id == newQuestionId)
.FirstOrDefault();

ConvertFindings(original_record.Answer_Id, newAnswer.Answer_Id, assessment_id);
ConvertDocuments(original_record.Answer_Id, newAnswer.Answer_Id);

}
// Hide draft assessment
var draft = _context.ASSESSMENT_CONTACTS
.Where(x => x.Assessment_Id == original_id)
.FirstOrDefault();
draft.UserId = null;

_context.SaveChanges();
}
catch (Exception exc)
{
NLog.LogManager.GetCurrentClassLogger().Error($"... {exc}");
}
}

public void ConvertFindings(int originalAnswerId, int answerId, int assessmentId)
{
var originalObservationList = _context.FINDING.Where(x => x.Answer_Id == originalAnswerId).ToList();

foreach (var finding in originalObservationList)
{
var newFinding = new FINDING()
{
Answer_Id = answerId,
Summary = finding.Summary,
Impact = finding.Impact,
Issue = finding.Issue,
Recommendations = finding.Recommendations,
Vulnerabilities = finding.Vulnerabilities,
Resolution_Date = finding.Resolution_Date,
Title = finding.Title,
Type = finding.Type,
Risk_Area = finding.Risk_Area,
Sub_Risk = finding.Sub_Risk,
Description = finding.Description,
Citations = finding.Citations,
ActionItems = finding.ActionItems,
Supp_Guidance = finding.Supp_Guidance
};
_context.FINDING.Add(newFinding);
_context.SaveChanges();

var findingId = newFinding.Finding_Id;
ConvertFindingContacts(finding.Finding_Id, findingId, assessmentId);
}
}

public void ConvertFindingContacts(int originalFindingId, int newFindingId, int assessmentId)
{
var originalObservationContacts = _context.FINDING_CONTACT.Where(x => x.Finding_Id == originalFindingId).ToList();

if (originalObservationContacts.Any())
{
foreach (var findingContact in originalObservationContacts)
{
var assessmentContact = _context.ASSESSMENT_CONTACTS.Where(x => x.Assessment_Contact_Id == findingContact.Assessment_Contact_Id).FirstOrDefault();
var newAssessmentContact = _context.ASSESSMENT_CONTACTS.Where(x => x.UserId == assessmentContact.UserId && x.Assessment_Id == assessmentId).FirstOrDefault();
_context.FINDING_CONTACT.Add(new FINDING_CONTACT()
{
Finding_Id = newFindingId,
Assessment_Contact_Id = newAssessmentContact.Assessment_Contact_Id
});
}
}
}

public void ConvertDocuments(int originalAnswerId, int answerId)
{
var documentRecord = _context.DOCUMENT_ANSWERS.Where(x => x.Answer_Id == originalAnswerId).ToList();
foreach (var document in documentRecord)
{
_context.DOCUMENT_ANSWERS.Add(new DOCUMENT_ANSWERS()
{
Document_Id = document.Document_Id,
Answer_Id = answerId
});
_context.SaveChanges();
}
}

public void ConvertContacts(int assessmentId, int originalId)
{
//Grab contact record from auto generated new assessment contact
var contactRecord = _context.ASSESSMENT_CONTACTS.Where(x => x.Assessment_Id == assessmentId).FirstOrDefault();
//Grab original contacts for assessment
var originalContactRecord = _context.ASSESSMENT_CONTACTS.Where(x => x.Assessment_Id == originalId).ToList();
foreach (var contact in originalContactRecord)
{
if (contact.UserId != contactRecord.UserId)
{
_context.ASSESSMENT_CONTACTS.Add(new ASSESSMENT_CONTACTS()
{
FirstName = contact.FirstName,
LastName = contact.LastName,
PrimaryEmail = contact.PrimaryEmail,
Assessment_Id = assessmentId,
AssessmentRoleId = contact.AssessmentRoleId,
Title = contact.Title,
Phone = contact.Phone,
Cell_Phone = contact.Cell_Phone,
Reports_To = contact.Reports_To,
Organization_Name = contact.Organization_Name,
Site_Name = contact.Site_Name,
Emergency_Communications_Protocol = contact.Emergency_Communications_Protocol,
Is_Site_Participant = contact.Is_Site_Participant,
Is_Primary_POC = contact.Is_Primary_POC,
Last_Q_Answered = contact.Last_Q_Answered,
UserId = contact.UserId,
Invited = contact.Invited
});
_context.SaveChanges();
}
}
}
}
}

0 comments on commit 9270826

Please sign in to comment.