public ActionResult GetSlideData(int id) { var contentReference = new ContentReference(id); if (contentReference == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } if (id == 0) { return(new JsonDataResult() { ContentType = "application/json", Data = new SimpleImageModel() { Url = "https://assets3.thrillist.com/v1/image/2546883/size/tmg-article_tall.jpg", Text = "Some text that caused this image" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } var contentLoader = ServiceLocator.Current.GetInstance <ContentLoader>(); var contentLoaderWrapper = ServiceLocator.Current.GetInstance <ContentLoaderWrapper>(); var images = contentLoader.GetChildren <ImageModel>(contentReference); var clickerPage = contentLoaderWrapper.FindPagesOfType <ClickerPage>(ContentReference.StartPage, false).FirstOrDefault(); var latestSensorData = contentLoaderWrapper.FindPagesOfType <StupidClickerModel>(clickerPage?.ContentLink, false).FirstOrDefault(); ClickerModel clickerModel = null; if (latestSensorData != null) { clickerModel = new ClickerModel(latestSensorData); } SimpleImageModel image = null; if (images != null && images.Any()) { var firstImage = images.First(); image = new SimpleImageModel() { Url = firstImage.Url, Text = firstImage.Text, ClickerModel = clickerModel }; } return(new JsonDataResult() { ContentType = "application/json", Data = image, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
public async Task <ActionResult> UploadSlideData([FromBody] SimpleImageModel model) { if (model == null || model.Id == 0) { throw new HttpResponseException(HttpStatusCode.BadRequest); } var contentRepository = ServiceLocator.Current.GetInstance <IContentRepository>(); var contentLoaderWrapper = ServiceLocator.Current.GetInstance <ContentLoaderWrapper>(); var reference = new ContentReference(model.Id); var presentation = contentLoaderWrapper.GetPageFromReference <PresentationModel>(reference); var images = contentRepository.GetChildren <ImageModel>(reference); var prevText = images.FirstOrDefault()?.Text ?? ""; if (presentation != null) { var imageList = await ImageProvider.GetImage(model.Text, GetRandomWord(), prevText) as ImageList; if (imageList == null) { throw new HttpResponseException(HttpStatusCode.InternalServerError); } var imageModel = contentRepository.GetDefault <ImageModel>(presentation.ContentLink); imageModel.PageName = "New imagemodel number" + new Random().Next(); imageModel.Text = model.Text; imageModel.Url = imageList?.Slides?.FirstOrDefault().Url; // Need AccessLevel.NoAccess to get permission to create and save this new page. contentRepository.Save(imageModel, SaveAction.Publish, AccessLevel.NoAccess); // Just changing the page name to contain its ContentLink ID, to make it more clear in the CMS imageModel.PageName = "Imagemodel nr. " + imageModel.ContentLink.ID; contentRepository.Save(imageModel, SaveAction.Publish, AccessLevel.NoAccess); throw new HttpResponseException(HttpStatusCode.Accepted); } throw new HttpResponseException(HttpStatusCode.BadRequest); }