Esempio n. 1
0
        public async Task <ApiResult <AddVipOwnerAnnouncementOutput> > AddVipOwnerAnnouncement([FromBody] AddVipOwnerAnnouncementInput input, CancellationToken cancelToken)
        {
            if (Authorization == null)
            {
                return(new ApiResult <AddVipOwnerAnnouncementOutput>(APIResultCode.Unknown, new AddVipOwnerAnnouncementOutput {
                }, APIResultMessage.TokenNull));
            }
            if (string.IsNullOrWhiteSpace(input.Content))
            {
                throw new NotImplementedException("公告内容信息为空!");
            }
            if (string.IsNullOrWhiteSpace(input.Title))
            {
                throw new NotImplementedException("公告标题信息为空!");
            }
            if (string.IsNullOrWhiteSpace(input.OwnerCertificationId))
            {
                throw new NotImplementedException("业主认证Id信息为空!");
            }

            var user = _tokenRepository.GetUser(Authorization);

            if (user == null)
            {
                return(new ApiResult <AddVipOwnerAnnouncementOutput>(APIResultCode.Unknown, new AddVipOwnerAnnouncementOutput {
                }, APIResultMessage.TokenError));
            }

            var entity = await _announcementRepository.AddVipOwnerAsync(new AnnouncementDto
            {
                Content              = input.Content,
                Summary              = input.Summary,
                Title                = input.Title,
                DepartmentValue      = Department.YeZhuWeiYuanHui.Value,
                DepartmentName       = Department.YeZhuWeiYuanHui.Name,
                OperationTime        = DateTimeOffset.Now,
                OperationUserId      = user.Id.ToString(),
                OwnerCertificationId = input.OwnerCertificationId
            }, cancelToken);

            if (!string.IsNullOrWhiteSpace(input.AnnexId))
            {
                await _announcementAnnexRepository.AddAsync(new AnnouncementAnnexDto
                {
                    AnnexContent    = input.AnnexId,
                    AnnouncementId  = entity.Id.ToString(),
                    OperationTime   = DateTimeOffset.Now,
                    OperationUserId = user.Id.ToString()
                }, cancelToken);
            }

            var url           = (await _announcementAnnexRepository.GetAsync(entity.Id.ToString()))?.AnnexContent;
            var OperationName = (await _ownerCertificationRecordRepository.GetIncludeAsync(entity.OwnerCertificationId, cancelToken))?.Owner.Name;

            await AnnouncementPushRemind(new AnnouncementPushModel
            {
                Content        = entity.Content,
                Id             = entity.Id.ToString(),
                ReleaseTime    = entity.CreateOperationTime.Value.ToString("yyyy'-'MM'-'dd' 'HH':'mm':'ss"),
                Summary        = entity.Summary,
                Title          = entity.Title,
                Url            = url,
                CreateUserName = OperationName
            }, entity.SmallDistrictArray);

            return(new ApiResult <AddVipOwnerAnnouncementOutput>(APIResultCode.Success, new AddVipOwnerAnnouncementOutput {
                Id = entity.Id.ToString()
            }));
        }