Ejemplo n.º 1
0
        //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 });

        }
Ejemplo n.º 2
0
 public Activiteit InsertActiviteit(Activiteit activiteit)
 {
     return repoActiviteit.Insert(activiteit);
 }
Ejemplo n.º 3
0
 public void UpdateActiviteit(Activiteit activiteit)
 {
     repoActiviteit.UpdateActiviteit(activiteit);
 }
Ejemplo n.º 4
0
 public void DeleteActiviteit(Activiteit entityToDelete)
 {
     repoActiviteit.Delete(entityToDelete);
 }