public async Task <IActionResult> Create([FromBody] CreateAnnouncementDto announcementDto)
        {
            int userId;

            try
            {
                userId = HttpContext.GetUserId();
            }
            catch (ArgumentNullException)
            {
                return(Unauthorized());
            }

            var announcement = new Announcement
            {
                Name        = announcementDto.Name,
                Type        = (AnnouncementType)Enum.Parse(typeof(AnnouncementType), announcementDto.Type),
                Description = announcementDto.Description,
                Image       = announcementDto.Image,
                CreatedAt   = DateTime.UtcNow,
                UserId      = userId
            };

            await _announcementRepository.CreateAsync(announcement);

            //https://localhost:5001 in this case
            var baseUrl     = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";
            var locationUri = baseUrl + ApiRoutes.Announcements.Get.Replace("{id}", announcement.Id.ToString());
            var response    = new AnnouncementResponse {
                Id = announcement.Id
            };

            //201 - Created
            return(Created(locationUri, response));
        }
예제 #2
0
        public MerchantOrderStatusResponse RetrieveAnnouncement(AnnouncementResponse announcementResponse)
        {
            var announcementDataAsJson      = _connector.GetAnnouncementData(announcementResponse);
            var merchantOrderStatusResponse = JsonHelper.Deserialize <MerchantOrderStatusResponse>(announcementDataAsJson);

            merchantOrderStatusResponse.ValidateSignature(_signingKey);
            return(merchantOrderStatusResponse);
        }
예제 #3
0
        private static string GetTestData(int poiId)
        {
            var announcementResponse = new AnnouncementResponse
            {
                PoiId          = poiId,
                Authentication = "MyJwt",
                ExpiryRaw      = "1970-01-01T00:00:00.000+02:00",
                EventName      = "merchant.order.status.changed",
                Signature      = "ec0f64d23b91debd1249ee56b1b67540bf1720760cb23a9a286acc222724a8d15c7e33f193710e7e0322ced44d066f8cc6a2fdbd9398f36fb1f0a277431034aa"
            };

            return(JsonHelper.Serialize(announcementResponse));
        }
예제 #4
0
 public string GetAnnouncementData(AnnouncementResponse announcement)
 {
     //ValidateToken();
     _restTemplate.SetToken(announcement.Authentication);
     return(_restTemplate.Get("order/server/api/events/results/" + announcement.EventName));
 }