public ActionResult Create() { PhotoFlickr photoPost = new PhotoFlickr(); // preluam lista de categorii din metoda GetAllCategories() photoPost.Categories = GetAllCategories(); // Preluam ID-ul utilizatorului curent photoPost.UserId = User.Identity.GetUserId(); return(View(photoPost)); }
// GET: PhotoFlickr/Details/5 public ActionResult Details(int id) { PhotoFlickr photoFlickr = db.Photos.Find(id); ViewBag.afisareButoane = false; if (User.IsInRole("Editor") || User.IsInRole("Administrator")) { ViewBag.afisareButoane = true; } ViewBag.esteAdmin = User.IsInRole("Administrator"); ViewBag.utilizatorCurent = User.Identity.GetUserId(); return(View(photoFlickr)); }
public ActionResult Delete(int id) { PhotoFlickr photoFlickr = db.Photos.Find(id); if (photoFlickr.UserId == User.Identity.GetUserId() || User.IsInRole("Administrator")) { db.Photos.Remove(photoFlickr); db.SaveChanges(); TempData["message"] = "Articolul a fost sters!"; return(RedirectToAction("Index")); } else { TempData["message"] = "Nu aveti dreptul sa stergeti un articol care nu va apartine!"; return(RedirectToAction("Index")); } }
public ActionResult Edit(int id) { PhotoFlickr photoFlickr = db.Photos.Find(id); ViewBag.Photo = photoFlickr; photoFlickr.Categories = GetAllCategories(); if (photoFlickr.UserId == User.Identity.GetUserId() || User.IsInRole("Administrator")) { return(View(photoFlickr)); } else { TempData["message"] = "Nu aveti dreptul sa faceti modificari asupra unui articol care nu va apartine!"; return(RedirectToAction("Index")); } }
public ActionResult Edit(int id, PhotoFlickr requestPhoto) { requestPhoto.Categories = GetAllCategories(); try { if (ModelState.IsValid) { PhotoFlickr photoFlickr = db.Photos.Find(id); if (photoFlickr.UserId == User.Identity.GetUserId() || User.IsInRole("Administrator")) { if (TryUpdateModel(photoFlickr)) { photoFlickr.Title = requestPhoto.Title; // Protect content from XSS requestPhoto.Description = Sanitizer.GetSafeHtmlFragment(requestPhoto.Description); photoFlickr.Description = requestPhoto.Description; photoFlickr.Date = requestPhoto.Date; photoFlickr.CategoryId = requestPhoto.CategoryId; photoFlickr.Comment = requestPhoto.Comment; photoFlickr.Photo = requestPhoto.Photo; photoFlickr.Title = photoFlickr.Title; db.SaveChanges(); TempData["message"] = "Postarea a fost modificata!"; } return(RedirectToAction("Index")); } else { TempData["message"] = "Nu aveti dreptul sa faceti modificari asupra unui articol care nu va apartine!"; return(RedirectToAction("Index")); } } else { return(View(requestPhoto)); } } catch (Exception e) { return(View(requestPhoto)); } }
public ActionResult Create(PhotoFlickr photoFlickr) { photoFlickr.Categories = GetAllCategories(); try { if (ModelState.IsValid) { // Protect content from XSS photoFlickr.Description = Sanitizer.GetSafeHtmlFragment(photoFlickr.Description); db.Photos.Add(photoFlickr); db.SaveChanges(); TempData["message"] = "Poza a fost adaugata!"; return(RedirectToAction("Index")); } else { return(View(photoFlickr)); } } catch (Exception e) { return(View(photoFlickr)); } }
public void UploadSchema(IEnumerable <CollectionFlickr> toUpload) { if (_cachedList == null) { if (File.Exists(GetCahceFilePath()) == false) { IEnumerable <CollectionFlickr> downloadSchemaFromFlickr = DownloadSchemaFromFlickr(); _cachedList = new BindingList <CollectionFlickr>(downloadSchemaFromFlickr.ToList()); } else { _cachedList = JsonConvert.DeserializeObject <BindingList <CollectionFlickr> >(File.ReadAllText(GetCahceFilePath())); } BindEvents(); } foreach (CollectionFlickr localCollection in toUpload) { if (_cachedList.Any(a => a.Title == localCollection.Title) == false) { Collection addedCollection = _flickrApi.CollectionsCreate(localCollection.Title, string.Empty); _cachedList.Add( new CollectionFlickr(SaveCachedData) { Id = addedCollection.CollectionId, Title = localCollection.Title } ); _log.InfoFormat("Created not existing collection [{0}].", addedCollection.Title); } var cachedCollection = _cachedList.Single(s => s.Title == localCollection.Title); foreach (AlbumFlickr localAlbum in localCollection.AlbumsFlickr) { if (cachedCollection.AlbumsFlickr.Any(a => a.Title == localAlbum.Title) == false) { if (localAlbum.PhotoList.Count == 0) { continue; } // first sent photo because it is not possible to create album without it PhotoFlickr photoFlickr = localAlbum.PhotoList.First(); photoFlickr.Id = _flickrApi.UploadPicture(photoFlickr.FilePath, photoFlickr.Title, string.Empty, string.Format("\"#Collection={0}\" \"#Album={1}\"", localCollection.Title, localAlbum.Title), false, false, false); Photoset addedPhotoset = _flickrApi.PhotosetsCreate(localAlbum.Title, photoFlickr.Id); cachedCollection.AlbumsFlickr.Add( new AlbumFlickr(SaveCachedData) { Id = addedPhotoset.PhotosetId, Title = localAlbum.Title }); _flickrApi.CollectionsEditSets(cachedCollection.Id, cachedCollection.AlbumsFlickr.Select(s => s.Id).ToList()); _log.InfoFormat("Added album [{0}] to collection [{1}].", localAlbum.Title, localCollection.Title); } var flickrPhotoset = cachedCollection.AlbumsFlickr.Single(s => s.Title == localAlbum.Title); AlbumFlickr cachedAlbum = _cachedList .Single(s => s.Title == localCollection.Title) .AlbumsFlickr.Single(s => s.Title == localAlbum.Title); List <PhotoFlickr> photosOnFlickr = cachedAlbum.PhotoList.ToList(); _log.DebugFormat("Got photos from album: [{0}]", localAlbum.Title); List <PhotoFlickr> photosToUpload = localAlbum.PhotoList.Except(photosOnFlickr).ToList(); _log.DebugFormat("Photos to upload count: [{0}]", photosToUpload.Count()); UploadInternal(flickrPhotoset.Id, localCollection.Title, localAlbum.Title, photosToUpload, uploadedPhoto => cachedAlbum.PhotoList.Add(uploadedPhoto)); } } }
public void Upload(Func <bool> cancellationPending, Flickr flickrInstance, IEnumerable <CollectionFlickr> toUpload, IEnumerable <CollectionFlickr> flickrSchema) { Dictionary <string, CollectionFlickr> dictionaryFlickrSchema = flickrSchema.ToDictionary(k => k.Title, v => v); foreach (CollectionFlickr collectionToUpload in toUpload) { if (string.IsNullOrEmpty(collectionToUpload.Id)) { if (collectionToUpload.AlbumsFlickr.Count > 0) { _log.DebugFormat("Creating new collection: [{0}]", collectionToUpload.Title); Collection createdCollection = flickrInstance.CollectionsCreate(collectionToUpload.Title, string.Empty); collectionToUpload.Id = createdCollection.CollectionId; dictionaryFlickrSchema.Add( collectionToUpload.Title, new CollectionFlickr { Id = createdCollection.CollectionId, Title = collectionToUpload.Title, AlbumsFlickr = new BindingList <AlbumFlickr>() }); } else { _log.WarnFormat("Collection [{0}] is empty. Please verify what's going on...", collectionToUpload.Title); continue; } } CollectionFlickr collectionOnFlickr = dictionaryFlickrSchema[collectionToUpload.Title]; foreach (AlbumFlickr notSyncedAlbum in collectionToUpload.AlbumsFlickr) { if (string.IsNullOrEmpty(notSyncedAlbum.Id)) { if (notSyncedAlbum.PhotoList.Count > 0) { _log.DebugFormat("Creating new album: [{0}]", notSyncedAlbum.Title); // first we send a picture because without that is it not possible to create an album PhotoFlickr photoFlickr = notSyncedAlbum.PhotoList.First(); photoFlickr.Id = flickrInstance.UploadPicture(photoFlickr.FilePath, photoFlickr.Title, string.Empty, string.Format("\"#Collection={0}\" \"#Album={1}\"", collectionToUpload.Title, notSyncedAlbum.Title), false, false, false); string albumId = flickrInstance.PhotosetsCreate(notSyncedAlbum.Title, photoFlickr.Id).PhotosetId; notSyncedAlbum.Id = albumId; collectionOnFlickr.AlbumsFlickr.Add(new AlbumFlickr { Id = albumId, Title = notSyncedAlbum.Title, PhotoList = new BindingList <PhotoFlickr> { photoFlickr } }); flickrInstance.CollectionsEditSets(collectionOnFlickr.Id, collectionOnFlickr.AlbumsFlickr.Select(s => s.Id).ToList()); // after add we can say that is syncronized so we delete it from synchronization list notSyncedAlbum.PhotoList.Remove(photoFlickr); } else { _log.WarnFormat("Album [{0}] is empty. Please verify what's going on...", notSyncedAlbum.Title); continue; } } AlbumFlickr albumFlickr = collectionOnFlickr.AlbumsFlickr.Single(s => s.Id == notSyncedAlbum.Id); Parallel.ForEach(notSyncedAlbum.PhotoList, new ParallelOptions { MaxDegreeOfParallelism = _uploadThreadsCount }, () => new List <PhotoFlickr>(), (photoFlickr, state, arg3) => { if (state.IsStopped) { return(arg3); } int retryCount = 0; while (retryCount < 3) { try { if (cancellationPending()) { state.Stop(); return(arg3); } photoFlickr.Id = flickrInstance.UploadPicture(photoFlickr.FilePath, photoFlickr.Title, string.Empty, string.Format("\"#Collection={0}\" \"#Album={1}\"", collectionToUpload.Title, notSyncedAlbum.Title), false, false, false); flickrInstance.PhotosetsAddPhoto(notSyncedAlbum.Id, photoFlickr.Id); arg3.Add(photoFlickr); _log.DebugFormat("Uploaded photo [{0}] to album [{1}].", photoFlickr.Title, albumFlickr.Title); break; } catch (Exception ex) { retryCount++; _log.Warn("Uploading failed. Retrying...", ex); } } return(arg3); }, set => { if (set != null) { set.ForEach(albumFlickr.PhotoList.Add); } } ); if (cancellationPending()) { return; } } } }