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; }
public BasicNamesGeneratorViewModel() { this.allPictures = new ObservableCollection <PictureModel>(); this.cameraTimeSynchroniser = new CameraTimeSynchroniserModel(); this.fileNameTemplate = new FileNameTemplateModel(); this.GeneratePicturesNames = new RelayCommand(this.GeneratePicturesNamesCommand); this.LoadPictures = new RelayCommand(this.LoadPicturesCommand); }
internal static void SetNewDateTime(PictureModel picture, CameraTimeSynchroniserModel pictureTimeSynchroniser) { var newDateTime = new DateTime(picture.Year, picture.Month, picture.Day, picture.Hour, picture.Minute, picture.Second); newDateTime.AddYears(pictureTimeSynchroniser.YearDifference); newDateTime.AddMonths(pictureTimeSynchroniser.MonthDifference); newDateTime.AddDays(pictureTimeSynchroniser.DayDifference); newDateTime.AddHours(pictureTimeSynchroniser.HourDifference); newDateTime.AddMinutes(pictureTimeSynchroniser.MinuteDifference); newDateTime.AddSeconds(pictureTimeSynchroniser.SecondDifference); picture.NewDateTime = newDateTime; }
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; }