public async Task <IActionResult> Create(SprintDetailViewModel model)
        {
            ViewData["Projects"]       = _projectService.GetAll();
            ViewData["SprintStatuses"] = _sprintService.GetAllSprintStatus();
            bool isExist = _sprintService.IsExistSprintNumber(model.Number);

            if (isExist)
            {
                ModelState.AddModelError("model.Number", "Số sprint này đã tồn tại. Bạn vui lòng chọn số sprint khác!");
            }
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            await _sprintService.Add(new Sprint
            {
                Number         = model.Number,
                Description    = model.Description,
                StartDate      = model.StartDate,
                EndDate        = model.EndDate,
                SprintStatusId = model.SprintStatusId,
                ProjectId      = model.ProjectId
            });

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Edit(SprintDetailViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var sprintID = model.Id;
            var sprint   = await _sprintService.GetByIdAsync(int.Parse(sprintID));

            if (sprint == null)
            {
                ModelState.AddModelError("Error", "Unable to load the project");
                return(View(model));
            }

            sprint.Number         = model.Number;
            sprint.Description    = model.Description;
            sprint.StartDate      = model.StartDate;
            sprint.EndDate        = model.EndDate;
            sprint.SprintStatusId = model.SprintStatusId;
            sprint.ProjectId      = model.ProjectId;
            await _sprintService.Update(sprint);

            model.StatusMessage = $"{sprint.Number} sprint has been updated";

            return(RedirectToAction(nameof(Index)));
        }
        public SprintDetailPage()
        {
            InitializeComponent();

            var item = new ToDoApp.Models.Sprint
            {
                Name        = "Item 1",
                StoryPoints = 1
            };

            viewModel      = new SprintDetailViewModel(item);
            BindingContext = viewModel;
        }
        public async Task <IActionResult> Edit(string id)
        {
            ViewData["Projects"]       = _projectService.GetAll();
            ViewData["SprintStatuses"] = _sprintService.GetAllSprintStatus();
            var sprint = await _sprintService.GetByIdAsync(int.Parse(id));

            if (sprint == null)
            {
                throw new ApplicationException($"Unable to load project with ID '{id}'.");
            }

            var model = new SprintDetailViewModel
            {
                Id             = id,
                Number         = sprint.Number,
                Description    = sprint.Description,
                StartDate      = sprint.StartDate,
                EndDate        = sprint.EndDate,
                SprintStatusId = sprint.SprintStatusId,
                ProjectId      = sprint.ProjectId
            };

            return(View(model));
        }
        public SprintDetailPage(SprintDetailViewModel viewModel)
        {
            InitializeComponent();

            BindingContext = this.viewModel = viewModel;
        }