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