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)); } }
public FotoController(IFotoRepository repository, FileFotoRepository filerepo, IFotoserieRepository fotoserieRepo) { this.repository = repository; this.filerepo = filerepo; this.fotoserieRepo = fotoserieRepo; }
public FotoController() { repository = new SqlFotoRepository(); filerepo = new FileFotoRepository(); fotoserieRepo = new SqlFotoserieRepository(); }