public ActionResult DoctorModeration() { if (!checkRight()) { return(Login()); } initMenu(AdminMenuType.ModerationDoctor); //addLog("UserIsAuthenticated " + G.UserIsAuthenticated); var user = CityStar.Core.CurrentUser.GetInstance(); //addLog(user.IsAuthenticated.ToString()); int moderatorID = user.CurrentUserData.id; if (Request.HttpMethod == "POST") { //получить данные, int doctorID = RequestHelper.GetRequestFormInt(Request, "doctorid"); int moderation = RequestHelper.GetRequestFormInt(Request, "moderation"); int skip = RequestHelper.GetRequestFormInt(Request, "skip"); int joinDoctor = RequestHelper.GetRequestFormInt(Request, "join-doctor"); var doctor = FormRepository.GetDoctor(doctorID); if (doctor == null) { //ошибка } if (joinDoctor > 0) { //объединение с другим врачом //у врача ставится статус модерации = 5 объединен, отзывы переносятся на другого врача //сохранить данные AdminRepository.UpdateDoctorModeration(doctor.ID, Values.MODERATION_STATUS_JOIN, moderatorID); //перенос отзывов AdminRepository.TransferOpinions(joinDoctor, doctor.ID); //пересчет кол-ва отзывов по врачу и его клиникам FormRepository.UpdateDoctorRating(joinDoctor); } else { if (skip > 0) { //пометить флагом пропуск модерации AdminRepository.SkipDoctorModeration(doctor.ID, skip); } else { // addLog("opinionID " + opinionID + " moderation " + moderation); //сохранить данные AdminRepository.UpdateDoctorModeration(doctor.ID, moderation, moderatorID); //пересчет статистики по врачам клиник AdminRepository.UpdateClinicDoctorCount(doctor.ClinicList); //пересчет рейтинга по клинике // AdminRepository.UpdateClinicRating(clinic.ID); // Обновление статистики по городу FormRepository.UpdateCityStatistic(); //отправить смс автору отзывы, если приняли отзыв /* if (moderation == 2) * { * string phone = UserRepository.GetUserPhone(opinion.UserID); * Utils.SendSMS(opinion.UserID, phone, "Ваш отзыв о враче успешно прошел модерацию и опубликован на BookMedica.ru. Спасибо, что вы помогли сделать мир лучше!", true); * }*/ } } //редирект на модерацию return(Redirect(AdminLinkBuilder.DoctorModeration())); } var vm = new AdminDoctorModerationViewModel { //получить неотмодерированного врача Doctor = AdminRepository.GetNotModerationDoctor(), }; if (vm.Doctor != null && vm.Doctor.ID > 0) { //сертификаты vm.CertificateList = FormRepository.GetDoctorCertificateList(vm.Doctor.ID); //похожие по фамилии врачи vm.SimilarDoctorList = AdminRepository.GetSimilarDoctorList(vm.Doctor); //колво отзывов у этого врача vm.OpinionCount = FormRepository.GetDoctorAllOpinionCount(vm.Doctor.ID); vm.CityName = FormRepository.GetCity(vm.Doctor.CityID).CityName; } return(View("AdminDoctorModerationPage", vm)); }
/// <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)); }