Beispiel #1
0
        public async Task <IActionResult> Get(long id)
        {
            var widgetInstance = await _widgetInstanceRepository.Query().FirstOrDefaultAsync(x => x.Id == id);

            var model = new RecentlyViewedWidgetForm
            {
                Id           = widgetInstance.Id,
                Name         = widgetInstance.Name,
                WidgetZoneId = widgetInstance.WidgetZoneId,
                PublishStart = widgetInstance.PublishStart,
                PublishEnd   = widgetInstance.PublishEnd,
                DisplayOrder = widgetInstance.DisplayOrder,
                ItemCount    = JsonConvert.DeserializeObject <int>(widgetInstance.Data)
            };

            return(Json(model));
        }
        public async Task <IActionResult> Put(long id, [FromBody] RecentlyViewedWidgetForm model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var widgetInstance = await _widgetInstanceRepository.Query().FirstOrDefaultAsync(x => x.Id == id);

            if (widgetInstance == null)
            {
                return(NotFound());
            }

            widgetInstance.Name         = model.Name;
            widgetInstance.PublishStart = model.PublishStart;
            widgetInstance.PublishEnd   = model.PublishEnd;
            widgetInstance.WidgetZoneId = model.WidgetZoneId;
            widgetInstance.DisplayOrder = model.DisplayOrder;
            widgetInstance.Data         = model.ItemCount.ToString();

            await _widgetInstanceRepository.SaveChangesAsync();

            return(Accepted());
        }
        public async Task <IActionResult> Post([FromBody] RecentlyViewedWidgetForm model)
        {
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                var widgetInstance = new WidgetInstance
                {
                    Name         = model.Name,
                    WidgetId     = "RecentlyViewedWidget",
                    WidgetZoneId = model.WidgetZoneId,
                    Data         = model.ItemCount.ToString(),
                    PublishStart = model.PublishStart,
                    PublishEnd   = model.PublishEnd,
                    DisplayOrder = model.DisplayOrder,
                };

                _widgetInstanceRepository.Add(widgetInstance);
                await _widgetInstanceRepository.SaveChangesAsync();

                return(CreatedAtAction(nameof(Get), new { id = widgetInstance.Id }, null));
            }
        }