Ejemplo n.º 1
0
        public ActionResult ContinueTraining(int trainingReviewid)
        {
            int userid = (int)Membership.GetUser().ProviderUserKey;

            var existingTraining = _db.TrainingReviews.Find(trainingReviewid);

            if (existingTraining == null || existingTraining.UserID != userid || existingTraining.Status != "Current")
            {
                return(View("Error"));
            }

            var trainingInputModel = new TrainingInputModel
            {
                PubID = existingTraining.TrainingPublicationID,

                PubNumber = existingTraining.TrainingPublication.TrainingPublicationNumber,

                Files = existingTraining.TrainingPublication.TrainingDocuments.Where(pd => pd.Status == "Current").Select(pd => new ReadViewModel
                {
                    TrainingDocumentID = pd.TrainingDocumentID,
                    FileName           = pd.FileName,
                    FileType           = pd.FileType,
                    FileUrl            = pd.FileUrl
                }).ToList(),

                TrainingReviewItems = existingTraining.TrainingReviewItems.Select(item => new TrainingReviewItemInputModel
                {
                    TrainingPublicationID = item.TrainingPublicationID,
                    CheckListID           = item.CheckListCheckListID,
                    Section              = item.CheckList.Section,
                    Item                 = item.CheckList.Item,
                    ItemNumber           = item.CheckList.ItemNumber,
                    CheckListName        = item.CheckList.CheckListName,
                    CheckListNumber      = item.CheckList.CheckListNumber,
                    Criteria             = item.CheckList.Criteria,
                    Critical             = item.CheckList.Critical,
                    Options              = item.CheckList.ChecklistOptionLinks.Where(o => o.Status == "Current").Select(o => o.Option).ToList(),
                    TrainingReviewItemID = item.TrainingReviewItemID,
                    Comments             = item.Comments,
                    OptionID             = item.OptionOptionID,
                    TrainingReviewID     = item.TrainingReviewID
                }).ToList().OrderBy(c => float.Parse(c.ItemNumber, CultureInfo.InvariantCulture.NumberFormat)).ThenBy(c => c.CheckListNumber).ToList()
            };

            return(View(trainingInputModel));
        }
Ejemplo n.º 2
0
        public ActionResult NewTraining()
        {
            var userid = (int)Membership.GetUser().ProviderUserKey;

            var allTraining = _db.TrainingPublications.Where(tp => !tp.TrainingReviews.Where(tr => tr.Status == "Current").Select(tr => tr.UserID).Contains(userid));

            if (!allTraining.Any())
            {
                return(RedirectToAction("Index"));
            }

            var RandomTraining = allTraining.OrderBy(t => Guid.NewGuid()).FirstOrDefault();

            /////////////// save training review & training review items

            var newTrainingReview = new TrainingReview
            {
                UserID = userid,
                TrainingPublicationID = RandomTraining.TrainingPublicationID,
                TotalPoints           = _db.CheckLists.Count(tr => !string.IsNullOrEmpty(tr.CheckListNumber)),
                LastUpdateTime        = DateTime.Now
            };

            _db.TrainingReviews.Add(newTrainingReview);

            var newTrainReviewItem = (from item in _db.CheckLists
                                      where !string.IsNullOrEmpty(item.CheckListNumber)
                                      select item).AsEnumerable().Select(checklist => new TrainingReviewItem
            {
                CheckListCheckListID  = checklist.CheckListID,
                ReviewerId            = userid,
                TrainingPublicationID = RandomTraining.TrainingPublicationID,
                TrainingReview        = newTrainingReview,
                LastUpdateTime        = DateTime.Now
            }).ToList();

            _db.TrainingReviewItems.AddRange(newTrainReviewItem);

            _db.SaveChanges();

            /////////////// create training input model

            var trainingInputModel = new TrainingInputModel
            {
                TrainingReviewID = newTrainingReview.TrainingReviewID,

                PubID = newTrainingReview.TrainingPublicationID,

                PubNumber = RandomTraining.PMID,

                Files = RandomTraining.TrainingDocuments.Where(pd => pd.Status == "Current").Select(pd => new ReadViewModel
                {
                    TrainingDocumentID = pd.TrainingDocumentID,
                    FileName           = pd.FileName,
                    FileType           = pd.FileType,
                    FileUrl            = pd.FileUrl
                }).ToList(),

                TrainingReviewItems = newTrainReviewItem.Select(c => new TrainingReviewItemInputModel
                {
                    TrainingReviewItemID  = c.TrainingReviewItemID,
                    TrainingPublicationID = RandomTraining.TrainingPublicationID,
                    CheckListID           = c.CheckList.CheckListID,
                    Section          = c.CheckList.Section,
                    Item             = c.CheckList.Item,
                    ItemNumber       = c.CheckList.ItemNumber,
                    CheckListName    = c.CheckList.CheckListName,
                    CheckListNumber  = c.CheckList.CheckListNumber,
                    Criteria         = c.CheckList.Criteria,
                    Critical         = c.CheckList.Critical,
                    Options          = c.CheckList.ChecklistOptionLinks.Where(o => o.Status == "Current").Select(o => o.Option).ToList(),
                    TrainingReviewID = newTrainingReview.TrainingReviewID
                }).ToList().OrderBy(c => float.Parse(c.ItemNumber, CultureInfo.InvariantCulture.NumberFormat)).ThenBy(c => c.CheckListNumber).ToList()
            };

            return(View(trainingInputModel));
        }