Exemplo n.º 1
0
        public async Task <IActionResult> UpdatePushNotification([ModelBinder(typeof(JsonModelBinder <PushNotificationDto>))] Delta <PushNotificationDto> pushNotificationDelta)
        {
            if (!ModelState.IsValid)
            {
                return(await Error());
            }

            var currentPushNotification = _pushNotificationApiService.GetPushNotificationById(pushNotificationDelta.Dto.Id);

            if (currentPushNotification == null)
            {
                return(await Error(HttpStatusCode.NotFound, "push_notification", "not found"));
            }

            pushNotificationDelta.Merge(currentPushNotification);

            //stores
            if (pushNotificationDelta.Dto.StoreIds.Count > 0)
            {
                await AddValidStores(pushNotificationDelta, currentPushNotification);
            }

            _pushNotificationService.UpdatePushNotification(currentPushNotification);

            await UserActivityService.InsertActivityAsync("EditPushNotification", $"Edited a push notification (ID = {currentPushNotification.Id})", currentPushNotification);

            var rootObj = new PushNotificationRootObject();

            rootObj.PushNotifications.Add(currentPushNotification.ToDto());

            var json = JsonFieldsSerializer.Serialize(rootObj, string.Empty);

            return(new RawJsonActionResult(json));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreatePushNotification([ModelBinder(typeof(JsonModelBinder <PushNotificationDto>))] Delta <PushNotificationDto> pushNotificationDelta)
        {
            if (!ModelState.IsValid)
            {
                return(await Error());
            }

            var newPushNotification = new PushNotification();

            pushNotificationDelta.Merge(newPushNotification);

            await _pushNotificationService.InsertPushNotification(newPushNotification);

            //stores
            if (pushNotificationDelta.Dto.StoreIds.Count > 0)
            {
                await AddValidStores(pushNotificationDelta, newPushNotification);

                _pushNotificationService.UpdatePushNotification(newPushNotification);
            }

            await UserActivityService.InsertActivityAsync("AddNewPushNotification", $"Added a new push notification (ID = {newPushNotification.Id})", newPushNotification);

            var rootObj = new PushNotificationRootObject();

            rootObj.PushNotifications.Add(newPushNotification.ToDto());

            var json = JsonFieldsSerializer.Serialize(rootObj, string.Empty);

            return(new RawJsonActionResult(json));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> GetPushNotifications(PushNotificationsParametersModel parameters)
        {
            if (parameters.Limit < Configurations.MinLimit || parameters.Limit > Configurations.MaxLimit)
            {
                return(await Error(HttpStatusCode.BadRequest, "limit", "Invalid limit parameter"));
            }

            if (parameters.Page < Configurations.DefaultPageValue)
            {
                return(await Error(HttpStatusCode.BadRequest, "page", "Invalid request parameters"));
            }

            IList <PushNotificationDto> pushNotificationDto =
                _pushNotificationApiService.GetPushNotifications(
                    parameters.CreatedAtMin,
                    parameters.CreatedAtMax,
                    parameters.Limit,
                    parameters.Page,
                    parameters.SinceId,
                    parameters.StoreIds,
                    parameters.StartTime,
                    parameters.EndTime)
                .Select(pn => pn.ToDto()).ToList();

            var rootObj = new PushNotificationRootObject {
                PushNotifications = pushNotificationDto
            };

            var json = JsonFieldsSerializer.Serialize(rootObj, parameters.Fields);

            return(new RawJsonActionResult(json));
        }
Exemplo n.º 4
0
        protected async Task <IActionResult> RootObjectResult(IList <PushNotificationDto> entities, string fields)
        {
            var rootObj = new PushNotificationRootObject {
                PushNotifications = entities
            };

            var json = JsonFieldsSerializer.Serialize(rootObj, fields);

            return(await Task.FromResult <IActionResult>(new RawJsonActionResult(json)));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> GetPushNotificationById(int id, string fields = "")
        {
            if (id <= 0)
            {
                return(await Error(HttpStatusCode.BadRequest, "id", "invalid id"));
            }

            var pn = _pushNotificationApiService.GetPushNotificationById(id);

            if (pn == null)
            {
                return(await Error(HttpStatusCode.NotFound, "push_notification", "not found"));
            }

            var rootObj = new PushNotificationRootObject();

            rootObj.PushNotifications.Add(pn.ToDto());

            var json = JsonFieldsSerializer.Serialize(rootObj, fields);

            return(new RawJsonActionResult(json));
        }