Exemplo n.º 1
0
        /// <summary>
        /// Страница модерации отзывов
        /// </summary>
        /// <returns></returns>
        public ActionResult OpinionModeration()
        {
            if (!checkRight())
            {
                return(Login());
            }
            initMenu(AdminMenuType.ModerationOpinion);


            //addLog("UserIsAuthenticated " + G.UserIsAuthenticated);
            var user = CityStar.Core.CurrentUser.GetInstance();
            //addLog(user.IsAuthenticated.ToString());


            int moderatorID = user.CurrentUserData.id;

            if (Request.HttpMethod == "POST")
            {
                //получить данные,
                int opinionID  = RequestHelper.GetRequestFormInt(Request, "opinionid");
                int moderation = RequestHelper.GetRequestFormInt(Request, "moderation");
                var opinion    = FormRepository.GetDoctorOpinion(opinionID);
                if (opinion == null)
                {
                    //ошибка
                }
                addLog("opinionID " + opinionID + " moderation " + moderation);
                //сохранить данные
                AdminRepository.UpdateOpinionModeration(opinionID, moderation, moderatorID);
                //пересчет статистики по рекомендациям
                AdminRepository.UpdateDoctorRecomendation(opinion.OnID);
                //пересчет рейтинга по врачу и клинике
                FormRepository.UpdateDoctorRating(opinion.OnID);

                //отправить смс автору отзывы, если приняли отзыв
                if (moderation == 2)
                {
                    string phone = UserRepository.GetUserPhone(opinion.UserID);
                    Utils.SendSMS(opinion.UserID, phone, "Ваш отзыв о враче успешно прошел модерацию и опубликован на BookMedica.ru. Спасибо, что вы помогли сделать мир лучше!", true);
                }
                //редирект на модерацию
                return(Redirect(AdminLinkBuilder.OpinionModeration()));
            }



            var vm = new AdminOpinionModerationViewModel
            {
                //получить список 5 неотмодерированных отзывов
                Opinion = AdminRepository.GetNotModerationOpinion(),
                //получить данные по формированию отзыва
                CriterionList = FormRepository.GetDoctorCriterionList()
            };

            //данные по врачу
            if (vm.Opinion != null && vm.Opinion.ID > 0)
            {
                vm.Doctor = FormRepository.GetDoctor(vm.Opinion.OnID);
                //надо проверить что клиника в отзыве есть у врача
                if (!FormRepository.CheckDoctorClinic(vm.Opinion.OnID, vm.Opinion.ClinicID))
                {
                    //клиники такой нет,
                    vm.OthenClinic = FormRepository.GetClinic(vm.Opinion.ClinicID);
                }
            }


            return(View("AdminOpinionModerationPage", vm));
        }