public void Update(Models.DafDetails model) { var daf = this.Query().FirstOrDefault(f => f.Id == model.Id); daf.EvaluatorId = model.EvaluatorId; daf.AssessmentDate = model.AssessmentDate; daf.EffectiveDate = model.EffectiveDate; daf.GovernmentHours = model.GovernmentHours; daf.ExceptionalHours = model.ExceptionalHours; daf.TotlaScore = model.TotalScore ?? 0; var selectedAnswers = model.Questions.Select(f => new CC.Data.Models.DafQuestion { Id = f.Id, SelectedAnswerId = f.SelectedAnswerId }).ToList(); daf.Xml = ccEntities.Serialize <List <CC.Data.Models.DafQuestion> >(selectedAnswers); daf.UpdateAt = DateTime.Now; daf.UpdatedBy = Permissions.User.Id; daf.EvaluatorPosition = model.EvaluatorPosition; daf.AdditionalComments = model.Comments; daf.DownloadedAt = model.DownloadedAt; daf.DownloadedBy = model.DownloadedBy; daf.DownloadedTo = model.DownloadedTo; daf.UploadedAt = model.UploadedAt; daf.UploadedBy = model.UploadedBy; daf.UploadedTo = model.UploadedTo; daf.FileName = model.FileName; daf.Disclaimer = model.Disclaimer; daf.UserConsentObtainedAt = model.UserConsentObtainedAt; var entry = db.ObjectStateManager.GetObjectStateEntry(daf); foreach (var h in Changeset(entry)) { db.Histories.AddObject(h); } db.SaveChanges(); }
public IEnumerable <Models.DafDetails> Details(IQueryable <Daf> query) { var items = (from d in query select new { Id = d.Id, ClientId = d.Client.Id, ClientFirstName = d.Client.FirstName, ClientLastName = d.Client.LastName, AgencyName = d.Client.Agency.Name, AgencyId = d.Client.Agency.Id, EvaluatorId = d.Evaluator.Id, EvaluatorName = (d.Evaluator.FirstName + " " + d.Evaluator.LastName) ?? d.Evaluator.UserName, AssessmentDate = d.AssessmentDate, EffectiveDate = d.EffectiveDate, Comments = d.AdditionalComments, CreateDate = d.CreatedAt, d.UpdateAt, EvaluatorPosition = d.EvaluatorPosition, ExceptionalHours = d.ExceptionalHours, GovernmentHours = d.GovernmentHours, ReviewDate = d.ReviewedAt, ReviewerName = (d.Reviewer.FirstName + " " + d.Reviewer.LastName) ?? d.Reviewer.UserName, SignerName = (d.Signer.FirstName + " " + d.Signer.LastName) ?? d.Signer.UserName, SignDate = d.SignedAt, TotalScore = d.TotlaScore, StatusId = d.StatusId, Culture = d.Client.Agency.AgencyGroup.Culture ?? d.Client.Agency.AgencyGroup.Country.Culture, RawXml = d.Xml, d.DownloadedAt, d.DownloadedBy, d.DownloadedTo, d.UserConsentObtainedAt, DownloaderUsername = d.Downloader.UserName, DownloaderFullName = d.Downloader.FirstName + " " + d.Downloader.LastName, d.UploadedAt, d.UploadedBy, d.UploadedTo, d.FileName, d.Disclaimer }); foreach (var item in items) { var questions = DAF_v2(item.Culture); var answerIds = ccEntities.Deserialize <List <CC.Data.Models.DafQuestion> >(item.RawXml); if (answerIds != null) { for (var i = 0; i < questions.Questions.Count && i < answerIds.Count; i++) { questions.Questions[i].SelectedAnswerId = answerIds .Where(f => f.Id == questions.Questions[i].Id) .Select(f => f.SelectedAnswerId) .FirstOrDefault(); } } var result = new Models.DafDetails() { Id = item.Id, ClientId = item.ClientId, ClientFirstName = item.ClientFirstName, ClientLastName = item.ClientLastName, AgencyName = item.AgencyName, AgencyId = item.AgencyId, EvaluatorId = item.EvaluatorId, EvaluatorName = item.EvaluatorName, AssessmentDate = item.AssessmentDate, EffectiveDate = item.EffectiveDate, Comments = item.Comments, CreateDate = item.CreateDate, UpdateDate = item.UpdateAt, EvaluatorPosition = item.EvaluatorPosition, ExceptionalHours = item.ExceptionalHours, GovernmentHours = item.GovernmentHours, SignerName = item.SignerName, SignDate = item.SignDate, ReviewDate = item.ReviewDate, ReviewerName = item.ReviewerName, StatusId = item.StatusId, Questions = questions.Questions, Culture = item.Culture, DownloadedAt = item.DownloadedAt, DownloadedBy = item.DownloadedBy, DownloadedTo = item.DownloadedTo, DownloaderFullName = item.DownloaderFullName, DownloaderUsername = item.DownloaderUsername, UserConsentObtainedAt = item.UserConsentObtainedAt, UploadedAt = item.UploadedAt, UploadedBy = item.UploadedBy, UploadedTo = item.UploadedTo, FileName = item.FileName, Disclaimer = item.Disclaimer }; if (item.TotalScore.HasValue) { var fl = db.FunctionalityLevels.Where(f => f.MinScore <= item.TotalScore && f.MaxScore >= item.TotalScore) .Select(f => new { f.Name }).FirstOrDefault(); if (fl != null) { result.FunctionalityLevelName = fl.Name; } } yield return(result); } }