//public ActionResult AddActivity(FormCollection coll) public ActionResult AddActivity(Activiteit activiteit, string video, string TagsString, string BenodigdhedenString, HttpPostedFileBase AfbeeldingFile, string Prijs, int?BoekId, List <HttpPostedFileBase> images, string bestaandefotos) { //TODO: lijst van de geselecteerde afbeeldingen ModelState.Remove("Id"); ModelState.Remove("Prijs"); if (!BoekId.HasValue) { return(RedirectToAction("Index")); } if (bs.GetBoekByID((int)BoekId) == null) { return(RedirectToAction("index")); } if (!ModelState.IsValid) { return(RedirectToAction("Boek", new { id = (int)BoekId })); } if (bs.GetPoiById(activiteit.PoiId) == null) { return(RedirectToAction("Boek", new { id = (int)BoekId })); } String[] tags = TagsString.Split(','); List <Models.OmgevingsBoek_Models.Tag> tagList = new List <Models.OmgevingsBoek_Models.Tag>(); foreach (string t in tags) { if (t == "") { continue; } tagList.Add(bs.InsertTag(t)); } String[] benodigdheden = BenodigdhedenString.Split(','); List <Benodigdheid> benodigdhedenList = new List <Benodigdheid>(); foreach (string b in benodigdheden) { if (b == "") { continue; } benodigdhedenList.Add(bs.InsertBenodigdheid(b)); } if (activiteit.Id == 0) { Activiteit NieuweActiviteit = new Activiteit() { Naam = activiteit.Naam, EigenaarId = bs.GetUser(User.Identity.Name).Id, MaxLeeftijd = activiteit.MaxLeeftijd, MinLeeftijd = activiteit.MinLeeftijd, Prijs = activiteit.Prijs, DitactischeToelichting = activiteit.DitactischeToelichting, MinDuur = activiteit.MinDuur, MaxDuur = activiteit.MaxDuur, PoiId = activiteit.PoiId, Uitleg = activiteit.Uitleg, Benodigdheden = benodigdhedenList, Tags = tagList, AfbeeldingNaam = activiteit.AfbeeldingNaam }; if (video != null) { NieuweActiviteit.Videos = new List <Video>(); NieuweActiviteit.Videos.Add(new Video() { Naam = video }); } NieuweActiviteit.Boeken = new List <Boek>(); NieuweActiviteit.Boeken.Add(bs.GetBoekByID((int)BoekId)); Activiteit p = bs.InsertActiviteit(NieuweActiviteit); if (p.Id > 0) { if (AfbeeldingFile != null) { if (AfbeeldingFile.ContentLength > 10000000) { return(RedirectToAction("Boek", new { id = (int)BoekId })); } try { flickr.UploadPictureAsync(AfbeeldingFile.InputStream, activiteit.Naam, activiteit.Naam, "", "", false, false, false, ContentType.Photo, SafetyLevel.Safe, HiddenFromSearch.Hidden, (res) => { if (!res.HasError) { flickr.PhotosetsAddPhoto(ConfigurationManager.AppSettings.Get("FlickrActiviteitenAlbumId"), res.Result); PhotoInfo fotoInfo = flickr.PhotosGetInfo(res.Result); bs.UpdateActiviteitFoto(p.Id, fotoInfo.MediumUrl); } }); } catch (Exception ex) { //return RedirectToAction("Index"); } } if (images != null) { try { foreach (HttpPostedFileBase image in images) { if (image.ContentLength > 10000000) { continue; } //nog fouten met meerdere afbeeldingen flickr.UploadPictureAsync(image.InputStream, activiteit.Naam, activiteit.Naam, "", "", false, false, false, ContentType.Photo, SafetyLevel.Safe, HiddenFromSearch.Hidden, (res) => { if (!res.HasError) { PhotoInfo info = flickr.PhotosGetInfo(res.Result); bs.AddFotoToActiviteit(p.Id, info.LargeUrl); } }); } } catch (Exception ex) { //return RedirectToAction("Index"); } } } } else { Activiteit origineeleActiviteit = bs.GetActiviteitById(activiteit.Id); if (origineeleActiviteit == null) { return(RedirectToAction("Boek", new { id = (int)BoekId })); } if (origineeleActiviteit.Eigenaar.UserName != User.Identity.Name) { return(RedirectToAction("Boek", new { id = (int)BoekId })); } if (bestaandefotos != null) { string[] bf = bestaandefotos.Split(','); for (int i = 0; i < bf.Length; i++) { bf[i] = bf[i].Trim(); } foreach (Foto f in origineeleActiviteit.Fotos) { if (!bestaandefotos.Contains(f.FotoUrl)) { origineeleActiviteit.Fotos.Remove(f); } } } Activiteit NieuweActiviteit = new Activiteit() { Id = activiteit.Id, Naam = activiteit.Naam, MaxLeeftijd = activiteit.MaxLeeftijd, MinLeeftijd = activiteit.MinLeeftijd, Prijs = activiteit.Prijs, DitactischeToelichting = activiteit.DitactischeToelichting, MinDuur = activiteit.MinDuur, MaxDuur = activiteit.MaxDuur, PoiId = activiteit.PoiId, Uitleg = activiteit.Uitleg, Benodigdheden = benodigdhedenList, Tags = tagList, AfbeeldingNaam = activiteit.AfbeeldingNaam, Fotos = origineeleActiviteit.Fotos }; bs.UpdateActiviteit(NieuweActiviteit); if (AfbeeldingFile != null) { if (AfbeeldingFile.ContentLength > 10000000) { return(RedirectToAction("Boek", new { id = (int)BoekId })); } try { flickr.UploadPictureAsync(AfbeeldingFile.InputStream, activiteit.Naam, activiteit.Naam, "", "", false, false, false, ContentType.Photo, SafetyLevel.Safe, HiddenFromSearch.Hidden, (res) => { if (!res.HasError) { flickr.PhotosetsAddPhoto(ConfigurationManager.AppSettings.Get("FlickrActiviteitenAlbumId"), res.Result); PhotoInfo fotoInfo = flickr.PhotosGetInfo(res.Result); bs.UpdateActiviteitFoto(NieuweActiviteit.Id, fotoInfo.MediumUrl); } }); } catch (Exception ex) { //return RedirectToAction("Index"); } } if (images != null) { try { foreach (HttpPostedFileBase image in images) { if (image.ContentLength > 10000000) { return(RedirectToAction("Boek", new { id = (int)BoekId })); } //TODO: Dit hier fixen flickr.UploadPictureAsync(image.InputStream, activiteit.Naam, activiteit.Naam, "", "", false, false, false, ContentType.Photo, SafetyLevel.Safe, HiddenFromSearch.Hidden, (res) => { if (!res.HasError) { PhotoInfo info = flickr.PhotosGetInfo(res.Result); bs.AddFotoToActiviteit(NieuweActiviteit.Id, info.LargeUrl); } }); Thread.Sleep(5); } } catch (Exception ex) { //return RedirectToAction("Index"); } } } return(RedirectToAction("Boek", new { id = (int)BoekId })); }