public async Task AddLisAsynct(TodoListModel list)
        {
            var lists = _context.Set <TodoListModel>();
            await lists.AddAsync(list);

            _context.SaveChanges();
        }
Beispiel #2
0
        public IActionResult TodoUpdate(string Id)
        {
            if (User.Identity.IsAuthenticated)
            {
                _token = User.FindFirst("Token").Value;
            }
            TodoListModel todoList = apiRequest.GetTodoListById(Id, _token);

            TodoListsViewModel todoListsViewModel = new TodoListsViewModel();

            todoListsViewModel.title    = todoList.title;
            todoListsViewModel.content  = todoList.content;
            todoListsViewModel.listType = todoList.listType;

            ViewBag.listId = todoList.listId;

            todoListsViewModel.listTypes = new List <SelectListItem>
            {
                new SelectListItem {
                    Text = "普通", Value = "普通"
                },
                new SelectListItem {
                    Text = "急件", Value = "急件"
                }
            };

            return(View(todoListsViewModel));
        }
Beispiel #3
0
 public SaveViewModel(TodoItemViewModel parentVM, TodoListModel todoList)
 {
     parentViewModel = parentVM;
     this.todoList   = todoList;
     IsTodoItemSave  = true;
     IsEdit          = false;
 }
Beispiel #4
0
 public SaveViewModel(TodoListViewModel parentVM, TodoListModel todoList)
 {
     parentViewModel = parentVM;
     this.todoList   = todoList;
     Name            = todoList.Name;
     IsEdit          = true;
 }
Beispiel #5
0
        public async Task <IActionResult> Update(int id, TodoListModel model)
        {
            try
            {
                var todoList = await _todoListRepository.GetByIdAsync(id);

                if (todoList == null)
                {
                    return(NotFound());
                }

                todoList.Name = model.Name;

                await _todoListRepository.UpdateAsync(todoList);

                _logger.LogInformation("Updated todo list {id}", id);

                return(Ok(model));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error updating todo list {id}", id);
                return(StatusCode(500));
            }
        }
Beispiel #6
0
        // GET: TodoList
        public async Task <ActionResult> Index(string id, int?s)
        {
            var todoList = await this.TodoLists.GetByIdOrNull(id);

            if (todoList == null)
            {
                var todoLists = new ListModel <ITodoList>(
                    this.TodoLists.OrderByDescending(c => c.CreationDate),
                    index => this.Url.Action("Index", new { s = index }),
                    s.GetValueOrDefault(),
                    20);

                return(View(todoLists));
            }
            else
            {
                var model = new TodoListModel
                {
                    TodoList = todoList,
                    Todos    = this.Todos.Where(t => t.TodoList.Id == todoList.Id),
                };

                return(View("Get", model));
            }
        }
        public void CreateTodoList_ListNameNull_CreateFail()
        {
            TodoListModel todoList = new TodoListModel();
            int           result   = _todoOperator.CreateTodoList(todoList);

            Assert.IsTrue(result == OperationStatusCodes.INVALID_PARAMTERS);
        }
Beispiel #8
0
        public async Task <bool> ChangeListActiveState(TodoListModel list)
        {
            try
            {
                list.Active = !list.Active;

                if (list.Active)
                {
                    var allLists = await database.QueryAsync <TodoListModel>("SELECT * FROM TodoList");

                    foreach (TodoListModel todolist in allLists)
                    {
                        todolist.Active = false;
                        await database.UpdateAsync(todolist);
                    }
                }

                await database.UpdateAsync(list);

                return(true);
            }
            catch (Exception ex)
            {
                ErrorTracker.ReportError(ex);
                return(false);
            }
        }
        private async void NewTodoTextBox_LostFocus(object sender, RoutedEventArgs e)
        {
            TextBox       newTodoTextBox = (TextBox)sender;
            TodoListModel todoList       = GetDataContext <TodoListModel>(sender);

            if (!String.IsNullOrWhiteSpace(newTodoTextBox.Text))
            {
                HttpResult <TodoItem> result;
                using (TodoClient todoClient = ClientFactory.CreateTodoClient())
                {
                    result = await todoClient.AddTodoItemAsync(new TodoItem()
                    {
                        TodoListId = todoList.TodoListId, Title = newTodoTextBox.Text
                    });
                }

                if (result.Succeeded)
                {
                    todoList.Todos.Add(new TodoItemModel(result.Content)
                    {
                        TodoList = todoList
                    });
                }
                else
                {
                    await ErrorDialog.ShowErrorsAsync(result.Errors);
                }
            }
            newTodoTextBox.Text = "Add New Todo";
        }
        public static Uri GetNavigationUri(TodoListModel todoList)
        {
            HttpValueCollection httpValues = new HttpValueCollection();

            httpValues.Add(TodoListTitle, todoList.Title);
            httpValues.Add(TodoListId, todoList.TodoListId.ToString());
            return(new Uri("/EditTodoListPage.xaml?" + httpValues.ToString(), UriKind.Relative));
        }
Beispiel #11
0
        private void EditTodoListMenuItem_Click(object sender, EventArgs e)
        {
            TodoListModel todoList = GetSelectedTodoList();

            if (todoList != null)
            {
                this.NavigationService.Navigate(EditTodoListPage.GetNavigationUri(todoList));
            }
        }
Beispiel #12
0
 public SaveViewModel(TodoItemViewModel parentVM, TodoListModel todoList, Guid todoItemId)
 {
     parentViewModel     = parentVM;
     this.todoList       = todoList;
     this.todoItemEditId = todoItemId;
     Name           = todoList.TodoItems.Where(item => item.Id == todoItemEditId).FirstOrDefault().Name;
     IsEdit         = true;
     IsTodoItemSave = true;
 }
        private void TodoListTitleTextBox_GotFocus(object sender, RoutedEventArgs e)
        {
            TodoListModel todoList = GetDataContext <TodoListModel>(sender);

            if (!String.IsNullOrWhiteSpace(todoList.Title))
            {
                todoList.OriginalTitle = todoList.Title;
            }
        }
Beispiel #14
0
 public TodoListModel Modify(TodoListModel todoListModel)
 {
     using (var context = _dbContextFactory.Create())
     {
         var todoList = context.TodoLists.Where(t => t.Id == todoListModel.Id).FirstOrDefault();
         todoList.Title = todoListModel.Title;
         context.SaveChanges();
         return(todoListModel);
     }
 }
Beispiel #15
0
        public IActionResult TodoDetail(string Id)
        {
            if (User.Identity.IsAuthenticated)
            {
                _token = User.FindFirst("Token").Value;
            }
            TodoListModel todoList = apiRequest.GetTodoListById(Id, _token);

            return(View(todoList));
        }
        public void CreateTodoList_ListNameNotNull_CreateSuccess()
        {
            TodoListModel todoList = new TodoListModel
            {
                Name = "New List"
            };

            int result = _todoOperator.CreateTodoList(todoList);

            Assert.IsTrue(result == OperationStatusCodes.SUCCESS);
        }
Beispiel #17
0
        private async Task <TodoListDto> mapTodoDto(TodoListModel item)
        {
            TodoListDto mappedDto = new TodoListDto();

            mappedDto.Id          = item.Id;
            mappedDto.Name        = item.Name;
            mappedDto.Description = item.Description;
            mappedDto.Tasks       = await _repository.getTasksByTodoIdAsync(item.Id);

            return(mappedDto);
        }
Beispiel #18
0
 /// <summary>
 /// changes todo-list item
 /// </summary>
 /// <param name="todoListModel">todo-list model to change</param>
 /// <returns>changed todo-list model</returns>
 public IHttpActionResult Put(TodoListModel todoListModel)
 {
     try
     {
         return(Ok(_todoListsService.Modify(todoListModel)));
     }
     catch (Exception ex)
     {
         return(InternalServerError(ex));
     }
 }
        public async Task <IActionResult> Post([FromBody] TodoListModel model)
        {
            if (model != null)
            {
                _dbContext.Add(model);
                await _dbContext.SaveChangesAsync();

                RabbitMqClient.Publish($"New todo item was successfully inserted into MS-SQL - > {model.Description}");
                return(Ok());
            }
            return(BadRequest());
        }
Beispiel #20
0
        //Commented by Pasan[04/03/2020] This method will creates the global todo list.
        public int CreateTodoList(TodoListModel todoList)
        {
            if (todoList.Name == null)
            {
                return(OperationStatusCodes.INVALID_PARAMTERS);
            }

            TodoListModel newTodoList = new TodoListModel();

            newTodoList.Name = todoList.Name;

            return(OperationStatusCodes.SUCCESS);
        }
Beispiel #21
0
        public TodoListModel GetTodoListById(string listId, string token)
        {
            string url = $"https://apicorepractice.herokuapp.com/api/todolists/{listId}";

            string resData = PostToBackApi(url, "GET", token, string.Empty);

            if (string.IsNullOrEmpty(resData))
            {
                TodoListModel todoListModel = null;
                return(todoListModel);
            }

            return(JsonConvert.DeserializeObject <TodoListModel>(resData));
        }
Beispiel #22
0
 public TodoListModel Create(TodoListModel todoListModel)
 {
     using (var context = _dbContextFactory.Create())
     {
         var todoList = new DAL.Entities.TodoList
         {
             Title = todoListModel.Title,
         };
         context.TodoLists.Add(todoList);
         context.SaveChanges();
         todoListModel.Id = todoList.Id;
         return(todoListModel);
     }
 }
Beispiel #23
0
        public async Task <bool> CompleteList(TodoListModel list)
        {
            try
            {
                list.Active    = false;
                list.Completed = true;
                await SaveList(list);

                return(true);
            }
            catch (Exception ex)
            {
                ErrorTracker.ReportError(ex);
                return(false);
            }
        }
Beispiel #24
0
        public TodoListModel TodoUpdate(string listId, TodoListsViewModel todoListsViewModel, string token)
        {
            string url = $"https://apicorepractice.herokuapp.com/api/todolists/{listId}";

            string postBody = JsonConvert.SerializeObject(todoListsViewModel);//將匿名物件序列化為json字串

            string resData = PostToBackApi(url, "PUT", token, postBody);

            if (string.IsNullOrEmpty(resData))
            {
                TodoListModel todoListModel = null;
                return(todoListModel);
            }

            return(JsonConvert.DeserializeObject <TodoListModel>(resData));
        }
        public async Task <ActionResult> Index()
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Login", "Account"));
            }

            var UserID = User.Identity.GetUserId <long>();
            ICollection <TodoList> lists = await _todoListRepository.GetAllAsync();

            ICollection <TodoTask> tasks = await _todoTaskRepository.GetAllAsync();

            TodoListsModel listsModel = new TodoListsModel();

            listsModel.TodoLists = new List <TodoListModel>();

            foreach (TodoList list in lists)
            {
                if (list.UserID == UserID)
                {
                    TodoListModel listModel = new TodoListModel {
                        ListID         = list.ListID,
                        ListName       = list.ListName,
                        LeftPositioned = list.LeftPositoned,
                        DateCreated    = list.DateCreated,
                        TodoTasks      = new List <TodoTaskModel> {
                        }
                    };
                    foreach (TodoTask task in tasks)
                    {
                        if (task.ListID == list.ListID)
                        {
                            TodoTaskModel taskModel = new TodoTaskModel {
                                TaskID      = task.TaskID,
                                TaskName    = task.TaskName,
                                Description = task.Description,
                                Colour      = task.Colour
                            };
                            listModel.TodoTasks.Add(taskModel);
                        }
                    }
                    listsModel.TodoLists.Add(listModel);
                }
            }

            return(View(listsModel));
        }
        public IActionResult AddNewTodoList([FromBody] TodoListModel data)
        {
            using (SqlConnection connection = new SqlConnection(DBHelper.connectionString))
            {
                connection.Open();
                try
                {
                    string RetVal = "";
                    string Query  = "[dbo].[_0620_Workbase_TodoList_AddNew]";
                    using (DBHelper.cmd = new SqlCommand(Query, connection))
                    {
                        DBHelper.cmd.Parameters.AddWithValue("@P_Owner", data.Owner);
                        DBHelper.cmd.Parameters.AddWithValue("@P_Todo", data.TaskDetails);
                        DBHelper.cmd.Parameters.AddWithValue("@P_Rate", data.Rate);
                        DBHelper.cmd.CommandType = System.Data.CommandType.StoredProcedure;
                        DBHelper.sdr             = DBHelper.cmd.ExecuteReader();
                        while (DBHelper.sdr.Read())
                        {
                            RetVal = DBHelper.sdr["TODO_ID"].ToString();
                            break;
                        }
                        DBHelper.cmd.Parameters.Clear();
                        DBHelper.sdr.Close();
                        var response = new
                        {
                            TODO_ID = RetVal,
                        };
                        return(new OkObjectResult(response));
                    }
                }
                catch (Exception e)
                {
                    var response = new
                    {
                        ok      = false,
                        message = "Error",
                        error   = e.Message
                    };

                    return(new BadRequestObjectResult(response));
                }
                finally
                {
                    connection.Close();
                }
            }
        }
        /// <summary>
        /// Constructor for TodoListViewModel that can be backed by any list of Todos, supporting
        /// filtering and reacting to propertychanged events
        /// </summary>
        /// <param name="Recycled">Bool representing whether to load recycled or non-recycled Todos</param>
        public ToDoListViewModel(bool Recycled = false)
        {
            Model = new TodoListModel();
            Todos = new ObservableCollection <TodoViewModel>();
            NotificationService = new NotificationSender(Todos);
            ViewableTodos       = Todos;
            _Filter             = (x => true);
            _SelectedIndex      = -1;
            foreach (var todo in
                     Recycled ? Model.GetRecycledTodos() : Model.GetTodos())
            {
                var tdvm = new TodoViewModel(todo);
                tdvm.PropertyChanged += Todo_PropertyChanged;
                this.Todos.Add(tdvm);
            }

            NotificationService.Start();
        }
        private async void TodoListTitleTextBox_LostFocus(object sender, RoutedEventArgs e)
        {
            TextBox       todoListTitleTextBox = (TextBox)sender;
            TodoListModel todoList             = GetDataContext <TodoListModel>(sender);

            string newTitle = todoListTitleTextBox.Text;

            if (newTitle != todoList.OriginalTitle)
            {
                HttpResult result;
                using (TodoClient todoClient = ClientFactory.CreateTodoClient())
                {
                    if (String.IsNullOrWhiteSpace(newTitle))
                    {
                        result = await todoClient.DeleteTodoListAsync(todoList.TodoListId);

                        if (result.Succeeded)
                        {
                            TodoPageModel.TodoLists.Remove(todoList);
                        }
                    }
                    else
                    {
                        TodoList update = new TodoList()
                        {
                            TodoListId = todoList.TodoListId, Title = newTitle
                        };
                        result = await todoClient.UpdateTodoListAsync(update);

                        if (!result.Succeeded)
                        {
                            todoList.Title = todoList.OriginalTitle;
                        }
                    }
                }

                if (!result.Succeeded)
                {
                    await ErrorDialog.ShowErrorsAsync(result.Errors);
                }
            }
        }
        private async void DeleteAppBarButton_Click(object sender, RoutedEventArgs e)
        {
            TodoListModel todoList = GetSelectedTodoList();

            HttpResult result;

            using (TodoClient todoClient = ClientFactory.CreateTodoClient())
            {
                result = await todoClient.DeleteTodoListAsync(todoList.TodoListId);
            }

            if (result.Succeeded)
            {
                TodoPageModel.TodoLists.Remove(todoList);
            }
            else
            {
                await ErrorDialog.ShowErrorsAsync(result.Errors);
            }
        }
Beispiel #30
0
        public async Task <bool> SaveList(TodoListModel list)
        {
            try
            {
                var existingList = await GetList(list.Id);

                if (existingList != null)
                {
                    if (list.TodoItemsEdited)
                    {
                        list.TodoItemsEdited = false;

                        foreach (TodoItemModel item in list.TodoItems)
                        {
                            await DeleteTodoItem(item);
                        }

                        foreach (TodoItemModel item in list.TodoItems)
                        {
                            await SaveTodoItem(item, list.Id);
                        }
                    }

                    await database.UpdateAsync(list);
                }
                else
                {
                    await database.InsertAsync(list);
                    await ChangeListActiveState(list);
                }

                return(true);
            }
            catch (Exception ex)
            {
                ErrorTracker.ReportError(ex);
                return(false);
            }
        }