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); }
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); }
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()); }
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; }
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()); }