public async Task <IActionResult> Create(TodoItemViewModel todoItem, List <int> tagId)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    int todoItemId = await _todoItemdataService.Create(_mapper.Map <TodoItemVO>(todoItem));

                    await _itemTagService.Create(todoItemId, tagId);

                    return(RedirectToAction(nameof(Index)));
                }
                catch (ArgumentException ex)
                {
                    ViewData["Categories"] = _mapper.Map <IEnumerable <CategoryViewModel> >(await _categorydataService.GetAll());
                    ViewData["Tags"]       = _mapper.Map <IEnumerable <TagViewModel> >(await _tagdataService.GetAll());
                    ModelState.AddModelError("Name", ex.Message);
                    return(View(todoItem));
                }
            }
            else
            {
                ViewData["Categories"] = _mapper.Map <IEnumerable <CategoryViewModel> >(await _categorydataService.GetAll());
                ViewData["Tags"]       = _mapper.Map <IEnumerable <TagViewModel> >(await _tagdataService.GetAll());
                return(View(todoItem));
            }
        }
Example #2
0
        public int UpdateTodoItem(TodoItemViewModel item)
        {
            try
            {
                var itemEntity = new TodoItem
                {
                    Id          = item.Id,
                    Title       = item.Title,
                    Description = item.Description,
                    Lat         = item.Latitude,
                    Long        = item.Longitude
                                  //Location = new Point(item.Latitude, item.Latitude) { SRID = 4326 }
                };

                // add validation
                _context.Entry(itemEntity).State = EntityState.Modified;
                _context.SaveChanges();

                return(1);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public async Task <IActionResult> AddItem(TodoItemViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser == null)
            {
                return(Challenge());
            }

            var newItem = new TodoItem()
            {
                Id       = model.Id,
                Title    = model.Title,
                DueAt    = model.DueAt,
                Category = await _categoryService.GetByIdAsync(model.CategoryId)
            };

            var successful = await _todoItemService.AddItemAsync(newItem, currentUser);

            if (!successful)
            {
                return(BadRequest("Could not add item."));
            }
            return(RedirectToAction("Index"));
        }
Example #4
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ApplicationUser user = await _userManager.GetUserAsync(User);

            TodoItem todoItem = await _context.TodoItem
                                .Include(a => a.ApplicationUser)
                                .SingleOrDefaultAsync(m => m.ToDoItemId == id && m.ApplicationUser == user);

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

            TodoItemViewModel todoItemViewModel = new TodoItemViewModel
            {
                ToDoItemId  = todoItem.ToDoItemId,
                Title       = todoItem.Title,
                Description = todoItem.Description,
                IsComplete  = todoItem.IsComplete
            };

            return(View(todoItemViewModel));
        }
Example #5
0
 public static void Delete(string id)
 {
     DeleteProfilePictureAsync(id);
     DatabaseService.GetInstance().Delete(id);
     TodoItemViewModel.GetInstance().RemoveTodoItem();
     App.UpdateFileAndTile();
 }
Example #6
0
        private void GridView_ItemClick_1(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as TodoItem;
            var vm   = new TodoItemViewModel(item.Project, item);

            this.Frame.Navigate(typeof(TodoItemView), vm);
        }
Example #7
0
        public async Task Update(TodoItemViewModel model)
        {
            var todo = await UnitOfWork.TodoRepository.GetById(model.Id);

            UnitOfWork.TodoRepository.Update(Mapper.Map(model, todo));
            UnitOfWork.SaveChanges();
        }
        public IHttpActionResult DeleteTodoItem(int id)
        {
            TodoItem todoItem = db.TodoItems.Find(id);

            if (todoItem == null)
            {
                return(StatusCode(HttpStatusCode.NotFound));
            }

            if (!String.Equals(db.Entry(todoItem.TodoList).Entity.UserId, User.Identity.GetUserId(), StringComparison.OrdinalIgnoreCase))
            {
                // Trying to delete a record that does not belong to the user
                return(StatusCode(HttpStatusCode.Unauthorized));
            }

            TodoItemViewModel todoItemDto = new TodoItemViewModel(todoItem);

            db.TodoItems.Remove(todoItem);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                return(StatusCode(HttpStatusCode.InternalServerError));
            }

            return(Content(HttpStatusCode.OK, todoItemDto));
        }
        public IHttpActionResult PostTodoItem(TodoItemViewModel todoItemDto)
        {
            if (!ModelState.IsValid)
            {
                return(Message(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)));
            }

            TodoList todoList = db.TodoLists.Find(todoItemDto.TodoListId);

            if (todoList == null)
            {
                return(StatusCode(HttpStatusCode.NotFound));
            }

            if (!String.Equals(todoList.UserId, User.Identity.GetUserId(), StringComparison.OrdinalIgnoreCase))
            {
                // Trying to add a record that does not belong to the user
                return(StatusCode(HttpStatusCode.Unauthorized));
            }

            TodoItem todoItem = todoItemDto.ToEntity();

            // Need to detach to avoid loop reference exception during JSON serialization
            db.Entry(todoList).State = EntityState.Detached;
            db.TodoItems.Add(todoItem);
            db.SaveChanges();
            todoItemDto.TodoItemId = todoItem.TodoItemId;

            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, todoItemDto);

            response.Headers.Location = new Uri(Url.Link("TodoItem", new { id = todoItemDto.TodoItemId }));
            return(Message(response));
        }
Example #10
0
        public async Task <IActionResult> IndexById(int?id)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction(actionName: nameof(Index), controllerName: "Home"));
            }
            var todo = await _todoItemRepository.GetAsync(id.Value);

            if (todo == null)
            {
                return(Content("Todo items not found"));
            }

            var viewModel = new TodoItemViewModel()
            {
                Id         = todo.ID,
                Name       = todo.Name,
                IsComplete = todo.IsComplete,
                ModifyTime = todo.ModifyTime,
                StepCount  = todo.Steps.Count
            };
            List <TodoItemViewModel> list = new List <TodoItemViewModel>();

            list.Add(viewModel);
            return(View("Index", list));
        }
Example #11
0
        // GET: TodoItems/Edit/5
        public async Task <ActionResult> Edit(int id)
        {
            var allStatuses = await _context.ToDoStatus
                              .Select(d => new SelectListItem()
            {
                Text = d.Title, Value = d.Id.ToString()
            })
                              .ToListAsync();

            var item = await _context.ToDoItem.FirstOrDefaultAsync(i => i.Id == id);

            var loggedInUser = await GetCurrentUserAsync();

            if (item.ApplicationUserId != loggedInUser.Id)
            {
                return(NotFound());
            }
            var viewModel = new TodoItemViewModel()
            {
                Id                = item.Id,
                Title             = item.Title,
                TodoStatusId      = item.ToDoStatusId,
                ToDoStatusOptions = allStatuses
            };

            return(View(viewModel));
        }
Example #12
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Name,Description,DeadLineDate,CreationDate,Priority,Status,CategoryID")] TodoItemViewModel todoItem)
        {
            if (id != todoItem.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var todoItemVo = mapper.Map <TodoItemVo>(todoItem);
                    await provider.Edit(todoItemVo);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!provider.Exists(todoItem.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CategoryID"] = new SelectList(categoryProvider.GetEnum(), "ID", "Name", todoItem.CategoryID);
            return(View(todoItem));
        }
        public void Put([FromBody] TodoItemViewModel todoItem)
        {
            if (!User.Identity.IsAuthenticated)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Доступ разрешен только для авторизованным пользователям"));
            }
            if (todoItem == null)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Возникла ошибка при обработке запроса"));
            }
            var item = _todoItemService.GetTodoItemById(todoItem.Id);

            if (item == null)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Не удалось найти указанный элемент"));
            }
            if (User.Identity.GetUserId() != _todoListService.GetTodoListById(item.TodoListEntityId).ApplicationUserEntityId)
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Доступ к ресурсу запрещен"));
            }
            item.Name    = todoItem.Name;
            item.DueDate = todoItem.DueDate;
            item.ChangedFromCompletedToIncompleted = (item.IsCompleted ^ todoItem.IsCompleted) &&
                                                     !item.IsCompleted;
            item.IsCompleted = todoItem.IsCompleted;
            item.Note        = todoItem.Note;
            if (todoItem.InsertToPosition > -1)
            {
                item.IncertToPlace = todoItem.InsertToPosition;
            }
            _todoItemService.UpdateTodoItem(item);
        }
Example #14
0
        public async Task <IActionResult> MarkDone(Guid id)
        {
            if (id == Guid.Empty)
            {
                return(RedirectToAction("Index"));
            }

            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser == null)
            {
                return(RedirectToAction("Index"));
            }

            TodoItemViewModel[] currentTodoItems = await _todoItemService.GetIncompleteItemsAsync(currentUser);

            TodoItemViewModel item = currentTodoItems.SingleOrDefault(i => i.Id == id);

            var successful = await _todoItemService.MarkDoneAsync(item, currentUser);

            if (!successful)
            {
                return(BadRequest("Could not mark item as done."));
            }

            return(RedirectToAction("Index"));
        }
Example #15
0
        private void GridView_ItemClick_2(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as TodoItem;
            var vm   = new TodoItemViewModel(null, item, ViewModel.Stars, "Stars");

            this.Frame.Navigate(typeof(TodoItemView), vm);
        }
Example #16
0
        public async Task <IActionResult> Create(TodoItemViewModel todoItem)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser user = await _userManager.GetUserAsync(User);

                DateTime dtNow = DateTime.UtcNow;

                _context.Add(new TodoItem
                {
                    ApplicationUser = user,
                    Title           = todoItem.Title,
                    Description     = todoItem.Description,
                    CreatedDateTime = dtNow,
                    UpdatedDateTime = dtNow
                });

                try
                {
                    await _context.SaveChangesAsync();

                    Message = "Success, a new item has been created";
                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception ex)
                {
                    //log
                    Message = "Error, something went wrong.";
                }
            }

            return(View(todoItem));
        }
Example #17
0
        private void ListView_ItemClick_1(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as TodoItem;
            var vm   = new TodoItemViewModel(DataService.Inbox, item);

            this.Frame.Navigate(typeof(TodoItemView), vm);
        }
        public ActionResult Edit(TodoItemViewModel tvm)
        {
            TodoClient tc = new TodoClient();

            tc.Edit(tvm.todoItem);
            return(RedirectToAction("Index"));
        }
Example #19
0
        private void ProcessItemClick <TModel>(ItemClickEventArgs e) where TModel : ItemCollectionBase
        {
            var item = e.ClickedItem as TModel;
            var vm   = new TodoItemViewModel(item, item.Items.FirstOrDefault());

            this.Frame.Navigate(typeof(TodoItemView), vm);
        }
        public TodoItemViewModel Post(TodoItemViewModel todoItem)
        {
            todoItem.Id = !_TodoItems.Any() ? 1 : _TodoItems.Max(ti => ti.Id) + 1;
            _TodoItems.Add(todoItem);

            return(todoItem);
        }
Example #21
0
        public async Task <IActionResult> Create([Bind("Id,Created,Task,Detail,IsComplete,IsWorkingOn,StartWorking,Finished")] TodoItemViewModel todoItemVM)
        {
            TodoItem todoItem;

            todoItemVM.Created = TimeZoneInfo
                                 .ConvertTime(DateTime.UtcNow, TZConvert.GetTimeZoneInfo("New Zealand Standard Time"));;
            todoItem = new TodoItem
            {
                Id          = todoItemVM.Id,
                Created     = todoItemVM.Created,
                Task        = todoItemVM.Task,
                Detail      = todoItemVM.Detail,
                IsComplete  = false,
                IsWorkingOn = false,
            };

            if (ModelState.IsValid)
            {
                _context.Add(todoItem);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(todoItem));
        }
Example #22
0
        public IActionResult CreateItem(string id, [FromBody] TodoItemViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = UserHelper.GetUserById(User.Identity.Name);

                //You must be logged in as the user specified in the URL
                if (id != user?.Id)
                {
                    return(BadRequest("Invalid Permissions"));
                }

                if (model.Task == null || model.Task.Trim() == "")
                {
                    return(BadRequest());
                }

                Todo item = new Todo()
                {
                    Owner     = user.Id,
                    Completed = false,
                    Task      = model.Task
                };

                db.Todos.Add(item);
                return(Ok(item));
            }
            else
            {
                return(BadRequest());
            }
        }
        protected virtual async Task <IActionResult> DoUpdate(string slug, TodoItemViewModel viewModel)
        {
            var user = await this.GetLocalUser(UserService);

            var todoItem = await TodoItemService.TodoItemRepository
                           .FindOneBy(t => t.User.Id == user.Id && t.Slug == slug);

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

            await Validate(viewModel, user.Id, slug);

            if (!ModelState.IsValid)
            {
                return(ValidationProblem());
            }

            await TodoItemService.Update(todoItem, viewModel.ToDto());

            var responseBody = new
            {
                Message = StatusMessageLocalizer["TodoItemUpdated"].Value,
                Data    = todoItem.ToDto()
            };

            return(Ok(responseBody));
        }
        public TodoItemPage(TodoItem todoItem, TodoListViewModel lvm)
        {
            InitializeComponent();

            this.TodoItemViewModel = new TodoItemViewModel
            {
                Navigation        = this.Navigation,
                TodoListViewModel = lvm
            };

            // addition
            if (todoItem == null)
            {
                this.TodoItemViewModel.IsAdding = true;
            }
            // editing
            else
            {
                this.TodoItemViewModel.TodoItem    = todoItem.ShallowCopy();
                this.TodoItemViewModel.Id          = todoItem.Id;
                this.TodoItemViewModel.Name        = todoItem.Name;
                this.TodoItemViewModel.Description = todoItem.Description;
                this.TodoItemViewModel.Date        = todoItem.Date;
                this.TodoItemViewModel.Time        = todoItem.Time;
            }

            this.BindingContext = this.TodoItemViewModel;
        }
Example #25
0
        public IActionResult PutTodoItem(string id, TodoItemViewModel TodoItem)
        {
            try
            {
                string userId = HttpContext.User.Claims.First(x => x.Type == JwtRegisteredClaimNames.Jti).Value;

                UserViewModel user = _mapper.Map <UserViewModel>(_usertRepository.GetById(userId));

                var returnTodoItem = user.TodoItems.FirstOrDefault(c => c.id == id);

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

                var index = user.TodoItems.IndexOf(returnTodoItem);

                if (index != -1)
                {
                    user.TodoItems[index] = _mapper.Map <TodoItemViewModel>(TodoItem);
                }

                _usertRepository.Update(user.id, _mapper.Map <UserEntity>(user));

                return(CreatedAtAction(nameof(GetTodoItemById), new { TodoItem.id }, TodoItem));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #26
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(500, 600));
     if (e.Parameter.GetType() == typeof(ViewModels.TodoItemViewModel))
     {
         this.ViewModel = (ViewModels.TodoItemViewModel)(e.Parameter);
     }
 }
        public ActionResult Edit(int id)
        {
            TodoClient        tc  = new TodoClient();
            TodoItemViewModel tvm = new TodoItemViewModel();

            tvm.todoItem = tc.find(id);
            return(View("Edit", tvm));
        }
Example #28
0
 public IActionResult Index(TodoItemViewModel model)
 {
     if (ModelState.IsValid)
     {
         _todoItemService.Add(_mapper.Map <TodoItem>(model));
     }
     return(RedirectToAction("Index"));
 }
Example #29
0
        public static void Update(string title, string detail, DateTime date, double size, ImageSource img)
        {
            DatabaseService.GetInstance().Update(TodoItemViewModel.GetInstance().selectedItem.id, title, detail, size, date);
            SaveBitmapToFileAsync((WriteableBitmap)img, TodoItemViewModel.GetInstance().selectedItem.id);
            TodoItemViewModel.GetInstance().UpdateTodoItem(title, detail, date, size, img);

            App.UpdateFileAndTile();
        }
 public void Handle(Core.Boundaries.AddTodoItem.Response response)
 {
     CreatedItem = new TodoItemViewModel()
     {
          
             Id = response.Id
     };
 }
Example #31
0
        public HttpResponseMessage PostTodoItem(TodoItemViewModel item)
        {
            var modelStateErrors = ModelState.Values.ToList();

            List<string> errors = new List<string>();

            foreach (var s in modelStateErrors)
                foreach (var e in s.Errors)
                    if (e.ErrorMessage != null && e.ErrorMessage.Trim() != "")
                        errors.Add(e.ErrorMessage);

            if (errors.Count == 0)
            {
                try
                {
                    string userId = Request.GetOwinContext().Authentication.User.Identity.GetUserId();

                    var currentUser = UserManager.FindById(userId);
                    currentUser.todoItems.Add(new todoItem()
                    {
                        completed = false,
                        task = item.task
                    });

                    UserManager.Update(currentUser);
                    return Request.CreateResponse(HttpStatusCode.Accepted);
                }
                catch
                {
                    return Request.CreateResponse(HttpStatusCode.InternalServerError);
                }
            }
            else
            {
                return Request.CreateResponse<List<string>>(HttpStatusCode.BadRequest, errors);
            }

            var user = db.Users.Where(u => u.firstName == "Test").FirstOrDefault();
        }
        public async Task NavigateToDetailsView(TodoItemViewModel todo, INavigation navigation)
        {
            await todo.LoadImagesAsync(); // reload images as they download asynchronously
            var detailsView = new TodoItemDetailsView();
            detailsView.BindingContext = todo;

            await navigation.PushAsync(detailsView);
        }