Example #1
0
        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();
        }
Example #2
0
        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);
            }
        }