/// <summary>
        /// 确认报警记录
        /// </summary>
        /// <param name="input">确认报警记录输入</param>
        /// <returns>是否成功</returns>
        public async Task <OutputBase> ConfirmAlarm(ConfirmAlarmInput input)
        {
            var alarm = await _repository.GetAlarmById(input.AlarmId);

            if (alarm == null)
            {
                return(OutputBase.Fail("该报警记录不存在"));
            }
            var doctor = await _doctorRepository.GetDoctorById(input.DoctorId);

            if (doctor == null)
            {
                return(OutputBase.Fail("确认的医护人员不存在"));
            }
            await _repository.ConfirmAlarm(input.AlarmId);

            string content = string.Format("{0}医生确认了您的体重预警", doctor.Name);
            var    entity  = new Message
            {
                IsRead    = false,
                Content   = content,
                ReceiveId = alarm.PatientId,
                Title     = "确认体重预警",
                Type      = (int)MessageTypeEnum.确认体重预警,
                SendId    = input.DoctorId,
                SendName  = doctor.Name,
                Url       = string.Empty,
                OuterId   = input.AlarmId.ToString(),
                AppType   = (int)AppTypeEnum.Patient
            };

            _messageRepository.Add(entity);
            if (!_unitWork.Commit())
            {
                return(OutputBase.Fail("确认失败"));
            }
            #region 异步发送JPush Notification、Message
            ThreadPool.QueueUserWorkItem(delegate
            {
                new JPushMessage(AppTypeEnum.Patient, (int)JPushKeyEnum.ConfirmAlarm, alarm.PatientId.ToString(), content, entity.OuterId, _optionsAccessor.IsDevModel).SendPush();
                new JPushNotification(AppTypeEnum.Patient, (int)JPushKeyEnum.ConfirmAlarm, alarm.PatientId.ToString(), content, entity.OuterId, _optionsAccessor.IsDevModel).SendPush();
            });
            #endregion

            return(OutputBase.Success("确认成功"));
        }
Exemplo n.º 2
0
 public async Task <OutputBase> ConfirmAlarm([FromBody] ConfirmAlarmInput input)
 {
     return(await _service.ConfirmAlarm(input));
 }