Esempio n. 1
0
        public async Task <HttpResponseMessage> UploadPhoto(int fotoSerieID)
        {
            decimal bedrag = new Random().Next(10, 30); // Evt. nog bedragen POSTen, voor nu faken met een random bedrag

            //int fotoSerieID     = Convert.ToInt32(Request.GetRouteData().Values["fotoSerieID"]);

            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            try
            {
                var provider = new MultipartFormDataStreamProvider(filerepo.TempPath);

                // Read the form data.
                await Request.Content.ReadAsMultipartAsync(provider);

                // This illustrates how to get the file names.
                foreach (MultipartFileData file in provider.FileData)
                {
                    string md5 = FileFotoRepository.CalculateMD5Hash(File.ReadAllBytes(file.LocalFileName));
                    int    id  = repository.Add(fotoSerieID, md5, bedrag);

                    if (id != null && id > 0) // id > 0 dus het plaatje is toegevoegd aan de database
                    {
                        string originalFilename = file.Headers.ContentDisposition.FileName.ToString().ToLower();
                        originalFilename = FileFotoRepository.RemoveBadPathChars(originalFilename);

                        string[] pointParts = originalFilename.Split('.'); //CommonUtils.GetFileExtension(originalFilename); //  Path.GetExtension(originalFilename);//info.Extension; //
                        string   extension  = "." + pointParts.Last();

                        string fotoPath = filerepo.Add(file.LocalFileName, fotoSerieID, id, extension);

                        return(Request.CreateResponse(HttpStatusCode.Created));
                    }
                    else // Niet kunnen toevoegen aan de database, dus plaatje bestond al, dus temp file verwijderen
                    {
                        File.Delete(file.LocalFileName);
                        return(Request.CreateResponse(HttpStatusCode.Conflict));
                    }
                }

                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Esempio n. 2
0
 public FotoController(IFotoRepository repository, FileFotoRepository filerepo, IFotoserieRepository fotoserieRepo)
 {
     this.repository    = repository;
     this.filerepo      = filerepo;
     this.fotoserieRepo = fotoserieRepo;
 }
Esempio n. 3
0
 public FotoController()
 {
     repository    = new SqlFotoRepository();
     filerepo      = new FileFotoRepository();
     fotoserieRepo = new SqlFotoserieRepository();
 }