public override void LoadState(object navParameter, Dictionary <string, object> viewModelState) { if (viewModelState != null) { this.allCameraPictures = viewModelState["allCameraPictures"] as ObservableCollection <CameraPicturesModel>; this.cameraTimeModels = viewModelState["cameraTimeModels"] as ObservableCollection <CameraTimeSynchroniserModel>; this.fileNameTemplate = viewModelState["fileNameTemplate"] as FileNameTemplateModel; } else if (navParameter != null) { var allCameraPicturesAsNav = navParameter as ObservableCollection <CameraPicturesModel>; for (int i = 0; i < allCameraPicturesAsNav.Count; i++) { var sortedByDatePictures = allCameraPicturesAsNav[i].CameraPictures.OrderBy(p => p.StorageFile.DateCreated).ToList(); allCameraPicturesAsNav[i].Clear(); allCameraPicturesAsNav[i].AddRange(sortedByDatePictures); } this.allCameraPictures.Clear(); var sortedAllCameraPictures = allCameraPicturesAsNav.OrderBy(c => c.CameraManufacturer).ThenBy(c => c.CameraModel); foreach (var cameraPictures in sortedAllCameraPictures) { this.allCameraPictures.Add(cameraPictures); } this.SetPicturesForTimeMerging(); } this.AddShareContract(); this.IsReadyToProceed = true; this.IsAllLoaded = true; }
public override void LoadState(object navParameter, Dictionary <string, object> viewModelState) { if (viewModelState != null) { this.validCameraPictures = viewModelState["validCameraPictures"] as ObservableCollection <CameraPicturesModel>; this.invalidCameraPictures = viewModelState["invalidCameraPictures"] as CameraPicturesModel; this.mainCamera = viewModelState["mainCamera"] as CameraTimeSynchroniserModel; this.otherCameras = viewModelState["otherCameras"] as ObservableCollection <CameraTimeSynchroniserModel>; this.fileNameTemplate = viewModelState["fileNameTemplate"] as FileNameTemplateModel; } else if (navParameter != null) { var navParameterAsList = navParameter as List <object>; var validCameraPicturesAsNav = navParameterAsList[0] as ObservableCollection <CameraPicturesModel>; var orderedValidCameraPictures = validCameraPicturesAsNav.OrderBy(c => c.CameraManufacturer).ThenBy(c => c.CameraModel); foreach (var cameraPictures in orderedValidCameraPictures) { this.validCameraPictures.Add(cameraPictures); } this.invalidCameraPictures = navParameterAsList[1] as CameraPicturesModel; this.SetPicturesForTimeMerging(); } this.AddShareContract(); this.IsReadyToProceed = true; this.IsAllLoaded = true; }
internal static void SetPicturesNewFileName(List <PictureModel> pictures, FileNameTemplateModel fileNameTemplate) { int day = 1; int enumeration = 1; int picturesCount = pictures.Count(); int namingErrorCount = 0; for (int i = 0; i < picturesCount; i++) { StringBuilder newFileName = new StringBuilder(); newFileName.Append(fileNameTemplate.Keyword); AddDayToName(pictures, i, newFileName, ref day, fileNameTemplate); AddDateToName(pictures, i, newFileName, fileNameTemplate); AddTimeToName(pictures, i, newFileName, fileNameTemplate); AddEnumerationToName(newFileName, picturesCount, ref enumeration, fileNameTemplate); AddFileType(pictures, i, newFileName); pictures[i].NewFileName = newFileName.ToString(); bool isNewNameUnique = CheckIfNameIsUnique(pictures, pictures[i]); while (!isNewNameUnique) { namingErrorCount++; ChangeNewNameAgain(pictures[i], namingErrorCount); isNewNameUnique = CheckIfNameIsUnique(pictures, pictures[i]); } } }
private static void AddEnumerationToName(StringBuilder newFileName, int picturesCount, ref int enumeration, FileNameTemplateModel fileNameTemplate) { if (fileNameTemplate.EnumerationIncluded == "Yes") { newFileName.Append(" "); if (picturesCount < 1000) { newFileName.Append(enumeration.ToString("D3")); } else if (picturesCount < 10000) { newFileName.Append(enumeration.ToString("D4")); } else if (picturesCount < 100000) { newFileName.Append(enumeration.ToString("D5")); } else if (picturesCount < 1000000) { newFileName.Append(enumeration.ToString("D6")); } enumeration++; } }
private static void AddTimeToName(List <PictureModel> pictures, int index, StringBuilder newFileName, FileNameTemplateModel fileNameTemplate) { if (fileNameTemplate.TimeIncluded == FileNameTemplateStrings.TimeHourMinuteSecondMillisecond) { newFileName.Append(" "); newFileName.Append(pictures[index].Hour.ToString("D2")); newFileName.Append("."); newFileName.Append(pictures[index].Minute.ToString("D2")); newFileName.Append("."); newFileName.Append(pictures[index].Second.ToString("D2")); newFileName.Append(" "); newFileName.Append(pictures[index].Millisecond.ToString("D2")); } else if (fileNameTemplate.TimeIncluded == FileNameTemplateStrings.TimeHourMinuteSecond) { newFileName.Append(" "); newFileName.Append(pictures[index].Hour.ToString("D2")); newFileName.Append("."); newFileName.Append(pictures[index].Minute.ToString("D2")); newFileName.Append("."); newFileName.Append(pictures[index].Second.ToString("D2")); } else if (fileNameTemplate.TimeIncluded == FileNameTemplateStrings.TimeHourMinute) { newFileName.Append(" "); newFileName.Append(pictures[index].Hour.ToString("D2")); newFileName.Append("."); newFileName.Append(pictures[index].Minute.ToString("D2")); } }
public CustomNamesGeneratorViewModel() { this.allCameraPictures = new ObservableCollection <CameraPicturesModel>(); this.cameraTimeModels = new ObservableCollection <CameraTimeSynchroniserModel>(); this.fileNameTemplate = new FileNameTemplateModel(); this.GeneratePicturesNames = new RelayCommand(this.GeneratePicturesNamesCommand); this.LoadPictures = new RelayCommand(this.LoadPicturesCommand); }
public WizardNamesGeneratorViewModel() { this.validCameraPictures = new ObservableCollection <CameraPicturesModel>(); this.otherCameras = new ObservableCollection <CameraTimeSynchroniserModel>(); this.fileNameTemplate = new FileNameTemplateModel(); this.GeneratePicturesNames = new RelayCommand(this.GeneratePicturesNamesCommand); this.LoadPictures = new RelayCommand(this.LoadPicturesCommand); }
public override async void LoadState(object navParameter, Dictionary <string, object> viewModelState) { if (viewModelState != null) { this.allPictures = viewModelState["allPictures"] as ObservableCollection <PictureModel>; this.cameraTimeSynchroniser = viewModelState["cameraTimeSynchroniser"] as CameraTimeSynchroniserModel; this.fileNameTemplate = viewModelState["fileNameTemplate"] as FileNameTemplateModel; this.picturesWithInvalidMetaCount = (int)viewModelState["picturesWithInvalidMetaCount"]; } else if (navParameter != null) { var navParameterAsList = navParameter as List <object>; var allPicturesAsNavParameter = navParameterAsList[0] as List <PictureModel>; this.picturesWithInvalidMetaCount = (int)navParameterAsList[1]; var sortedByDatePictures = allPicturesAsNavParameter.OrderBy(p => p.StorageFile.DateCreated).ToList(); if (picturesWithInvalidMetaCount > 0) { var picturesWithInvalidMeta = new List <PictureModel>(); foreach (var picture in sortedByDatePictures) { var cameraInfo = await CameraMetaReader.GetCameraMeta(picture.StorageFile); if (cameraInfo[0] == UnknownMeta.CameraManufacturer && cameraInfo[1] == UnknownMeta.CameraModel) { picturesWithInvalidMeta.Add(picture); } else { this.allPictures.Add(picture); } } foreach (var picture in picturesWithInvalidMeta) { this.allPictures.Add(picture); } } this.SetPicturesForTimeMerging(); } this.AddShareContract(); this.IsReadyToProceed = true; this.IsAllLoaded = true; }
private static void AddDateToName(List <PictureModel> pictures, int index, StringBuilder newFileName, FileNameTemplateModel fileNameTemplate) { if (fileNameTemplate.DateIncluded == FileNameTemplateStrings.DateYearMonthDay) { newFileName.Append(" "); newFileName.Append(pictures[index].Year.ToString("D4")); newFileName.Append("."); newFileName.Append(pictures[index].Month.ToString("D2")); newFileName.Append("."); newFileName.Append(pictures[index].Day.ToString("D2")); } else if (fileNameTemplate.DateIncluded == FileNameTemplateStrings.DateMonthDay) { newFileName.Append(" "); newFileName.Append(pictures[index].Month.ToString("D2")); newFileName.Append("."); newFileName.Append(pictures[index].Day.ToString("D2")); } }
private static void AddDayToName(List <PictureModel> pictures, int index, StringBuilder newFileName, ref int day, FileNameTemplateModel fileNameTemplate) { if (fileNameTemplate.DayIncluded == FileNameTemplateStrings.DayYes) { newFileName.Append(" Day "); if (index > 0) { if (pictures[index - 1].NewDateTime.Day != pictures[index].NewDateTime.Day) { day += (int)(pictures[index].NewDateTime - pictures[index - 1].NewDateTime).TotalDays; } newFileName.Append(day); } else { newFileName.Append(day); } } }