public async Task SetDataRequestDataAsync(DataRequest request) { var requestData = request.Data; requestData.SetWebLink(new Uri(Image.Urls.Full)); requestData.Properties.Title = ResourcesHelper.GetResString("ShareTitle"); requestData.Properties.ContentSourceWebLink = new Uri(Image.Urls.Full); requestData.Properties.ContentSourceApplicationLink = new Uri(Image.Urls.Full); requestData.SetText(ShareText); var file = await StorageFile.GetFileFromPathAsync(BitmapSource.LocalPath); if (file != null) { List <IStorageItem> imageItems = new List <IStorageItem> { file }; requestData.SetStorageItems(imageItems); var imageStreamRef = RandomAccessStreamReference.CreateFromFile(file); requestData.SetBitmap(imageStreamRef); requestData.Properties.Thumbnail = imageStreamRef; } }
public MainViewModel() { IsLoading = Visibility.Collapsed; NoDeletedItemsVisibility = Visibility.Collapsed; EnableItemClick = true; UndoneCount = 0; //初始化 CateVM = new CategoryViewModel(); EditedToDo = new ToDo(); CurrentUser = new MyerListUser(); AllToDos = new ObservableCollection <ToDo>(); DeletedToDos = new ObservableCollection <ToDo>(); StagedToDos = new ObservableCollection <ToDo>(); CurrentDisplayToDos = AllToDos; SelectedCate = AddingCate = -1; CateColor = Application.Current.Resources["DefaultColor"] as SolidColorBrush; //设置当前页面为 ALL To-Do SelectedPage = 0; Title = ResourcesHelper.GetResString("CateAll"); RegisterMessenger(); }
public async Task Refresh(LoginMode mode) { if (Categories.Count == 0) { Categories = await RestoreCacheButDefaultList(); } //已经登陆过的了 if (mode != LoginMode.OfflineMode && !App.IsNoNetwork) { var isGot = await GetLatestCates(); if (!isGot) { Categories = await RestoreCacheButDefaultList(); await SerializerHelper.SerializerToJson <ObservableCollection <ToDoCategory> >(Categories, SerializerFileNames.CategoryFileName); } } Categories.ToList().ForEach(s => s.UpdateColor()); Categories.Insert(0, new ToDoCategory() { CateName = ResourcesHelper.GetResString("CateAll"), CateColor = App.Current.Resources["MyerListBlue"] as SolidColorBrush, CateColorID = 0 }); Categories.Add(new ToDoCategory() { CateName = ResourcesHelper.GetResString("CateDelete"), CateColor = App.Current.Resources["DeletedColor"] as SolidColorBrush, CateColorID = -1 }); UpdateCateToModify(); UpdateCatesToAdd(); App.MainVM.RefreshCate(); }
public async Task SetDataRequestDataAsync(DataRequest request) { var requestData = request.Data; requestData.SetWebLink(new Uri(Image.Urls.Full)); requestData.Properties.Title = ResourcesHelper.GetResString("ShareTitle"); requestData.Properties.ContentSourceWebLink = new Uri(Image.Urls.Full); requestData.Properties.ContentSourceApplicationLink = new Uri(Image.Urls.Full); requestData.SetText(ShareText); var cachekey = _cacheKeyFactory.ProvideKey(LoadingUrl); var file = await _cacheSupplier.TryGetCacheAsync(cachekey); if (file != null) { List <IStorageItem> imageItems = new List <IStorageItem> { file }; requestData.SetStorageItems(imageItems); var imageStreamRef = RandomAccessStreamReference.CreateFromFile(file); requestData.SetBitmap(imageStreamRef); requestData.Properties.Thumbnail = imageStreamRef; } }
private async Task ClearCacheAsync() { ClearCacheCommandEnabled = false; CacheHint = ResourceLoader.GetForCurrentView().GetString("Cleaning"); await _cacheSupplier.ClearAsync(); ToastService.SendToast(ResourcesHelper.GetResString("TempFilesCleaned"), TimeSpan.FromMilliseconds(1000)); await UpdateCacheSizeUIAsync(); }
public async Task UpdateCacheSizeUIAsync() { CacheHint = ResourcesHelper.GetResString("CalculatingCache"); ClearCacheCommandEnabled = false; var size = await _cacheSupplier.GetSizeAsync(); var sizeFormatted = (size / (1024 * 1024)).ToString("f0"); CacheHint = ResourcesHelper.GetFormattedResString("CleanUpContent", sizeFormatted); ClearCacheCommandEnabled = true; }
private async Task <bool> RegisterAsync() { try { //注册 IsLoading = true; var loader = new ResourceLoader(); var check = await CloudService.CheckEmailExistAsync(TempEmail); if (check) { throw new MyerListException() { ErrorCode = "202" }; } string salt = await CloudService.RegisterAsync(TempEmail, InputPassword); if (!string.IsNullOrEmpty(salt)) { LocalSettingHelper.AddValue("email", TempEmail); LocalSettingHelper.AddValue("password", InputPassword); return(true); } else { throw new MyerListException() { ErrorCode = "" }; } } catch (MyerListException e) { ToastService.SendToast(ErrorUtils.GetUserMsgFromErrorCode(int.Parse(e.ErrorCode))); IsLoading = false; return(false); } catch (TaskCanceledException) { ToastService.SendToast(ResourcesHelper.GetResString("RequestError")); IsLoading = false; return(false); } catch (COMException) { ToastService.SendToast(ResourcesHelper.GetResString("RequestError")); IsLoading = false; return(false); } }
private void AddBtn_Click(object sender, RoutedEventArgs e) { MainVM.CateVM.CatesToModify.Add(new Model.ToDoCategory() { CateColor = CateColorsVM.CateColors[0], CateColorID = CreateNewID(), CateName = ResourcesHelper.GetResString("NewCateName"), }); var sv = CateListView.GetScrollViewer(); sv.ChangeView(null, 1000, null); }
/// <summary> /// 初始化,还原列表等 /// 区分账户的各种状态:离线模式,没有网络,登录了有网络 /// </summary> /// <param name="args"></param> /// <returns></returns> private async Task HandleActive(LoginMode mode) { IsLoading = Visibility.Visible; await InitialCate(mode); //已经登陆过的了 if (mode != LoginMode.OfflineMode) { CurrentUser.Email = LocalSettingHelper.GetValue("email"); ShowLoginBtnVisibility = Visibility.Collapsed; ShowAccountInfoVisibility = Visibility.Visible; await RestoreData(); //没有网络 if (App.IsNoNetwork) { ToastService.SendToast(ResourcesHelper.GetResString("NoNetworkHint")); } //有网络 else { SelectedCate = 0; //从离线模式注册/登录的 if (mode == LoginMode.OfflineModeToLogin || mode == LoginMode.OfflineModeToRegister) { await AddAllOfflineToDos(); } await ReSendStagedToDos(); await SyncAllToDos(); CurrentDisplayToDos = AllToDos; } } //处于离线模式 else if (mode == LoginMode.OfflineMode) { ShowLoginBtnVisibility = Visibility.Visible; ShowAccountInfoVisibility = Visibility.Collapsed; await RestoreData(); } IsLoading = Visibility.Collapsed; }
public async Task <bool> SaveCatesToModify() { var currentMaxID = CreateNewID(); var array = new JsonArray(); foreach (var item in CatesToModify) { var obj = new JsonObject(); obj.Add("name", JsonValue.CreateStringValue(item.CateName)); obj.Add("color", JsonValue.CreateStringValue(item.CateColor.Color.ToString())); obj.Add("id", JsonValue.CreateNumberValue(item.CateColorID)); array.Add(obj); } var arrayString = array.ToString(); var cateString = AppSettings.ModifiedCateJsonStringFore + arrayString + "}"; try { if (!App.IsInOfflineMode) { var isOK = await CloudService.UpdateCateInfoAsync(cateString); if (!isOK) { throw new ArgumentException(); } } Categories = CatesToModify; await SerializerHelper.SerializerToJson <ObservableCollection <ToDoCategory> >(Categories, SerializerFileNames.CategoryFileName); Categories.Insert(0, new ToDoCategory() { CateName = ResourcesHelper.GetResString("CateAll"), CateColor = App.Current.Resources["MyerListBlue"] as SolidColorBrush, CateColorID = 0 }); Categories.Add(new ToDoCategory() { CateName = ResourcesHelper.GetResString("CateDelete"), CateColor = App.Current.Resources["DeletedColor"] as SolidColorBrush, CateColorID = -1 }); UpdateCatesToAdd(); App.MainVM.RefreshCate(); return(true); } catch (Exception) { return(false); } }
private void UpdateTitle(int cateID) { if (cateID > 0) { var cate = CateVM.Categories.ToList().Find(s => s.CateColorID == cateID); if (cate != null) { Title = cate.CateName; } } else if (cateID == 0) { Title = ResourcesHelper.GetResString("CateAll"); } else if (cateID == -1) { Title = ResourcesHelper.GetResString("CateDelete"); } }
private async Task <bool> LoginAsync() { try { IsLoading = true; var check = await CloudService.CheckEmailExistAsync(TempEmail); string salt = await CloudService.GetSaltAsync(TempEmail); //尝试登录 var login = await CloudService.LoginAsync(TempEmail, InputPassword, salt); App.IsInOfflineMode = false; LocalSettingHelper.AddValue("OfflineMode", "false"); return(true); } catch (MyerListException e) { ToastService.SendToast(ErrorUtils.GetUserMsgFromErrorCode(int.Parse(e.ErrorCode))); return(false); } catch (TaskCanceledException) { ToastService.SendToast(ResourcesHelper.GetResString("RequestError")); return(false); } catch (COMException) { ToastService.SendToast(ResourcesHelper.GetResString("RequestError")); return(false); } catch (Exception) { ToastService.SendToast(ResourcesHelper.GetResString("RequestError")); return(false); } finally { IsLoading = false; } }
public static ObservableCollection <ToDo> ParseJsonToObs(string rawJson) { try { ObservableCollection <ToDo> schedules = new ObservableCollection <ToDo>(); JObject job = JObject.Parse(rawJson); JArray array = job["ScheduleInfo"] as JArray; if (array != null) { foreach (var sch in array) { ToDo newSchedule = new ToDo(); var timeString = (string)sch["time"]; DateTime time; if (DateTime.TryParse(timeString, out time)) { newSchedule.CreateTime = time.ToString(); } else { newSchedule.CreateTime = ResourcesHelper.GetResString("UnknownTime"); } newSchedule.ID = (string)sch["id"]; newSchedule.SID = (string)sch["sid"]; newSchedule.Content = (string)sch["content"]; newSchedule.IsDone = (string)sch["isdone"] != "0"; newSchedule.Category = (int)sch["cate"]; schedules.Add(newSchedule); } } return(schedules); } catch (Exception e) { var task = Logger.LogAsync(e); return(null); } }
private async void DownloadBtn_Click(object sender, RoutedEventArgs e) { if (CurrentImage.DownloadStatus == DownloadStatus.Ok) { return; } FlipperControl.DisplayIndex = (int)DownloadStatus.Downloading; Events.LogDownloadButtonOnList(); try { _cts = new CancellationTokenSource(); var item = new DownloadItem(CurrentImage); item = await DownloadsVM.AddDownloadingImageAsync(item); var savedResult = false; if (item != null) { savedResult = await item.DownloadFullImageAsync(_cts); } //Still in this page if (IsShown && savedResult) { CurrentImage.DownloadStatus = DownloadStatus.Ok; FlipperControl.DisplayIndex = (int)DownloadStatus.Ok; ToastService.SendToast(ResourcesHelper.GetResString("SavedTitle"), 1000); } } catch (OperationCanceledException) { FlipperControl.DisplayIndex = (int)DownloadStatus.Pending; } catch (Exception ex) { var task = Logger.LogAsync(ex); FlipperControl.DisplayIndex = (int)DownloadStatus.Pending; ToastService.SendToast(ResourcesHelper.GetResString("ErrorStatus") + ex.Message, 3000); } }
protected async virtual Task <IEnumerable <ImageItem> > RequestAsync(int pageIndex) { try { _imageService.Page = pageIndex; var result = await _imageService.GetImagesAsync(); if (result != null) { return(CreateImageItems(result)); } else { throw new APIException(ResourcesHelper.GetResString("RequestFailed")); } } catch (TaskCanceledException) { throw new APIException(ResourcesHelper.GetResString("RequestTimeout")); } }
private async Task ClearTempFileAsync() { var folder = await AppSettings.Instance.GetSavingFolderAsync(); var files = await folder.GetFilesAsync(); if (files != null) { foreach (var file in files) { var prop = await file.GetBasicPropertiesAsync(); if (file.Name.EndsWith(".tmp") || prop.Size == 0) { await file.DeleteAsync(); } } } ToastService.SendToast(ResourcesHelper.GetResString("TempFilesCleaned")); }
/// <summary> /// 添加or修改内容 /// </summary> /// <returns></returns> private async Task AddOrModifyToDo() { try { if (EditedToDo != null) { if (_addMode == AddMode.None) { return; } if (string.IsNullOrEmpty(EditedToDo.Content)) { await ToastService.SendToastAsync(ResourcesHelper.GetResString("ContentEmpty")); return; } ShowPaneOpen = false; //显示进度条 IsLoading = Visibility.Visible; //添加 if (_addMode == AddMode.Add) { await AddOrRestoreAndSyncNewToDo(); } //修改 else if (_addMode == AddMode.Modify) { await ModifyAndSyncToDo(); } } } catch (Exception ex) { var task = ExceptionHelper.WriteRecordAsync(ex, nameof(MainViewModel), nameof(AddOrModifyToDo)); } }
private void RegisterMessenger() { Messenger.Default.Register <GenericMessage <ObservableCollection <ToDo> > >(this, MessengerTokens.UpdateTile, async msg => { await TileControl.UpdateTileAsync(msg.Content); }); Messenger.Default.Register <GenericMessage <string> >(this, MessengerTokens.CloseHam, msg => { if (_isDrawerSlided && CoreWindow.GetForCurrentThread().Bounds.Width < 720) { ToggleDrawerAnimation(false); ToggleDrawerMaskAnimation(false); HamburgerBtn.PlayHamOutStory(); _isDrawerSlided = false; } }); Messenger.Default.Register(this, MessengerTokens.ChangeCommandBarToDelete, (GenericMessage <string> msg) => { this.SwitchToDeleteCommandBar(); }); Messenger.Default.Register(this, MessengerTokens.ChangeCommandBarToDefault, (GenericMessage <string> msg) => { this.SwitchToDefaultCommandBar(); }); Messenger.Default.Register <GenericMessage <string> >(this, MessengerTokens.GoToSort, act => { DisplayedListView.CanDragItems = true; DisplayedListView.CanReorderItems = true; DisplayedListView.AllowDrop = true; DisplayedListView.IsItemClickEnabled = false; ToastService.SendToast(ResourcesHelper.GetResString("ReorderHint")); }); Messenger.Default.Register <GenericMessage <string> >(this, MessengerTokens.LeaveSort, act => { DisplayedListView.CanDragItems = false; DisplayedListView.CanReorderItems = false; DisplayedListView.AllowDrop = false; DisplayedListView.IsItemClickEnabled = true; }); }
private async void OkBtn_Click(object sender, RoutedEventArgs e) { LoadingMaskGrid.Visibility = Visibility.Visible; OkBtn.IsEnabled = false; if (await MainVM.CateVM.SaveCatesToModify()) { if (PopupService.CurrentShownCPEX != null) { PopupService.CurrentShownCPEX.Hide(); } OkBtn.IsEnabled = true; LoadingMaskGrid.Visibility = Visibility.Collapsed; OnClickOKBtn?.Invoke(); } else { OkBtn.IsEnabled = true; LoadingMaskGrid.Visibility = Visibility.Collapsed; ToastService.SendToast(ResourcesHelper.GetResString("RequestError")); } }
private void ToRegisterMode() { ShowRegister = Visibility.Visible; Title = ResourcesHelper.GetResString("Register"); BtnContent = ResourcesHelper.GetResString("Register"); }
/// <summary> /// 从云端同步所有待办事项 /// </summary> /// <returns></returns> private async Task SyncAllToDos() { try { //没网络 if (App.IsNoNetwork) { //通知没有网络 ToastService.SendToast(ResourcesHelper.GetResString("NoNetworkHint")); return; } if (App.IsInOfflineMode) { return; } //加载滚动条 IsLoading = Visibility.Visible; ToastService.SendToast(ResourcesHelper.GetResString("Syncing")); var isSyncOK = false; DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(2); timer.Tick += ((sendert, et) => { if (isSyncOK) { IsLoading = Visibility.Collapsed; ToastService.SendToast(ResourcesHelper.GetResString("SyncSuccessfully")); } timer.Stop(); }); timer.Start(); try { await ReSendStagedToDos(); await CateVM.Refresh(LoginMode.Login); var result = await CloudService.GetMyToDosAsync(); if (!string.IsNullOrEmpty(result.JsonSrc)) { //获得无序的待办事项 var scheduleWithoutOrder = ToDo.ParseJsonToObs(result.JsonSrc); //获得顺序列表 var orders = await CloudService.GetMyOrderAsync(); //排序 AllToDos = ToDo.GetSortedList(scheduleWithoutOrder, orders); UpdateListByChangingSelectedCate(); await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(AllToDos, SerializerFileNames.ToDoFileName); isSyncOK = true; } } catch (COMException) { ToastService.SendToast(ResourcesHelper.GetResString("RequestError")); } finally { IsLoading = Visibility.Collapsed; if (!timer.IsEnabled) { ToastService.SendToast(ResourcesHelper.GetResString("SyncSuccessfully")); } } //最后更新动态磁贴 Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); } catch (Exception ex) { var task = Logger.LogAsync(ex); } }
/// <summary> /// 修改待办事项 /// </summary> /// <returns></returns> private async Task ModifyAndSyncToDo() { IsLoading = Visibility.Visible; //修改当前列表 var itemToModify = AllToDos.ToList().Find(sche => { if (sche.ID == EditedToDo.ID) { return(true); } else { return(false); } }); itemToModify.Content = EditedToDo.Content; itemToModify.Category = CateVM.Categories[AddingCate].CateColorID; itemToModify.CreateTime = DateTime.Now.ToString(); UpdateDisplayList(CateVM.Categories[SelectedCate].CateColorID); //离线模式 if (App.IsInOfflineMode) { await SerializerHelper.SerializerToJson <ObservableCollection <ToDo> >(AllToDos, SerializerFileNames.ToDoFileName); EditedToDo = new ToDo(); Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); return; } //非离线模式 else if (App.CanSendRequest) { try { var resultUpdate = await CloudService.UpdateContent(itemToModify.ID, itemToModify.Content, itemToModify.CreateTime, itemToModify.Category); if (resultUpdate) { AllToDos.ToList().Find(sche => { if (sche.ID == EditedToDo.ID) { return(true); } else { return(false); } }).Content = EditedToDo.Content; EditedToDo = new ToDo(); Messenger.Default.Send(new GenericMessage <ObservableCollection <ToDo> >(AllToDos), MessengerTokens.UpdateTile); } } catch (COMException) { await ToastService.SendToastAsync(ResourcesHelper.GetResString("RequestError")); } } IsLoading = Visibility.Collapsed; }