Example #1
0
        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();
        }
Example #3
0
 public DropboxProxy(string clientId, string clientSecret, Func <HttpClientHandler, HttpClient> httpClientFactory = null)
 {
     _provider = new DropboxProvider(clientId, clientSecret, httpClientFactory);
 }