public HttpResponseMessage AttachImageToPlace(string sessionKey, [FromBody] PlaceImageAttach imageInformation) { User currentUser = usersRepo.All().Where(u => u.SessionKey == sessionKey).FirstOrDefault(); if (currentUser == null) { return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Session key and user don't match")); } Place currentPlace = placesRepo.All().Where(p => p.Id == imageInformation.PlaceId).FirstOrDefault(); if (currentPlace == null) { return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The place does not exist!")); } string url = ""; try { url = DropboxProvider.AttachToPlace(imageInformation.ImageName, imageInformation.ImageUrl); } catch (Exception ex) { return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.InnerException.ToString())); } url = DropboxProvider.AttachToPlace(imageInformation.ImageName, imageInformation.ImageUrl); imagesRepo.Add(new Image() { Url = url, PlaceId = currentPlace.Id }); return(this.Request.CreateResponse(HttpStatusCode.Created, url)); }
public IHttpActionResult Post() { Request.Content.LoadIntoBufferAsync().Wait(); var src = string.Empty; var touristSiteId = int.Parse(Request.Headers.First(x => x.Key == "touristSiteId").Value.First()); var currentTouristSite = this.data .TouristSites .All() .FirstOrDefault(x => x.TouristSiteId == touristSiteId); Request.Content.ReadAsMultipartAsync<MultipartMemoryStreamProvider>(new MultipartMemoryStreamProvider()).ContinueWith((task) => { MultipartMemoryStreamProvider provider = task.Result; foreach (HttpContent content in provider.Contents) { var bytesContent = content.ReadAsByteArrayAsync().Result; var myDropboxProvider = new DropboxProvider(); var path = "/" + Guid.NewGuid().ToString() + ".jpg"; src = myDropboxProvider.UploadFile(bytesContent, path); var imageToAdd = new Image { Url = src, Extension = "jpg", Description = path, TouristSideId = touristSiteId, UserId = "8bdc9e17-3dd2-4d26-bd74-fef01ef41da6" }; imageToAdd.TouristSite = currentTouristSite; this.data.Images.Add(imageToAdd); data.SaveChanges(); } }); return this.Ok(); }
public DropboxProxy(string clientId, string clientSecret, Func <HttpClientHandler, HttpClient> httpClientFactory = null) { _provider = new DropboxProvider(clientId, clientSecret, httpClientFactory); }