コード例 #1
0
 public ActionResult Logout()
 {
     //if (User.Identity.IsAuthenticated)
     {
         FormsAuthentication.SignOut();
     }
     return(Redirect(AdminLinkBuilder.Home()));
 }
コード例 #2
0
        /// <summary>
        /// Модерация специализаций
        /// </summary>
        /// <returns></returns>
        public ActionResult SpecializationModeration()
        {
            if (!checkRight())
            {
                return(Login());
            }
            initMenu(AdminMenuType.ModerationSpecialization);


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


            int moderatorID = user.CurrentUserData.id;

            if (Request.HttpMethod == "POST")
            {
                //получить данные,
                int specializationID = RequestHelper.GetRequestFormInt(Request, "specializationid");
                int moderation       = RequestHelper.GetRequestFormInt(Request, "moderation");


                var specialization = Valueset.GetDoctorSpecialization(specializationID);
                if (specialization == null)
                {
                    //ошибка
                }
                else
                {
                    //сохранить данные
                    AdminRepository.UpdateSpecializationModeration(specialization.ID, moderation, moderatorID);

                    //   AdminRepository.UpdateClinicRating(clinic.ID);
                    // Обновление статистики по специализациям в клинике
                    //TODO
                }

                //редирект на модерацию
                return(Redirect(AdminLinkBuilder.SpecializationModeration()));
            }



            var vm = new AdminSpecializationModerationViewModel
            {
                //получить неотмодерированные данные по специализации
                Specialization = Valueset.GetNotModerationDoctorSpecialization()
            };



            return(View("AdminSpecializationModerationPage", vm));
        }
コード例 #3
0
        public ActionResult CityEdit(int id = 0)
        {
            if (!checkRight())
            {
                return(Login());
            }
            initMenu(AdminMenuType.CitySettings);

            bool error = false;

            if (Request.HttpMethod == "POST")
            {
                string cityName = RequestHelper.GetRequestFormText(Request, "cityname");
                if (string.IsNullOrEmpty(cityName))
                {
                    //ошибка
                    error = true;
                }
                else
                {
                    if (id == 0)
                    {
                        FormRepository.AddCity(cityName);
                    }
                    else
                    {
                        FormRepository.UpdateCity(id, cityName);
                    }
                    return(Redirect(AdminLinkBuilder.CityList()));
                }
            }

            var vm = new AdminCityEditViewModel();

            vm.Error    = error;
            vm.City     = FormRepository.GetCity(id);
            vm.CityName = "";
            if (vm.City == null || vm.City.ID == 0)
            {
                vm.IsNew = true;
            }
            else
            if (!error)
            {
                vm.CityName = vm.City.CityName;
            }
            return(View("AdminCityEditPage", vm));
        }
コード例 #4
0
        public ActionResult Login()
        {
            if (Request.HttpMethod == "POST")
            {
                var    username = RequestHelper.GetRequestFormText(Request, "username");
                var    password = RequestHelper.GetRequestFormText(Request, "password");
                string phone    = BookMedica.Models.Utils.ClearPhone(username);

                var userData = CityStar.Core.UserData.GetByPhone(phone);
                if (userData != null && userData.Password == password)
                {
                    FormsAuthentication.SetAuthCookie(userData.id.ToString(), false, "/");
                    return(Redirect(AdminLinkBuilder.Home()));
                }
                else
                {
                    //result.Status = "error";
                }
            }
            return(View("AdminLoginPage"));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        /// <summary>
        /// Страница модерации клиник
        /// </summary>
        /// <returns></returns>
        public ActionResult ClinicModeration()
        {
            if (!checkRight())
            {
                return(Login());
            }
            initMenu(AdminMenuType.ModerationClinic);


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


            int moderatorID = user.CurrentUserData.id;

            if (Request.HttpMethod == "POST")
            {
                //получить данные,
                int clinicID   = RequestHelper.GetRequestFormInt(Request, "clinicid");
                int moderation = RequestHelper.GetRequestFormInt(Request, "moderation");
                int skip       = RequestHelper.GetRequestFormInt(Request, "skip");
                var clinic     = FormRepository.GetClinic(clinicID);
                if (clinic == null)
                {
                    //ошибка
                }
                addLog("clinicID " + clinicID + " moderation " + moderation + " skip " + skip);
                if (skip > 0)
                {
                    //пометить флагом пропуск модерации
                    AdminRepository.SkipClinicModeration(clinic.ID, skip);
                }
                else
                {
                    //сохранить данные
                    AdminRepository.UpdateClinicModeration(clinic.ID, moderation, moderatorID);
                    //пересчет статистики по врачам клиник
                    //AdminRepository.UpdateClinicDoctorCount(clinic.ID);
                    //пересчет рейтинга по клинике
                    //   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.ClinicModeration()));
            }



            var vm = new AdminClinicModerationViewModel
            {
                //получить неотмодерированную клинику
                Clinic = AdminRepository.GetNotModerationClinic(),
            };

            if (vm.Clinic != null && vm.Clinic.ID > 0)
            {
                //фотоальбом
                vm.PhotoList = FormRepository.GetClinicPhotos(vm.Clinic.ID);
                //похожие клиники по названию и адресу
                vm.SimilarClinicList = AdminRepository.GetSimilarClinicList(vm.Clinic);
                vm.CityName          = FormRepository.GetCity(vm.Clinic.CityID).CityName;
            }

            return(View("AdminClinicModerationPage", vm));
        }
コード例 #7
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));
        }