public ActionResult InquirePromotionParticipant(PromotionParticipantViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditPromotionParticipant(viewModel);
            PDQGroup   item   = result.Model as PDQGroup;

            if (item == null)
            {
                return(result);
            }

            IQueryable <UserProfile> items;

            viewModel.UserName = viewModel.UserName.GetEfficientString();
            if (viewModel.UserName == null)
            {
                this.ModelState.AddModelError("UserName", "請輸學員名稱!!");
                ViewBag.ModelState = this.ModelState;
                return(View("~/Views/Shared/ReportInputError.ascx"));
            }
            else
            {
                items = models.GetTable <UserProfile>()
                        .Where(l => l.RealName.Contains(viewModel.UserName) || l.Nickname.Contains(viewModel.UserName))
                        .FilterByLearner(models, true)
                        .OrderBy(l => l.RealName);
            }

            return(View("~/Views/CoachFacet/Module/VipSelector.ascx", items));
        }
        public ActionResult CommitPromotionParticipant(PromotionParticipantViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditPromotionParticipant(viewModel);
            PDQGroup   item   = result.Model as PDQGroup;

            if (item == null)
            {
                return(result);
            }

            if (!viewModel.UID.HasValue)
            {
                this.ModelState.AddModelError("UID", "請選擇學員!!");
                ViewBag.ModelState = this.ModelState;
                return(View("~/Views/Shared/ReportInputError.ascx"));
            }

            var quest = item.PDQQuestion.First();

            var taskItem = new PDQTask
            {
                QuestionID   = quest.QuestionID,
                UID          = viewModel.UID.Value,
                TaskDate     = DateTime.Now,
                PDQTaskBonus = new PDQTaskBonus {
                },
            };

            models.GetTable <PDQTask>().InsertOnSubmit(taskItem);
            models.SubmitChanges();

            return(Json(new { result = true, bonus = taskItem != null }));
        }
        public ActionResult SelectPromotionParticipant(PromotionParticipantViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditPromotionParticipant(viewModel);
            PDQGroup   item   = result.Model as PDQGroup;

            if (item == null)
            {
                return(result);
            }

            return(View("~/Views/Promotion/Module/SelectPromotionParticipant.ascx", item));
        }
        public ActionResult EditPromotionParticipant(PromotionParticipantViewModel viewModel)
        {
            ViewBag.ViewModel = viewModel;
            var item = loadPromotionItem(viewModel);

            if (item == null)
            {
                return(View("~/Views/Shared/JsAlert.cshtml", model: "活動方案資料錯誤!!"));
            }

            return(View("~/Views/Promotion/Module/EditPromotionParticipant.ascx", item));
        }
        public ActionResult ListPromotionParticipant(PromotionParticipantViewModel viewModel)
        {
            ViewResult result = (ViewResult)EditPromotionParticipant(viewModel);
            PDQGroup   item   = result.Model as PDQGroup;

            if (item == null)
            {
                return(result);
            }

            var pdq   = item.PDQQuestion.First();
            var items = models.GetTable <PDQTask>().Where(t => t.QuestionID == pdq.QuestionID);

            ViewBag.DataItem = item;

            return(View("~/Views/Promotion/Module/PromotionParticipantList.ascx", items));
        }
        public ActionResult DeletePromotionParticipant(PromotionParticipantViewModel viewModel)
        {
            if (viewModel.KeyID != null)
            {
                viewModel.TaskID = viewModel.DecryptKeyValue();
            }

            try
            {
                models.ExecuteCommand("delete PDQTask where TaskID = {0}", viewModel.TaskID);
                return(Json(new { result = true }));
            }
            catch (Exception ex)
            {
                ApplicationLogging.CreateLogger <PromotionController>().LogError(ex, ex.Message);
                return(Json(new { result = false, message = "點數已兌換,無法刪除!!" }));
            }
        }
        public ActionResult DeletePromotionParticipant(PromotionParticipantViewModel viewModel)
        {
            if (viewModel.KeyID != null)
            {
                viewModel.TaskID = viewModel.DecryptKeyValue();
            }

            try
            {
                models.ExecuteCommand("delete PDQTask where TaskID = {0}", viewModel.TaskID);
                return(Json(new { result = true }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                return(Json(new { result = false, message = "點數已兌換,無法刪除!!" }, JsonRequestBehavior.AllowGet));
            }
        }