Esempio n. 1
0
        public async Task TestAddPushNotificationSubscriptionAsync()
        {
            //Setup
            TestingContext testingContext = new TestingContext();

            SetUpTestingContext(testingContext);

            INotificationService        notificationService = testingContext.GetService <NotificationService>();
            NotificationSubscriptionDto dto = new NotificationSubscriptionDto()
            {
                Endpoint = "Test",
                Keys     = new KeyDto()
                {
                    Auth   = "TestAut",
                    P256dh = "testp256",
                },
                ExpirationTime = DateTime.Today.AddYears(3),
            };

            //Act
            await notificationService.AddPushNotificationSubscriptionAsync(dto);

            //Assert
            ApplicationDbContext     dbContext = testingContext.GetSimple <ApplicationDbContext>();
            NotificationSubscription sub       = await dbContext.Notifications.LastAsync();

            Assert.Equal(dto.Endpoint, sub.Endpoint);
            Assert.True(sub.Id > 0);
        }
Esempio n. 2
0
 private void CopyDataSubscription(NotificationSubscriptionDto dto, NotificationSubscription entity)
 {
     entity.Endpoint       = dto.Endpoint;
     entity.Auth           = dto.Keys?.Auth;
     entity.P256DiffHell   = dto.Keys?.P256dh;
     entity.ExpirationTime = dto.ExpirationTime;
     entity.AsString       = dto.AsString;
 }
Esempio n. 3
0
        public async Task AddPushNotificationSubscriptionAsync(NotificationSubscriptionDto subscriptionDto)
        {
            await this._dbLogService.LogMessageAsync($"adding subscription: {subscriptionDto.Endpoint}");

            if (!_context.Notifications.Any(x => x.Endpoint == subscriptionDto.Endpoint &&
                                            x.Auth == subscriptionDto.Keys.Auth && x.Active))
            {
                NotificationSubscription entity = new NotificationSubscription();
                CopyData(subscriptionDto, entity);
                entity.User = await GetCranUserAsync();

                await this._context.Notifications.AddAsync(entity);

                await this._context.SaveChangesAsync();
            }
        }
Esempio n. 4
0
        public async Task <JsonResult> AddPushRegistration([FromBody] NotificationSubscriptionDto dto)
        {
            await _notificationService.AddPushNotificationSubscriptionAsync(dto);

            return(Json(OkReturnString));
        }
Esempio n. 5
0
 protected virtual void CopyData(object dto, CranEntity entity)
 {
     if (dto is QuestionOptionDto && entity is QuestionOption)
     {
         QuestionOptionDto dtoSource         = (QuestionOptionDto)dto;
         QuestionOption    entityDestination = (QuestionOption)entity;
         entityDestination.IsTrue     = dtoSource.IsTrue;
         entityDestination.Text       = dtoSource.Text ?? string.Empty;
         entityDestination.IdQuestion = dtoSource.IdQuestion;
     }
     else if (dto is QuestionDto && entity is Question)
     {
         QuestionDto dtoSource         = (QuestionDto )dto;
         Question    entityDestination = (Question)entity;
         entityDestination.Title        = dtoSource.Title;
         entityDestination.Text         = dtoSource.Text ?? string.Empty;
         entityDestination.Explanation  = dtoSource.Explanation;
         entityDestination.QuestionType = dtoSource.QuestionType;
         entityDestination.Language     = Enum.Parse <Language>(dtoSource.Language);
     }
     else if (dto is RelQuestionTagDto && entity is RelQuestionTag)
     {
         RelQuestionTagDto dtoSource         = (RelQuestionTagDto)dto;
         RelQuestionTag    entityDestination = (RelQuestionTag)entity;
         entityDestination.IdQuestion = dtoSource.IdQuestion;
         entityDestination.IdTag      = dtoSource.IdTag;
     }
     else if (dto is RelQuestionImageDto && entity is RelQuestionImage)
     {
         RelQuestionImageDto dtoSource         = (RelQuestionImageDto)dto;
         RelQuestionImage    entityDestination = (RelQuestionImage)entity;
         entityDestination.IdQuestion = dtoSource.IdQuestion;
         entityDestination.IdImage    = dtoSource.IdImage;
     }
     else if (dto is ImageDto && entity is Image)
     {
         ImageDto dtoSource         = (ImageDto)dto;
         Image    entityDestination = (Image)entity;
         entityDestination.Width  = dtoSource.Width;
         entityDestination.Height = dtoSource.Height;
         entityDestination.Full   = dtoSource.Full;
     }
     else if (dto is CourseDto && entity is Course)
     {
         CourseDto dtoSource         = (CourseDto)dto;
         Course    entityDestination = (Course)entity;
         entityDestination.Title             = dtoSource.Title;
         entityDestination.Language          = Enum.Parse <Language>(dtoSource.Language);
         entityDestination.NumQuestionsToAsk = dtoSource.NumQuestionsToAsk;
         entityDestination.Description       = dtoSource.Description;
     }
     else if (dto is RelCourseTagDto && entity is RelCourseTag)
     {
         RelCourseTagDto dtoSource         = (RelCourseTagDto)dto;
         RelCourseTag    entityDestination = (RelCourseTag)entity;
         entityDestination.IdCourse = dtoSource.IdCourse;
         entityDestination.IdTag    = dtoSource.IdTag;
     }
     else if (dto is NotificationSubscriptionDto && entity is NotificationSubscription)
     {
         NotificationSubscriptionDto dtoSource         = (NotificationSubscriptionDto)dto;
         NotificationSubscription    entityDestination = (NotificationSubscription)entity;
         entityDestination.Endpoint       = dtoSource.Endpoint;
         entityDestination.Auth           = dtoSource.Keys?.Auth;
         entityDestination.P256DiffHell   = dtoSource.Keys?.P256dh;
         entityDestination.ExpirationTime = dtoSource.ExpirationTime;
         entityDestination.AsString       = dtoSource.AsString;
     }
     else
     {
         throw new NotImplementedException();
     }
 }