Example #1
0
        public ActionResult CreateUnallocatedLearnerListXlsx(LearnerQueryViewModel viewModel, String tableName)
        {
            ViewResult result = (ViewResult)InquireLearner(viewModel);
            IQueryable <UserProfile> items = result.Model as IQueryable <UserProfile>;

            if (items == null)
            {
                ViewBag.GoBack = true;
                return(View("~/Views/Shared/JsAlert.cshtml", model: "資料錯誤!!"));
            }

            items = items.Where(u => !u.LearnerFitnessAdvisor.Any())
                    .Where(l => l.UserProfileExtension != null && !l.UserProfileExtension.CurrentTrial.HasValue);

            renderToXlsx(items, $"UnallocatedLearner({DateTime.Now:yyyy-MM-dd HH-mm-ss})");
            return(new EmptyResult());
        }
Example #2
0
        public ActionResult CommitAdvisorAssignment(LearnerQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;

            if (viewModel.KeyID != null)
            {
                viewModel.UID = viewModel.DecryptKeyValue();
            }

            if (!viewModel.CoachID.HasValue)
            {
                ModelState.AddModelError("CoachID", "請選擇體能顧問");
            }

            if (!viewModel.UID.HasValue)
            {
                ModelState.AddModelError("UID", "請選擇學員");
            }

            if (!ModelState.IsValid)
            {
                ViewBag.ModelState = this.ModelState;
                return(View("~/Views/Shared/ReportInputError.ascx"));
            }

            if (viewModel.DataOperation == Naming.DataOperationMode.Delete)
            {
                models.DeleteAny <LearnerFitnessAdvisor>(a => a.UID == viewModel.UID && a.CoachID == viewModel.CoachID);
            }
            else
            {
                if (!models.GetTable <LearnerFitnessAdvisor>().Any(f => f.UID == viewModel.UID && f.CoachID == viewModel.CoachID))
                {
                    models.GetTable <LearnerFitnessAdvisor>().InsertOnSubmit(new LearnerFitnessAdvisor
                    {
                        UID     = viewModel.UID.Value,
                        CoachID = viewModel.CoachID.Value
                    });
                    models.SubmitChanges();
                }
            }

            return(Json(new { result = true }));
        }
Example #3
0
        public ActionResult ShowLearnerAboutToBirth(LearnerQueryViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var items = models.PromptLearner(viewModel.IncludeTrial == true);

            if (viewModel.KeyID != null)
            {
                viewModel.CoachID = viewModel.DecryptKeyValue();
            }

            if (viewModel.CoachID.HasValue)
            {
                var coach = models.GetTable <ServingCoach>().Where(c => c.CoachID == viewModel.CoachID).FirstOrDefault();
                items = items.FilterLearnerByAdvisor(coach, models);
            }

            if (viewModel.BirthIncomingDays.HasValue)
            {
                items = items.FilterLearnerWithBirthday(DateTime.Today, DateTime.Today.AddDays(viewModel.BirthIncomingDays.Value));
            }

            return(View("~/Views/LearnerProfile/ProfileModal/LearnerAboutToBirth.cshtml", items));
        }
Example #4
0
        public ActionResult InquireLearner(LearnerQueryViewModel viewModel)
        {
            IQueryable <UserProfile> items = models.GetTable <UserProfile>()
                                             .FilterByLearner(models, true);

            Expression <Func <UserProfile, bool> > queryExpr = u => false;

            bool hasCondition = false;

            viewModel.RealName = viewModel.RealName.GetEfficientString();
            if (viewModel.RealName != null)
            {
                queryExpr    = queryExpr.Or(m => m.RealName.Contains(viewModel.RealName) || m.Nickname.Contains(viewModel.RealName));
                hasCondition = true;
            }

            if (!hasCondition)
            {
                viewModel.IDNo = viewModel.IDNo.GetEfficientString();
                if (viewModel.IDNo != null)
                {
                    queryExpr    = queryExpr.Or(c => c.UserProfileExtension.IDNo.StartsWith(viewModel.IDNo));
                    hasCondition = true;
                }
            }

            if (!hasCondition)
            {
                viewModel.Phone = viewModel.Phone.GetEfficientString();
                if (viewModel.Phone != null)
                {
                    queryExpr    = queryExpr.Or(c => c.Phone == viewModel.Phone);
                    hasCondition = true;
                }
            }

            if (!hasCondition)
            {
                if (viewModel.UID.HasValue)
                {
                    queryExpr    = queryExpr.Or(c => c.UID == viewModel.UID);
                    hasCondition = true;
                }
            }

            if (!hasCondition)
            {
                if (viewModel.CoachID.HasValue)
                {
                    queryExpr    = queryExpr.Or(c => c.LearnerFitnessAdvisor.Any(a => a.CoachID == viewModel.CoachID));
                    hasCondition = true;
                }
            }

            if (hasCondition)
            {
                items = items.Where(queryExpr);
            }

            if (viewModel.CurrentTrial.HasValue)
            {
                if (viewModel.CurrentTrial == 1)
                {
                    items = items.Where(u => u.UserProfileExtension.CurrentTrial.HasValue);
                }
                else
                {
                    items = items.Where(u => !u.UserProfileExtension.CurrentTrial.HasValue);
                }
            }

            if (viewModel.MemberStatus.HasValue)
            {
                items = items.Where(u => u.LevelID == (int)viewModel.MemberStatus);
            }

            viewModel.Gender = viewModel.Gender.GetEfficientString();
            if (viewModel.Gender != null)
            {
                items = items.Where(u => u.UserProfileExtension.Gender == viewModel.Gender);
            }

            if (viewModel.AthleticLevel.HasValue)
            {
                items = items.Where(u => u.UserProfileExtension.AthleticLevel == viewModel.AthleticLevel);
            }

            return(View("~/Views/Learner/Module/LearnerList.ascx", items));
        }