private void InitializeData() { List <Media> media = MyPhotosAPI.GetAll(); labelTotalMediaFromBegin.Text = "Total media stored from begin: " + media.Count; int mediaNow = (from m in media where m.Deleted == false select m).Count(); labelTotalMediaNow.Text = "Total media avaible now: " + mediaNow; int totalVideos = (from m in media where m.Deleted == false && m.Type == MediaType.Video.ToString() select m).Count(); labelTotalVideos.Text = "Total videos now: " + totalVideos; int totalPhotos = (from m in media where m.Deleted == false && m.Type == MediaType.Photo.ToString() select m).Count(); labelTotalPhotos.Text = "Total photos now: " + totalPhotos; int mediaDeleted = (from m in media where m.Deleted select m).Count(); labelTotalMediaDeleted.Text = "Total media deleted: " + mediaDeleted; }
private void PhotoShowPictureBox_Click(object sender, EventArgs e) { PictureBox currentPictureBox = (PictureBox)sender; Media currentMediaToShow = MyPhotosAPI.GetMediaById((Guid)currentPictureBox.Tag); try { if (!currentMediaToShow.Deleted) { Form formToShow = new PhotoView(currentMediaToShow); formToShow.Show(); } else { DialogResult messageResult = MessageBox.Show("This " + currentMediaToShow.Type + " has been deleted recent. You want to reload media?", "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (messageResult == DialogResult.Yes) { Search(); } } } catch { DialogResult messageResult = MessageBox.Show("This " + currentMediaToShow.Type + " has been moved/deleted recent from your computer. You want to delete media from database?", "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (messageResult == DialogResult.Yes) { MyPhotosAPI.DeleteMediaById(currentMediaToShow.Id); Search(); } } }
private void LoadPhotos(string toSearch = "", bool byDate = false, bool byEvent = false, bool byPeople = false, bool byLocation = false, bool byTags = false, bool byDescription = false) { Func <Media, bool> predicate = media => !media.Deleted && (media.Name.ToLower().Contains(toSearch.ToLower()) || (media.CreatedDate.ToString().ToLower().Contains(toSearch.ToLower()) && byDate) || (media.Event.ToLower().Contains(toSearch.ToLower()) && byEvent) || (media.People.ToLower().Contains(toSearch.ToLower()) && byPeople) || (media.Location.ToLower().Contains(toSearch.ToLower()) && byLocation) || (media.Tags.ToLower().Contains(toSearch.ToLower()) && byTags) || (media.Description.ToLower().Contains(toSearch.ToLower()) && byDescription)); _media = MyPhotosAPI.GetAll(predicate); checkBoxes.Clear(); flowLayoutPanelMyPhotos.Controls.Clear(); flowLayoutPanelMyPhotos.Hide(); try { Thread threadInput = new Thread(AddMediaToFlowLayout); threadInput.Start(); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } }
private void ButtonLoad_Click(object sender, EventArgs e) { if (mode == Mode.Directory) { FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); string[] extensions = PHOTO_EXTENSIONS.Concat(VIDEO_EXTENSIONS).ToArray(); if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { foreach (var photoPath in Directory.GetFiles(folderBrowserDialog.SelectedPath) .Where(file => extensions.Contains("*" + Path.GetExtension(file).ToLower()))) { if (photosPath.Contains(photoPath) || MyPhotosAPI.AlreadyInDatabaseAndNotDeleted(photoPath)) { continue; } else { photosPath.Add(photoPath); } } } } else if (mode == Mode.Files) { OpenFileDialog openFileDialog = new OpenFileDialog { Filter = "Allowed files (*.jpg, *.jpeg, *.gif, *.png, *.mp4, *.mkv) | *.jpg; *.jpeg; *.gif; *.png; *.mp4; *.mkv; |" + "Images files (*.jpg, *.jpeg, *.gif, *.png) | *.jpg; *.jpeg; *.gif; *.png; |" + "Video files (*.mp4, *.mkv) | *.mp4; *.mkv;", Multiselect = true, Title = "PhotoManager" }; if (openFileDialog.ShowDialog() == DialogResult.OK) { foreach (var photoPath in openFileDialog.FileNames) { if (photosPath.Contains(photoPath) || MyPhotosAPI.AlreadyInDatabaseAndNotDeleted(photoPath)) { continue; } else { photosPath.Add(photoPath); } } } } if (photosPath.Count > 0) { panelShow.Controls.Add(photoShowPictureBox); panelShow.Controls.Add(videoShowMediaPlayer); labelShow.Hide(); Enable(buttonAddToDatabase); if (photosPath.Count > 1) { Enable(buttonSwitchRight); } } SetContentshow(); }
private void ButtonDeleteSelected_Click(object sender, EventArgs e) { foreach (CheckBox tempCheckBox in checkedCheckBoxes) { string id = tempCheckBox.Name; MyPhotosAPI.DeleteMediaById(Guid.Parse(id)); flowLayoutPanelMyPhotos.Controls.Remove((Panel)tempCheckBox.Tag); } }
private void ButtonSaveChanges_Click(object sender, EventArgs e) { _media.Name = textBoxName.Text; _media.Event = textBoxEvent.Text; _media.People = textBoxPeople.Text; _media.Location = textBoxLocation.Text; _media.Tags = textBoxTags.Text; _media.Description = textBoxDescription.Text; MyPhotosAPI.UpdateMedia(_media.Id, _media); }
private void ButtonArchive_Click(object sender, EventArgs e) { FolderBrowserDialog folder = new FolderBrowserDialog(); folder.ShowDialog(); string currentTime = DateTime.Now.ToString("u").Replace(":", "_").Replace("-", "_"); var zipName = "MyPhotos_" + currentTime + ".zip"; var zip = ZipFile.Open(Path.Combine(folder.SelectedPath, zipName), ZipArchiveMode.Create); foreach (CheckBox tempCheckBox in checkedCheckBoxes) { string id = tempCheckBox.Name; Media tempMedia = MyPhotosAPI.GetMediaById(Guid.Parse(id)); zip.CreateEntryFromFile(tempMedia.Path, tempMedia.Name, CompressionLevel.Optimal); } zip.Dispose(); }
private void ButtonAddToDatabase_Click(object sender, EventArgs e) { string name = textBoxName.Text; string path = textBoxPath.Text; string format = Path.GetExtension(path); string type = (VIDEO_EXTENSIONS.Contains("*" + format) ? MediaType.Video : MediaType.Photo).ToString(); string created = textBoxCreated.Text; string _event = textBoxEvent.Text; string people = textBoxPeople.Text; string location = textBoxLocation.Text; string tags = textBoxLocation.Text; string description = textBoxDescription.Text; Media media = new Media() { Id = Guid.NewGuid(), Name = name, Path = path, Format = format, Type = type, CreatedDate = DateTime.Parse(created), Event = _event, People = people, Description = description, Location = location, Tags = tags }; MyPhotosAPI.SaveMedia(media); photosPath.Remove(path); if (currentPicture > 0) { currentPicture--; } textBoxEvent.Text = ""; textBoxPeople.Text = ""; textBoxLocation.Text = ""; textBoxDescription.Text = ""; SetContentshow(); AdjustsTheControlButtons(); }