Ejemplo n.º 1
0
        private async Task LoadSettings()
        {
            ImageQuality = await _settingsSvc.GetAppSettingInt(AppSettingsKey.ImageQuality).ConfigureAwait(false);

            ThumbnailSize = await _settingsSvc.GetAppSettingInt(AppSettingsKey.ThumbnailSize).ConfigureAwait(false);

            CropImageMaxScaledHeight = await _settingsSvc.GetAppSettingInt(AppSettingsKey.CropImageMaxScaledHeight).ConfigureAwait(false);

            CropImageMaxScaledWidth = await _settingsSvc.GetAppSettingInt(AppSettingsKey.CropImageMaxScaledWidth).ConfigureAwait(false);
        }
Ejemplo n.º 2
0
        protected async Task <DiaryImage> AddImageWithoutSaving(byte[] image, string imageName, int?newBiggestDimensionSize = null)
        {
            if (string.IsNullOrWhiteSpace(imageName))
            {
                throw new ArgumentException("Image Name should not be empty");
            }
            _ = image ?? throw new ArgumentNullException(nameof(image));

            int imageQuality = await _appSettings.GetAppSettingInt(AppSettingsKey.ImageQuality) ?? throw new Exception("Setting Value ImageQuality not set");

            int thumbnailSize = await _appSettings.GetAppSettingInt(AppSettingsKey.ThumbnailSize) ?? throw new Exception("Setting Value ThumbnailSize not set");

            var(taken, cameraModel) = GetMetadataFromPhoto(image);
            var(width, height)      = GetImageSize(image);

            if (newBiggestDimensionSize is not null)
            {
                if (width > newBiggestDimensionSize || height > newBiggestDimensionSize)
                {
                    image           = ScaleImage(image, imageQuality, newBiggestDimensionSize.Value);
                    (width, height) = GetImageSize(image);
                }
            }

            var dImage = new DiaryImage
            {
                Id          = Guid.NewGuid(),
                Name        = imageName,
                CreateDate  = DateTime.UtcNow,
                ModifyDate  = DateTime.UtcNow,
                SizeByte    = image.Length,
                Thumbnail   = ScaleImage(image, imageQuality, thumbnailSize),
                Taken       = taken,
                CameraModel = cameraModel,
                Height      = height,
                Width       = width,
                FullImage   = new DiaryImageFull
                {
                    Data = image
                }
            };

            await _context.Images.AddAsync(dImage).ConfigureAwait(false);

            return(dImage);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> OnGetAsync()
        {
            var(stringId, _) = await _settingsSvc.GetAppSetting(AppSettingsKey.ImportantDaysScopeId);

            var range = await _settingsSvc.GetAppSettingInt(AppSettingsKey.ImportantDaysDisplayRange);

            if (!Guid.TryParse(stringId, out _) || range == null)
            {
                return(Redirect("~/Dates/Setup"));
            }

            Dates = await _datesService.GetDatesFromRange(Today, true);

            return(Page());
        }
Ejemplo n.º 4
0
        public async Task UpdateViewModel()
        {
            Scopes = await _scopesSvc.GetScopes();

            var(setting, _) = await _settingsSvc.GetAppSetting(AppSettingsKey.ImportantDaysScopeId);

            if (setting != null && Guid.TryParse(setting, out Guid id))
            {
                SelectedScopeId = id;
            }
            else
            {
                SelectedScopeId = Guid.Empty;
            }
            DaysDisplayRange = await _settingsSvc.GetAppSettingInt(AppSettingsKey.ImportantDaysDisplayRange) ?? 20;
        }
Ejemplo n.º 5
0
        public async Task <List <DateListItem> > GetDatesFromRange(DateOnly today, bool withEmptyDates)
        {
            var daysCount  = (await _appSettingsService.GetAppSettingInt(AppSettingsKey.ImportantDaysDisplayRange)) ?? throw new Exception("Setting 'ImportantDaysDisplayRange' does not exists");
            var allRecords = await GetAllDates(today);

            var startDate  = today.AddDays(-daysCount);
            var datesRange = Enumerable.Range(0, daysCount * 2)
                             .Select(i => startDate.AddDays(i))
                             .Select(d => new DateListItem(Guid.Empty, d, d, "", "", ""))
                             .ToList();

            var datesFromRange = new List <DateListItem>();
            var emptyDates     = new HashSet <DateListItem>();

            foreach (var rec in allRecords)
            {
                var emptyDate = datesRange.SingleOrDefault(d => d.TransferredDate.Month == rec.TransferredDate.Month && d.TransferredDate.Day == rec.TransferredDate.Day);
                if (emptyDate == null)
                {
                    continue;
                }

                datesFromRange.Add(rec with {
                    TransferredDate = emptyDate.TransferredDate
                });
                if (!emptyDates.Contains(emptyDate))
                {
                    emptyDates.Add(emptyDate);
                }
            }

            if (!withEmptyDates)
            {
                return(datesFromRange.OrderBy(d => d.TransferredDate).ToList());
            }

            datesRange = datesRange.Except(emptyDates).ToList();
            datesRange.AddRange(datesFromRange);

            return(datesRange.OrderBy(d => d.TransferredDate).ToList());
        }