private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { // 需要检查组名是否为空(或者只包含空格) // 检查组名是否重复 args.Cancel = true; string groupName = GroupInputBox.Text.Trim(); if (!string.IsNullOrEmpty(groupName)) { bool isIn = App.Db.Groups.Any(p => p.GroupName.ToLower() == groupName.ToLower()); if (!isIn) { var group = new OneDriveImageGroup(groupName); await App.OneDriveTools.AddGroupToDatabase(App.Db, group); new PopupMaskTip(AppTools.GetReswLanguage("AddGroupSuccess")).Show(); MainPage.Current.GroupCollectionAdd(group); this.Hide(); return; } else { new PopupMaskTip(AppTools.GetReswLanguage("GroupNameRepeat")).Show(); } } else { new PopupMaskTip(AppTools.GetReswLanguage("GroupNameEmpty")).Show(); } }
public GroupDialog() { this.InitializeComponent(); Title = AppTools.GetReswLanguage("GroupDialogTitle"); PrimaryButtonText = AppTools.GetReswLanguage("OK"); SecondaryButtonText = AppTools.GetReswLanguage("Cancel"); var group = App.Db.Groups; foreach (var item in group) { GroupCollection.Add(item); } string selectId = AppTools.GetLocalSetting(AppSettings.SelectGroupIndex, ""); foreach (var item in GroupCollection) { if (item.GroupId == selectId) { GroupCombo.SelectedItem = item; SelectGroup = item; } } if (SelectGroup == null) { GroupCombo.SelectedItem = GroupCollection.First(); SelectGroup = GroupCollection.First(); } isInit = true; }
private void GroupCombo_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (isInit) { var item = (OneDriveImageGroup)GroupCombo.SelectedItem; SelectGroup = item; } }
/// <summary> /// 将组添加到数据库 /// </summary> /// <param name="context">数据库上下文</param> /// <param name="item">组</param> /// <returns></returns> public async Task <int> AddGroupToDatabase(ImageDbContext context, OneDriveImageGroup item) { await context.Groups.AddAsync(item); int num = await context.SaveChangesAsync(); AppTools.WriteLocalSetting(AppSettings.IsDatabaseChanged, "True"); return(num); }
/// <summary> /// 上传图片至OneDrive /// </summary> /// <param name="image">图片文件</param> /// <returns></returns> public async Task <OneDriveImage> UploadImage(StorageFile image, OneDriveImageGroup group) { if (_appFolder == null) { throw new UnauthorizedAccessException("You need to complete OneDrive authorization before you can upload the image"); } var imageFolder = await GetImgSaveFolder(); var per = await image.GetBasicPropertiesAsync(); string fileId = ""; string name = ""; string extension = Path.GetExtension(image.Path); bool isAutoRename = Convert.ToBoolean(AppTools.GetLocalSetting(AppSettings.AutoRename, "True")); string fileName = isAutoRename ? Guid.NewGuid() + extension : image.Name.Trim(); OneDriveStorageFile cre = null; try { // 这里要对文件大小进行判断,以4MB为分水岭,需要用不同的办法上传 if (per.Size < 4 * 1024 * 1024) { using (var stream = await image.OpenReadAsync()) { cre = await imageFolder.StorageFolderPlatformService.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting, stream); fileId = cre.OneDriveItem.Id; name = cre.OneDriveItem.Name; } } else { using (var stream = await image.OpenReadAsync()) { cre = await imageFolder.StorageFolderPlatformService.UploadFileAsync(fileName, stream, CreationCollisionOption.ReplaceExisting, 320 * 1024); fileId = cre.OneDriveItem.Id; name = cre.OneDriveItem.Name; } } string link = LinkConvert(fileId); var item = new OneDriveImage(name, await AppTools.ConvertFileToImage(image), group, link, fileId); return(item); } catch (Exception) { return(null); } }
/// <summary> /// (供外部调用)移除分组 /// </summary> /// <param name="group"></param> public void GroupCollectionRemoved(OneDriveImageGroup group) { // 待定 string selectId = AppTools.GetLocalSetting(AppSettings.SelectGroupIndex, ""); if (selectId == group.GroupId) { AppTools.WriteLocalSetting(AppSettings.SelectGroupIndex, ""); GroupCollectionReInit(); } else { GroupCollection.Remove(group); } }
/// <summary> /// 传入指定分组数据时进行跳转 /// </summary> /// <param name="group"></param> private void GroupInit(OneDriveImageGroup group) { var groupImages = App.Db.Images.Where(p => p.GroupId == group.GroupId); HistoryImageCollection.Clear(); foreach (var item in groupImages) { HistoryImageCollection.Add(item); } if (HistoryImageCollection.Count > 0) { HistoryGridView.Visibility = Visibility.Visible; HistoryNoDataTipBlock.Visibility = Visibility.Collapsed; } else { HistoryGridView.Visibility = Visibility.Collapsed; HistoryNoDataTipBlock.Visibility = Visibility.Visible; } if (!((OneDriveImageGroup)GroupCombo.SelectedItem).Equals(group)) { GroupCombo.SelectedItem = group; } }
/// <summary> /// (供外部调用)添加新的分组,并将该分组作为选中项 /// </summary> /// <param name="group"></param> public void GroupCollectionAdd(OneDriveImageGroup group) { GroupCollection.Add(group); GroupCombo.SelectedItem = group; }