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)); }
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)); }
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)); }
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)); }