public async Task <AddNewTodoResult> Handle(AddNewTodoCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.BoardId))
            {
                throw new ArgumentException("Cannot add new todo when BoardId is null or empty");
            }

            if (string.IsNullOrWhiteSpace(request.Title))
            {
                throw new ArgumentException("Cannot add new todo when Title is null or empty");
            }

            var todo = new Models.Todo
            {
                BoardId  = request.BoardId,
                Title    = request.Title,
                Deadline = request.Deadline
            };

            var result = await todoRepository.AddTodoAsync(todo);

            return(new AddNewTodoResult
            {
                TodoId = result.Id,
                BoardId = result.BoardId,
                CreationDate = result.CreationDate
            });
        }
        public IHttpActionResult PutTodo(int id, Models.Todo todo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != todo.Id)
            {
                return(BadRequest());
            }

            db.Entry(todo).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TodoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #3
0
        public async Task <IActionResult> UpdateAsync(Guid id, Models.Todo request)
        {
            var exist = await _context.Set <Models.Todo>().FirstOrDefaultAsync(s => s.Id == id);

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

            exist.StartDate   = request.StartDate;
            exist.EndDate     = request.EndDate;
            exist.Description = request.Description;
            exist.Status      = request.Status;
            exist.UpdatedBy   = request.UpdatedBy;
            exist.UpdatedOn   = DateTime.UtcNow;
            exist.IsActive    = request.IsActive;

            _context.Set <Models.Todo>().Update(exist);

            if (await _context.SaveChangesAsync() > 0)
            {
                return(Ok());
            }

            return(BadRequest());
        }
        public AddEditTodoPage(Models.Todo todo = null)
        {
            InitializeComponent();

            _viewModel     = new AddEditTodoViewModel(Navigation, todo);
            BindingContext = _viewModel;
        }
Exemple #5
0
        public IHttpActionResult AddNew(Models.Todo todo)
        {
            if (ModelState.IsValid)
            {
                var newTodo = TodoInMemoryRepository.Add(todo);
                return(this.Ok(newTodo));
            }

            return(this.BadRequest(ModelState));
        }
        public IHttpActionResult GetTodo(int id)
        {
            Models.Todo todo = db.Todoes.Find(id);
            if (todo == null)
            {
                return(NotFound());
            }

            return(Ok(todo));
        }
Exemple #7
0
        private Models.Todo MapTodoToBL(TodoDB todoDB)
        {
            var todo = new Models.Todo()
            {
                Id          = todoDB.Id,
                Name        = todoDB.Name,
                Description = todoDB.Description,
                IsDone      = todoDB.IsDone
            };

            return(todo);
        }
Exemple #8
0
        private TodoDB MapTodoToDB(Models.Todo todo)
        {
            var todoDB = new TodoDB()
            {
                Id          = todo.Id,
                Name        = todo.Name,
                Description = todo.Description,
                IsDone      = todo.IsDone
            };

            return(todoDB);
        }
        public IHttpActionResult PostTodo(Models.Todo todo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Todoes.Add(todo);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = todo.Id }, todo));
        }
        // POST: Todo
        public HttpResponseMessage Post(Models.Todo item)
        {
            var t = repo.Save(item);

            t.Url = String.Format("{0}/{1}", Request.RequestUri.ToString(), t.Id.ToString());

            var response = Request.CreateResponse <Models.Todo>(HttpStatusCode.OK, t);

            response.Headers.Location = new Uri(Request.RequestUri, "todo/" + t.Id.ToString());

            return(response);
        }
Exemple #11
0
        protected override void Seed(ToDoApp.Models.TodoContext context)
        {
            var todo = new Models.Todo();

            todo.Id          = 1;
            todo.IsDone      = true;
            todo.Description = "First todo";
            context.SaveChanges();
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data.
        }
        // PATCH: Todo/5
        public HttpResponseMessage Patch(int id, Models.Todo item)
        {
            item.Id = id;
            var t = repo.Save(item);

            t.Url = Request.RequestUri.ToString();

            var response = Request.CreateResponse <Models.Todo>(HttpStatusCode.OK, t);

            response.Headers.Location = new Uri(Request.RequestUri, t.Id.ToString());

            return(response);
        }
        public IHttpActionResult DeleteTodo(int id)
        {
            Models.Todo todo = db.Todoes.Find(id);
            if (todo == null)
            {
                return(NotFound());
            }

            db.Todoes.Remove(todo);
            db.SaveChanges();

            return(Ok(todo));
        }
Exemple #14
0
        public ActionResult AddItem(Models.Todo item)
        {
            ModelState.Clear();
            var currentItems = (List <Todo>)TempData["CurrentItems"] ?? new List <Todo>();

            currentItems.Add(item);

            TempData["CurrentItems"] = currentItems;

            TodoItems todoItems = HomeControllerHelper.CreateModel(currentItems);

            return(View("Index", todoItems));
        }
Exemple #15
0
        public void Save(Domain.Todo.Create.Models.Todo todo)
        {
            using var dbContext = contextFactory.Create();
            var entity = new Models.Todo
            {
                title         = todo.Title,
                description   = todo.Description,
                creation_date = todo.CreationDate
            };

            dbContext.Todos.Add(entity);
            dbContext.SaveChanges();
        }
Exemple #16
0
 public Models.Todo Add(Models.Todo todo)
 {
     try
     {
         // Add and commit
         context.Todos.Add(todo);
         context.SaveChanges();
         return(todo);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Exemple #17
0
        public async Task <IActionResult> CreateAsync(Models.Todo request)
        {
            request.CreatedOn = DateTime.UtcNow;
            request.UpdatedBy = request.CreatedBy;
            request.UpdatedOn = DateTime.UtcNow;

            await _context.Set <Models.Todo>().AddAsync(request);

            if (await _context.SaveChangesAsync() > 0)
            {
                return(Ok());
            }

            return(BadRequest());
        }
Exemple #18
0
        // POST api/Todos
        public HttpResponseMessage PostTodo(Todo todo)
        {
            if (ModelState.IsValid)
            {
                db.Todos.Add(todo);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, todo);
                response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = todo.Id }));
                return response;
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }
Exemple #19
0
        public Models.Todo AddTodo(Models.Todo todo)
        {
            try
            {
                var todoDB = MapTodoToDB(todo);
                todoDB.Id        = Guid.NewGuid();
                todoDB.CreatedAt = DateTime.Now;

                todoDB = _todoContext.Add(todoDB).Entity;
                _todoContext.SaveChanges();

                return(GetTodo(todoDB.Id));
            } catch (DbUpdateException)
            {
                throw new Exception("Can't create Todo");
            }
        }
Exemple #20
0
        public IEnumerable <Models.Todo> GetTodos()
        {
            var todosDB = _todoContext.Todos.ToList();
            var todos   = new List <Models.Todo>();

            foreach (var todoDB in todosDB)
            {
                var todo = new Models.Todo()
                {
                    Id          = todoDB.Id,
                    Name        = todoDB.Name,
                    Description = todoDB.Description,
                    IsDone      = todoDB.IsDone
                };
                todos.Add(todo);
            }
            return(todos);
        }
        public async Task <DeleteTodoResult> Handle(DeleteTodoCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.TodoId))
            {
                throw new ArgumentException("Cannot delete todo when TodoId is null or white space");
            }

            var todo = new Models.Todo
            {
                Id = request.TodoId
            };

            var result = await todoRepository.RemoveTodoAsync(todo);

            return(new DeleteTodoResult
            {
                TodoId = result.Id
            });
        }
        public async Task <MarkTodoAsUndoneResult> Handle(MarkTodoAsUndoneCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.TodoId))
            {
                throw new ArgumentException("Cannot mark todo as undone when TodoId is null or white space");
            }

            var todo = new Models.Todo
            {
                Id       = request.TodoId,
                DoneDate = null
            };

            var result = await todoRepository.UpdateTodoDoneDateAsync(todo);

            return(new MarkTodoAsUndoneResult
            {
                TodoId = result.Id
            });
        }
Exemple #23
0
        private static async Task <HandlerType> Add(Request req, Response res)
        {
            var form = await req.GetFormDataAsync();

            var session = req.GetData <Session>();

            var todo = new Models.Todo
            {
                UserId      = session.UserId,
                Title       = form["title"],
                Description = form["description"],
                Created     = DateTime.UtcNow
            };

            await using var ctx = new TodoContext(session.UserId);
            ctx.Add(todo);
            await ctx.SaveChangesAsync();

            return(await res.SendStatus(HttpStatusCode.OK));
        }
Exemple #24
0
        public Models.Todo Save(Models.Todo item)
        {
            if (item.Id == 0)
            {
                item.Id = ++MaxId;
            }

            int index = Todos.IndexOf(item);

            if (index != -1)
            {
                Todos[index] = item;
            }
            else
            {
                Todos.Add(item);
            }

            return(item);
        }
        public async Task <ChangeTodoTitleResult> Handle(ChangeTodoTitleCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.TodoId))
            {
                throw new ArgumentException("Cannot change todo Title to null or empty space");
            }

            var todo = new Models.Todo
            {
                Id    = request.TodoId,
                Title = request.Title
            };

            var result = await todoRepository.UpdateTodoTitleAsync(todo);

            return(new ChangeTodoTitleResult
            {
                TodoId = result.Id,
                Title = result.Title
            });
        }
        public async Task <ChangeTodoDeadlineResult> Handle(ChangeTodoDeadlineCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.TodoId))
            {
                throw new ArgumentException("Cannot change todo Deadline when TodoId is null or white space");
            }

            var todo = new Models.Todo
            {
                Id       = request.TodoId,
                Deadline = request.NewDeadline
            };

            var result = await todoRepository.UpdateTodoDeadlineAsync(todo);

            return(new ChangeTodoDeadlineResult
            {
                TodoId = result.Id,
                NewDeadline = result.Deadline
            });
        }
Exemple #27
0
        // PATCH: Todo/5
        public HttpResponseMessage Patch(int id, Models.Todo item)
        {
            var todo = repo.Get(id);

            if (item.Title != null)
            {
                todo.Title = item.Title;
            }
            if (item.Completed.HasValue)
            {
                todo.Completed = item.Completed;
            }
            var t = repo.Save(todo);

            t.Url = Request.RequestUri.ToString();

            var response = Request.CreateResponse <Models.Todo>(HttpStatusCode.OK, t);

            response.Headers.Location = new Uri(Request.RequestUri, t.Id.ToString());

            return(response);
        }
Exemple #28
0
        // PUT api/Todos/5
        public HttpResponseMessage PutTodo(Guid id, Todo todo)
        {
            if (ModelState.IsValid && id == todo.Id)
            {
                db.Entry(todo).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    return Request.CreateResponse(HttpStatusCode.NotFound);
                }

                return Request.CreateResponse(HttpStatusCode.OK, todo);
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }
Exemple #29
0
        public Models.Todo UpdateTodo(Models.Todo todo)
        {
            if (todo.Id == Guid.Empty)
            {
                throw new Exception("No id given");
            }

            var todoDB = MapTodoToDB(todo);
            var entity = _todoContext.Todos.Attach(todoDB);

            entity.Property(x => x.Name).IsModified        = true;
            entity.Property(x => x.Description).IsModified = true;
            entity.Property(x => x.IsDone).IsModified      = true;

            _todoContext.SaveChanges();

            todoDB = _todoContext.Todos.Find(todo.Id);


            todos[todos.FindIndex(x => x.Id == todo.Id)] = todo;
            return(todo);
        }
Exemple #30
0
 public bool Remove(Models.Todo todo)
 {
     try
     {
         // remove and commit
         context.Todos.Remove(todo);
         var results = context.SaveChanges();
         // Check to see if we have proper results
         // and return a corresponding value
         if (results > 0)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Exemple #31
0
        public IActionResult Index(int id)
        {
            Models.Todo todo = null;
            if (id > 0)
            {
                var BigList = from u in MyDB.Users
                              where u.TodoList.Count != 0
                              select u.TodoList;

                List <Models.Todo> temp = new List <Models.Todo>();

                foreach (List <Models.Todo> lp in BigList.ToList())
                {
                    temp.AddRange(lp);
                }

                if (temp.Count >= id)
                {
                    todo = (from t in temp
                            select t).First(t => t.Id.Equals(id));
                }
            }
            return(View(todo));
        }
Exemple #32
0
        private static List <Models.Todo> MakeTreeFromFlatList(List <Models.Todo> flatList)
        {
            var rootTodo = new List <Models.Todo>();

            if (flatList.Count == 1 && flatList.First().ToDoItemId == null && flatList.First().ToDoListId == null)
            {
                return(rootTodo);
            }
            var dic = flatList.Where(n => n.ToDoItemId == null && n.ItemType != 3).ToDictionary(n => n.ToDoListId, n => n);

            if (dic.Count == 0)
            {
                return(flatList.FindAll(n => n.ItemType == 2));
            }
            foreach (var todo in flatList)
            {
                if (todo.ItemType == 3)
                {
                    continue;
                }
                if (todo.ToDoItemId.HasValue)
                {
                    Models.Todo parent = dic[todo.ToDoListId];
                    if (parent.Sub == null)
                    {
                        parent.Sub = new List <Models.Todo>();
                    }
                    parent.Sub.Add(todo);
                }
                else
                {
                    rootTodo.Add(todo);
                }
            }
            return(rootTodo);
        }