Exemple #1
0
        public async Task <IActionResult> Create(CreateViewModel vm)
        {
            if (vm.StartDate < DateTime.Now)
            {
                ModelState.AddModelError("StartDate", "Date must be in future!");
                vm.Doctors = await _userService.GetDoctorsForSpecialityExcludingDoctor(vm.Speciality);

                return(View(vm));
            }

            if (ModelState.IsValid)
            {
                vm.StartDate = vm.StartDate.AddHours(2);
                var visit = vm.ConvertToDataModel();
                visit.Patient = await _userService.GetById(vm.PatientId);

                visit.Doctor = await _userService.GetById(vm.DoctorId);

                await _visitService
                .CreateVisit(visit);

                return(RedirectToAction("Index"));
            }
            vm.Doctors = await _userService.GetDoctorsForSpecialityExcludingDoctor(vm.Speciality);

            return(View(vm));
        }
Exemple #2
0
        /// <summary>
        /// 资讯详情页
        /// </summary>
        public ActionResult ContentItemDetail(long contentItemId)
        {
            ContentItem contentItem = contentItemService.Get(contentItemId);

            if (contentItem == null || contentItem.User == null)
            {
                return(HttpNotFound());
            }

            //验证是否通过审核
            long currentSpaceUserId = UserIdToUserNameDictionary.GetUserId(contentItem.User.UserName);

            if (!authorizer.IsAdministrator(CmsConfig.Instance().ApplicationId) && contentItem.UserId != currentSpaceUserId &&
                (int)contentItem.AuditStatus < (int)(new AuditService().GetPubliclyAuditStatus(CmsConfig.Instance().ApplicationId)))
            {
                return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                {
                    Title = "尚未通过审核",
                    Body = "由于当前资讯尚未通过审核,您无法浏览当前内容。",
                    StatusMessageType = StatusMessageType.Hint
                })));
            }

            AttachmentService <Attachment> attachmentService = new AttachmentService <Attachment>(TenantTypeIds.Instance().ContentItem());


            //更新浏览计数
            CountService countService = new CountService(TenantTypeIds.Instance().ContentItem());

            countService.ChangeCount(CountTypes.Instance().HitTimes(), contentItem.ContentItemId, contentItem.UserId, 1, true);
            if (UserContext.CurrentUser != null)
            {
                //创建访客记录
                VisitService visitService = new VisitService(TenantTypeIds.Instance().ContentItem());
                visitService.CreateVisit(UserContext.CurrentUser.UserId, UserContext.CurrentUser.DisplayName, contentItem.ContentItemId, contentItem.Title);
            }
            //设置SEO信息
            pageResourceManager.InsertTitlePart(contentItem.Title);
            List <string> keywords = new List <string>();

            keywords.AddRange(contentItem.TagNames);
            string keyword = string.Join(" ", keywords.Distinct());

            keyword += " " + string.Join(" ", ClauseScrubber.TitleToKeywords(contentItem.Title));
            pageResourceManager.SetMetaOfKeywords(keyword);
            pageResourceManager.SetMetaOfDescription(contentItem.Summary);
            return(View(contentItem));
        }
        public IHttpActionResult Post(VisitCreate model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            VisitService service = CreateVisitService();

            if (service.CreateVisit(model))
            {
                return(Ok());
            }

            return(InternalServerError());
        }
        /// <summary>
        /// 群组空间主页
        /// </summary>
        /// <param name="spaceKey">群组标识</param>
        /// <returns></returns>
        public ActionResult Home(string spaceKey)
        {
            GroupEntity group = groupService.Get(spaceKey);

            //已修改
            if (group == null)
            {
                return(HttpNotFound());
            }

            IEnumerable <ApplicationBase> applications = applicationService.GetInstalledApplicationsOfOwner(PresentAreaKeysOfBuiltIn.GroupSpace, group.GroupId);


            //这里先判断group是否为空,再插入了群组名
            pageResourceManager.InsertTitlePart(group.GroupName);

            //浏览计数
            new CountService(TenantTypeIds.Instance().Group()).ChangeCount(CountTypes.Instance().HitTimes(), group.GroupId, group.UserId);


            //1.为什么匿名用户就不让访问?
            //2.这里有个大问题,私密群组应该不允许非群组成员访问,
            //可以参考Common\Mvc\Attributes\UserSpaceAuthorizeAttribute.cs,在Group\Extensions\增加一个GroupSpaceAuthorizeAttribute
            //3.当设置为私密群组并且允许用户申请加入时,应允许用户浏览群组首页,但只能看部分信息,具体需求可找宝声确认;

            //当前用户
            IUser user = UserContext.CurrentUser;

            if (user != null)
            {
                //ok,传递这些结果可以吗?
                //已修改
                //这样做很不好,直接用Authorizer
                bool isMember = groupService.IsMember(group.GroupId, user.UserId);
                visitService.CreateVisit(user.UserId, user.DisplayName, group.GroupId, group.GroupName);
                ViewData["isMember"] = isMember;
            }
            ViewData["isPublic"]     = group.IsPublic;
            TempData["GroupMenu"]    = GroupMenu.Home;
            ViewData["applications"] = applications;

            return(View(group));
        }
        /// <summary>
        /// 专题空间主页
        /// </summary>
        /// <param name="spaceKey">专题标识</param>
        /// <returns></returns>
        public ActionResult Home(string spaceKey)
        {
            TopicEntity topic = topicService.Get(spaceKey);

            //已修改
            if (topic == null)
            {
                return(HttpNotFound());
            }

            IEnumerable <ApplicationBase> applications = applicationService.GetInstalledApplicationsOfOwner(PresentAreaKeysOfExtension.TopicSpace, topic.TopicId);


            //这里先判断topic是否为空,再插入了专题名
            pageResourceManager.InsertTitlePart(topic.TopicName);

            //浏览计数
            new CountService(TenantTypeIds.Instance().Topic()).ChangeCount(CountTypes.Instance().HitTimes(), topic.TopicId, topic.UserId);


            //1.为什么匿名用户就不让访问?
            //2.这里有个大问题,私密专题应该不允许非专题成员访问,
            //可以参考Common\Mvc\Attributes\UserSpaceAuthorizeAttribute.cs,在topic\Extensions\增加一个topicSpaceAuthorizeAttribute
            //3.当设置为私密专题并且允许用户申请加入时,应允许用户浏览专题首页,但只能看部分信息,具体需求可找宝声确认;

            //当前用户
            IUser user = UserContext.CurrentUser;

            if (user != null)
            {
                //ok,传递这些结果可以吗?
                //已修改
                //这样做很不好,直接用Authorizer
                bool isMember = topicService.IsMember(topic.TopicId, user.UserId);
                visitService.CreateVisit(user.UserId, user.DisplayName, topic.TopicId, topic.TopicName);
                ViewData["isMember"] = isMember;
            }
            ViewData["isPublic"]     = topic.IsPublic;
            TempData["TopicMenu"]    = TopicMenu.Home;
            ViewData["applications"] = applications;

            return(View(topic));
        }