예제 #1
0
        public Picture(StorageFolder _rootFolder, StorageFolder _currentFolder, StorageFile _file)
        {
            PictureInfos = new PlaceInfos();
            _fileHandler = _file;
            PathFolder   = _currentFolder.Path;

            Name      = _file.DisplayName;
            Extension = _file.FileType.ToLower();
        }
예제 #2
0
        public Album(int _id, String _path, String _root)
        {
            Pictures   = new List <Picture>();
            AlbumInfos = new PlaceInfos();
            Summary    = new AlbumSummary();
            Position   = new GpsLocation();

            Id        = _id.ToString();
            PathAlbum = _path.Replace(_root + "\\", "");
            PathRoot  = _root;

            // download at first import
            _requestLocationUpdate  = true;
            _requestThumbnailUpdate = true;
        }
예제 #3
0
        public async Task <Boolean> UpdatePosition()
        {
            int     _connectionFailedStatus = 0;
            int     CONNECTION_FAIL_MAX     = 3;
            Boolean _first = true;

            DateArrival   = Pictures.First <Picture>().Date;
            DateDeparture = Pictures.Last <Picture>().Date;

            // download only if requested before
            foreach (Picture _picture in Pictures)
            {
                // stop try downloading if 3 fails before
                if ((_picture.PositionPresent) && (_requestLocationUpdate) && (_connectionFailedStatus < CONNECTION_FAIL_MAX))
                {
                    // update album position from first valid picture only
                    if (_first)
                    {
                        Position = new GpsLocation(_picture.Position);
                        _first   = false;
                    }

                    if (await _picture.Download())
                    {
                        if (_picture.PictureInfos.InfoPresent)
                        {
                            if (_picture.PictureInfos.City != null)
                            {
                                DisplayName = _picture.PictureInfos.City + ", " + _picture.PictureInfos.Country;
                            }
                            else if (_picture.PictureInfos.Region != null)
                            {
                                DisplayName = _picture.PictureInfos.Region + ", " + _picture.PictureInfos.Country;
                            }
                            else if (_picture.PictureInfos.Establishment != null)
                            {
                                DisplayName = _picture.PictureInfos.Establishment;
                            }
                            else
                            {
                                DisplayName = _picture.PictureInfos.Country;
                            }

                            AlbumInfos             = _picture.PictureInfos;
                            _requestLocationUpdate = false;
                        }
                        else
                        {
                            _connectionFailedStatus++;
                        }
                    }
                    else
                    {
                        _connectionFailedStatus++;
                    }
                }
            }
            if ((DisplayName == null) && (!AlbumInfos.InfoPresent))
            {
                DisplayName = PathAlbum.Remove(0, PathAlbum.LastIndexOf("\\") + 1);
            }

            Summary.Id   = Id;
            Summary.Name = DisplayName;

            if (AlbumInfos.InfoPresent)
            {
                Summary.StrLocationShort = AlbumInfos.Region;

                if ((AlbumInfos.City == null) && (AlbumInfos.Region != null))
                {
                    Summary.StrLocationShort = AlbumInfos.Region;
                    Summary.StrLocation      = AlbumInfos.Region;
                }
                else if ((AlbumInfos.City != null) && (AlbumInfos.Region == null))
                {
                    Summary.StrLocationShort = AlbumInfos.City;
                    Summary.StrLocation      = AlbumInfos.City;
                }
                else if ((AlbumInfos.City != null) && (AlbumInfos.Region != null))
                {
                    Summary.StrLocationShort = AlbumInfos.City;
                    Summary.StrLocation      = AlbumInfos.City + ", " + AlbumInfos.Region;
                }
                else
                {
                    Summary.StrLocationShort = DisplayName;
                    Summary.StrLocation      = DisplayName;
                }
            }
            else
            {
                Summary.StrLocationShort = DisplayName;
                Summary.StrLocation      = DisplayName;
            }

            return(true);
        }