Exemple #1
0
        public async Task <IActionResult> GetItems(ItemsParametersModel 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"));
            }

            var itemsDto = _itemApiService.GetItems(
                parameters.Limit,
                parameters.Page,
                parameters.SinceId).Select(item => item.ToDto()).ToList();

            var itemsRootObject = new ItemsRootObject {
                Items = itemsDto
            };

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

            return(new RawJsonActionResult(json));
        }
Exemple #2
0
        public async Task <IActionResult> CreateItem([ModelBinder(typeof(JsonModelBinder <ItemDto>))] Delta <ItemDto> itemDelta)
        {
            if (!ModelState.IsValid)
            {
                return(await Error());
            }

            var newItem = new Item();

            itemDelta.Merge(newItem);

            await _itemRepository.InsertAsync(newItem);

            //activity log
            await UserActivityService.InsertActivityAsync("AddNewItem", $"Added a new item (ID = {newItem.Id})", newItem);

            var newItemDto = newItem.ToDto();

            var itemsRootObject = new ItemsRootObject();

            itemsRootObject.Items.Add(newItemDto);

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

            return(new RawJsonActionResult(json));
        }
Exemple #3
0
        public async Task <IActionResult> UpdateItem([ModelBinder(typeof(JsonModelBinder <ItemDto>))] Delta <ItemDto> itemDelta)
        {
            if (!ModelState.IsValid)
            {
                return(await Error());
            }

            var currentItem = _itemApiService.GetItemById(itemDelta.Dto.Id);

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

            itemDelta.Merge(currentItem);

            await _itemRepository.UpdateAsync(currentItem);

            //activity log
            await UserActivityService.InsertActivityAsync("EditItem", $"Edited a item (ID = {currentItem.Id})", currentItem);

            var itemDto = currentItem.ToDto();

            var itemsRootObject = new ItemsRootObject();

            itemsRootObject.Items.Add(itemDto);

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

            return(new RawJsonActionResult(json));
        }
Exemple #4
0
        public async Task <IActionResult> GetItemById(int id, string fields = "")
        {
            if (id <= 0)
            {
                return(await Error(HttpStatusCode.BadRequest, "id", "invalid id"));
            }

            var item = _itemApiService.GetItemById(id);

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

            var itemsRootObject = new ItemsRootObject();

            itemsRootObject.Items.Add(item.ToDto());

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

            return(new RawJsonActionResult(json));
        }