예제 #1
0
        //[AllowAnonymous]
        public MessageModel <NotificationSettingDTO> SwitchNotification([FromBody] NotificationSettingRequest request)
        {
            var userId = int.Parse(User.FindFirstValue("id"));
            PushNotificationSetting result = notificationService.SwitchNotification(userId, request.IsTurnOn);
            NotificationSettingDTO  dto    = mapper.Map <NotificationSettingDTO>(result);

            return(new MessageModel <NotificationSettingDTO>
            {
                Msg = result == null ? "error" : "",
                Data = dto
            });
        }
        public async Task <bool> UpdateEntityByIdAsync(NotificationSettingRequest request, int id)
        {
            var entity = _mapper.Map <NotificationSettingRequest, NotificationSetting>(request);

            entity.Id = id;

            // In returns updated entity, you could do smth with it or just leave as it is
            var updated = await _uow.NotificationSettingsRepository.UpdateAsync(entity);

            var result = await _uow.SaveAsync();

            return(result);
        }
        public virtual async Task <ActionResult> Update([FromRoute] int id, [FromBody] NotificationSettingRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = await _service.UpdateEntityByIdAsync(request, id);

            if (!result)
            {
                return(StatusCode(500));
            }

            return(NoContent());
        }
        public virtual async Task <ActionResult <SampleDto> > Create([FromBody] NotificationSettingRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dto = await _service.CreateEntityAsync(request, "Qwerty");

            if (dto == null)
            {
                return(StatusCode(500));
            }

            return(Ok(dto));
        }
        public async Task <NotificationSetting> CreateEntityAsync(NotificationSettingRequest request, string userId)
        {
            var entity = new NotificationSetting()
            {
                UserId      = userId,
                IsDisable   = request.IsDisable,
                IsEmailable = request.IsEmailable,
                IsMute      = request.IsMute,
                Type        = request.Type,
            };

            var a = await _uow.NotificationSettingsRepository.CreateAsync(entity);

            await _uow.SaveAsync();

            return(entity);
        }
        public async Task <NotificationSettingResponse> UpdateUserNotificationSettingsAsync(NotificationSettingRequest notificationSettingRequest)
        {
            Ensure.That(notificationSettingRequest).IsNotNull();

            var member = await _memberService.GetMemberBySaasUserIdAsync(notificationSettingRequest.SaasUserId);

            if (member == null)
            {
                throw new NetKitChatNotFoundException("Requested member does not exist.");
            }

            var existingNotificationSettings = await UnitOfWork.NotificationSettingRepository.GetSettingsByMemberIdAsync(member.Id);

            if (existingNotificationSettings != null)
            {
                existingNotificationSettings = FillNotificationSettings(notificationSettingRequest.Key, notificationSettingRequest.Value, existingNotificationSettings);
                await UnitOfWork.NotificationSettingRepository.UpdateSettingsAsync(existingNotificationSettings);
            }
            else
            {
                var notificationSettings = new NotificationSettings
                {
                    Id       = Guid.NewGuid(),
                    MemberId = member.Id
                };

                notificationSettings = FillNotificationSettings(notificationSettingRequest.Key, notificationSettingRequest.Value, notificationSettings);
                await UnitOfWork.NotificationSettingRepository.AddSettingsAsync(notificationSettings);
            }

            var userNotificationSettings = await UnitOfWork.NotificationSettingRepository.GetSettingsByMemberIdAsync(member.Id);

            return(DomainModelsMapper.MapToNotificationSettingsResponse(userNotificationSettings));
        }