예제 #1
0
        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();
            }
        }
예제 #2
0
        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;
        }
예제 #3
0
 private void GroupCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (isInit)
     {
         var item = (OneDriveImageGroup)GroupCombo.SelectedItem;
         SelectGroup = item;
     }
 }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
            }
        }
예제 #6
0
        /// <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);
            }
        }
예제 #7
0
        /// <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;
            }
        }
예제 #8
0
 /// <summary>
 /// (供外部调用)添加新的分组,并将该分组作为选中项
 /// </summary>
 /// <param name="group"></param>
 public void GroupCollectionAdd(OneDriveImageGroup group)
 {
     GroupCollection.Add(group);
     GroupCombo.SelectedItem = group;
 }