private async Task <bool> ChangeTaskStatus(TaskItemViewModel task, GoogleTaskStatus newStatus) { Messenger.Publish(new ShowProgressOverlayMsg(this)); var response = await _dataService .TaskService .ChangeTaskStatusAsync(task.GoogleId, newStatus); Messenger.Publish(new ShowProgressOverlayMsg(this, false)); if (!response.Succeed) { Logger.Error( $"{nameof(ChangeTaskStatus)}: An error occurred while trying to mark {task.Title} as {GetStatusMsgToUse(newStatus)}." + $"Error = {response.Message}"); return(false); } task.Status = response.Result.Status; task.CompletedOn = response.Result.CompletedOn; task.UpdatedAt = response.Result.UpdatedAt; Messenger.Publish(new TaskStatusChangedMsg( this, task.GoogleId, task.ParentTask, task.CompletedOn, task.UpdatedAt, task.Status)); return(true); }
public ChangeTaskStatusRequestMsg( object sender, TaskItemViewModel task, GoogleTaskStatus newStatus = GoogleTaskStatus.COMPLETED) : base(sender) { Task = task; NewStatus = newStatus; }
/// <summary> /// Gets the google status string associated to <paramref name="status"/> /// </summary> /// <param name="status"></param> /// <returns>Returns the google status string</returns> public static string GetString(this GoogleTaskStatus status) { switch (status) { case GoogleTaskStatus.NEEDS_ACTION: return(NEEDS_ACTION_STATUS); case GoogleTaskStatus.COMPLETED: return(COMPLETED_STATUS); default: throw new ArgumentNullException($"The provided status {status} doesnt exists"); } }
public async Task ChangeTaskStatusAsync(TaskItemViewModel task, GoogleTaskStatus taskStatus) { string statusMessage = $"{(taskStatus == GoogleTaskStatus.COMPLETED ? "completed" : "incompleted")}"; bool changeStatus = await _dialogService.ShowConfirmationDialogAsync( "Confirmation", $"Mark {task.Title} as {statusMessage}?", "Yes", "No"); if (!changeStatus) { return; } ShowTaskProgressRing = true; var response = await _dataService .TaskService .ChangeTaskStatusAsync(task.TaskID, taskStatus); ShowTaskProgressRing = false; if (!response.Succeed) { await _dialogService.ShowMessageDialogAsync( $"Error", $"An error occurred while trying to mark {task.Title} as {statusMessage}. " + $"Error = {response.Message}."); return; } task.Status = response.Result.Status; task.CompletedOn = response.Result.CompletedOn; task.UpdatedAt = response.Result.UpdatedAt; _messenger.Send( new Tuple <TaskItemViewModel, bool>(task, task.HasParentTask), $"{MessageType.TASK_STATUS_CHANGED_FROM_PANE_FRAME}"); _messenger.Send( $"{task.Title} was marked as {statusMessage}.", $"{MessageType.SHOW_IN_APP_NOTIFICATION}"); }
private string GetStatusMsgToUse(GoogleTaskStatus newStatus) => $"{(newStatus == GoogleTaskStatus.COMPLETED ? GetText("Completed") : GetText("Incompleted"))}";
public async Task <ResponseDto <GoogleTask> > ChangeTaskStatusAsync(string taskID, GoogleTaskStatus taskStatus) { return(await Task.Run(async() => { _logger.Information($"ChangeTaskStatusAsync: Trying to change the status of taskID = {taskID} to {taskStatus}"); var response = new ResponseDto <GoogleTask> { Message = string.Empty, Succeed = false }; using (var context = new MiraiNotesContext()) { try { var taskToUpdate = await context .Tasks .FirstOrDefaultAsync(t => t.GoogleTaskID == taskID); if (taskToUpdate == null) { response.Message = $"Could not find the task with taskID = {taskID} to change their status"; _logger.Warning($"ChangeTaskStatusAsync: Could not find a task with taskID = {taskID}"); return response; } taskToUpdate.CompletedOn = taskStatus == GoogleTaskStatus.COMPLETED ? DateTimeOffset.UtcNow : (DateTimeOffset?)null; taskToUpdate.Status = taskStatus.GetString(); taskToUpdate.UpdatedAt = DateTimeOffset.UtcNow; if (taskToUpdate.LocalStatus != LocalStatus.CREATED) { taskToUpdate.LocalStatus = LocalStatus.UPDATED; } taskToUpdate.ToBeSynced = true; context.Tasks.Update(taskToUpdate); response.Succeed = await context.SaveChangesAsync() > 0; response.Result = taskToUpdate; _logger.Information("ChangeTaskStatusAsync: Completed successfully"); } catch (Exception e) { _logger.Error(e, "ChangeTaskStatusAsync: An unknown error occurred"); response.Message = GetExceptionMessage(e); } } return response; }).ConfigureAwait(false)); }