Esempio n. 1
0
 public ActionResult TaskForm(BaseViewModel baseViewModel)
 {
     if (_sessionManager.IsActive(baseViewModel.SessionId))
     {
         var viewModel = new TaskFormViewModel();
         viewModel.User            = _sessionManager.GetSession(baseViewModel.SessionId).User;
         viewModel.ToDoTask        = new ToDoTask();
         viewModel.ToDoTask.TaskId = baseViewModel.TaskId;
         viewModel.SessionId       = baseViewModel.SessionId;
         if (viewModel.ToDoTask.TaskId == 0)
         {
             viewModel.ToDoTask = new ToDoTask();
             viewModel.ToDoTask.ParentListId = baseViewModel.ListId;
         }
         else
         {
             viewModel.ToDoTask = _taskManager.GetTask(baseViewModel.TaskId);
         }
         return(View(viewModel));
     }
     else
     {
         var viewModel = new ToDoUser();
         return(RedirectToAction("SignInForm", "Auth", viewModel));
     }
 }
Esempio n. 2
0
        public async Task <IActionResult> EditTaskAsync(int taskId, string errorMessage)
        {
            var task = await _manageTasksService.GetTaskByIdAsync(taskId);

            var team = await _manageSprintsService.GetTeam(task.TeamId);

            var teamMembers = await GetAllTeamMembersAsync(task.TeamId);

            var taskMemberName = teamMembers.FirstOrDefault(t => t.Id == task.MemberId).Member.Email;

            TaskFormViewModel model = new TaskFormViewModel
            {
                TeamId          = task.TeamId,
                TaskId          = task.Id,
                TaskSprintId    = task.SprintId.GetValueOrDefault(),
                TeamName        = team.TeamName,
                TaskName        = task.Name,
                TaskLink        = task.Link,
                TaskStoryPoints = task.StoryPoints,
                TaskMemberId    = task.MemberId,
                ErrorMessage    = errorMessage,
                TaskMemberName  = taskMemberName,
                TeamMembers     = new List <TeamMemberViewModel>()
            };

            teamMembers.ForEach(t => model.TeamMembers.Add(new TeamMemberViewModel()
            {
                Member = t.Member,
                Id     = t.Id
            }));

            return(View(model));
        }
Esempio n. 3
0
        public async Task <IActionResult> AddTaskIntoTeamAsync(int teamId, string errorMessage)
        {
            var team = await _manageSprintsService.GetTeam(teamId);

            var teamMembers = await GetAllTeamMembersAsync(teamId);

            var sprints = new List <Sprint>(await _manageSprintsService.GetAllSprintsAsync(teamId, new DisplayOptions()));

            TaskFormViewModel model = new TaskFormViewModel
            {
                TeamId       = teamId,
                Sprints      = new List <SprintViewModel>(),
                TeamName     = team.TeamName,
                ErrorMessage = errorMessage,
                TeamMembers  = new List <TeamMemberViewModel>()
            };

            sprints.ForEach(t => model.Sprints.Add(new SprintViewModel()
            {
                Id   = t.Id,
                Name = t.Name
            }));
            teamMembers.ForEach(t => model.TeamMembers.Add(new TeamMemberViewModel()
            {
                Id     = t.Id,
                Member = t.Member
            }));
            return(View(model));
        }
        public ActionResult TaskForm(bool IsExisting, int Id = 0)
        {
            var config = new MapperConfiguration(cfg => {
                cfg.CreateMap <TaskFull, TaskFullViewModel>().ForMember(dest => dest.Category, opt => opt.MapFrom(src => src.Category.Id)).ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.Status.Id)).ForMember(dest => dest.Rank, opt => opt.MapFrom(src => src.Rank.Id));
            });
            IMapper mapper    = config.CreateMapper();
            var     Viewmodel = new TaskFormViewModel()
            {
                RankList     = _staticDataRepository.GetRanksDropdown(),
                CategoryList = _staticDataRepository.GetCategoriesDropdown(_usersRepository.GetCurrentUserId()),
                StatusList   = _staticDataRepository.GetStatusesDropdown(),
                Task         = new TaskFullViewModel()
                {
                    Id = 0, Progres = 0
                }
            };

            if (IsExisting)
            {
                Viewmodel.Task       = mapper.Map <TaskFull, TaskFullViewModel>(_tasksRepository.Get(Id, _usersRepository.GetCurrentUserId()));
                ViewBag.Title        = "Edit task";
                Viewmodel.IsExisting = true;
            }
            else
            {
                ViewBag.Title        = "Add new task";
                Viewmodel.IsExisting = false;
            }
            return(View(Viewmodel));
        }
Esempio n. 5
0
        public ActionResult Create([TaskBinder(Fetch = false)] Task task)
        {
            if (ViewData.ModelState.IsValid && task.IsValid())
            {
                task.Game     = User.Game;
                task.GroupTag = 0;

                Tip tip = new Tip();
                tip.Name        = "Здесь должен быть текст задания...";
                tip.SuspendTime = 0;
                tip.Task        = task;
                task.Tips.Add(tip);

                taskRepository.SaveOrUpdate(task);
                tipsRepository.SaveOrUpdate(tip);

                Message = "Задание успешно создано.";

                return(this.RedirectToAction(c => c.Edit(task.Id)));
            }

            TaskFormViewModel viewModel = TaskFormViewModel.CreateTaskFormViewModel();

            viewModel.Task = task;
            return(View(viewModel));
        }
Esempio n. 6
0
        public ActionResult Edit(int id)
        {
            TaskFormViewModel viewModel = TaskFormViewModel.CreateTaskFormViewModel();

            viewModel.Task = taskRepository.Get(id);
            this.SetBreadcrumbText(viewModel.Task.Name);
            return(View(viewModel));
        }
Esempio n. 7
0
        public async Task <IActionResult> AddTaskAsync(TaskFormViewModel taskFormViewModel)
        {
            if (ModelState.IsValid)
            {
                if (taskFormViewModel.LinkValidation == null && !Regex.IsMatch(taskFormViewModel.TaskLink,
                                                                               @"^(?:http(s):\/\/)(github\.com\/)|(bitbucket\.org\/)[\w\d\S]+(\/[\w\d\S]+)*$"))
                {
                    return(RedirectToAction("AddTask", new { teamId = taskFormViewModel.TeamId,
                                                             sprintId = taskFormViewModel.TaskSprintId, errorMessage = _localizer["LinkFieldError"] }));
                }
                else if (taskFormViewModel.LinkValidation != null && !Regex.IsMatch(taskFormViewModel.TaskLink,
                                                                                    @"^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$"))
                {
                    return(RedirectToAction("AddTask", new { teamId = taskFormViewModel.TeamId,
                                                             sprintId = taskFormViewModel.TaskSprintId, errorMessage = _localizer["LinkFieldError"] }));
                }

                var task = Business.Models.Task.Create(taskFormViewModel.TaskId,
                                                       taskFormViewModel.TeamId,
                                                       null,
                                                       taskFormViewModel.TaskName,
                                                       taskFormViewModel.TaskStoryPoints,
                                                       taskFormViewModel.TaskLink,
                                                       taskFormViewModel.TaskSprintId,
                                                       taskFormViewModel.TaskMemberId);

                var isOwner = await _accessCheckService.IsOwnerAsync(task.TeamId);

                if (!isOwner)
                {
                    return(RedirectToAction("NotOwnerError", new { teamId = taskFormViewModel.TeamId }));
                }

                var result = await _manageTasksService.AddTaskAsync(task);

                if (result)
                {
                    return(RedirectToAction("GetSprintById", "ManageSprints", new { sprintId = taskFormViewModel.TaskSprintId }));
                }
                else
                {
                    return(RedirectToAction("AddTaskError", new { teamId = taskFormViewModel.TeamId }));
                }
            }

            var teamMembers = await GetAllTeamMembersAsync(taskFormViewModel.TeamId);

            taskFormViewModel.TeamMembers = new List <TeamMemberViewModel>();

            foreach (var teamMember in teamMembers)
            {
                var teamMemberViewModel = TeamMemberViewModel.Create(teamMember);
                taskFormViewModel.TeamMembers.Add(teamMemberViewModel);
            }

            return(View(taskFormViewModel));
        }
Esempio n. 8
0
        public async Task <IActionResult> EditTaskAsync(TaskFormViewModel taskViewModel)
        {
            if (ModelState.IsValid)
            {
                if (taskViewModel.LinkValidation == null && !Regex.IsMatch(taskViewModel.TaskLink, @"^(?:http(s):\/\/)(github\.com\/)|(bitbucket\.org\/)[\w\d\S]+(\/[\w\d\S]+)*$"))
                {
                    return(RedirectToAction("EditTask", new { teamId = taskViewModel.TeamId, taskId = taskViewModel.TaskId, errorMessage = _localizer["LinkFieldError"] }));
                }
                else if (taskViewModel.LinkValidation != null && !Regex.IsMatch(taskViewModel.TaskLink, @"^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$"))
                {
                    return(RedirectToAction("EditTask", new { teamId = taskViewModel.TeamId, taskId = taskViewModel.TaskId, errorMessage = _localizer["LinkFieldError"] }));
                }
                var task = new Data.Models.Task
                {
                    Id          = taskViewModel.TaskId,
                    TeamId      = taskViewModel.TeamId,
                    Name        = taskViewModel.TaskName,
                    StoryPoints = taskViewModel.TaskStoryPoints,
                    Link        = taskViewModel.TaskLink,
                    SprintId    = taskViewModel.TaskSprintId,
                    MemberId    = taskViewModel.TaskMemberId
                };

                var currentTask = await _manageTasksService.GetTaskByIdAsync(taskViewModel.TaskId);

                if (currentTask.Name == taskViewModel.TaskName &&
                    currentTask.Link == taskViewModel.TaskLink &&
                    currentTask.StoryPoints == taskViewModel.TaskStoryPoints &&
                    currentTask.MemberId == taskViewModel.TaskMemberId
                    )
                {
                    return(RedirectToAction("EditTask", new { teamId = taskViewModel.TeamId, taskId = taskViewModel.TaskId, errorMessage = _localizer["HasntAnyChange"] }));
                }

                var result = await EditTaskAsync(task);

                if (result)
                {
                    return(RedirectToAction("AllTasksForTeam", new { teamId = taskViewModel.TeamId }));
                }
                else
                {
                    return(RedirectToAction("NotOwnerError", new { teamId = taskViewModel.TaskId }));
                }
            }

            var teamMembers = await GetAllTeamMembersAsync(taskViewModel.TeamId);

            taskViewModel.TeamMembers = new List <TeamMemberViewModel>();
            teamMembers.ForEach(t => taskViewModel.TeamMembers.Add(new TeamMemberViewModel
            {
                Member = t.Member,
                Id     = t.Id
            }));

            return(View(taskViewModel));
        }
Esempio n. 9
0
        public async Task <IActionResult> AddTaskIntoTeamAsync(TaskFormViewModel taskFormViewModel)
        {
            if (ModelState.IsValid)
            {
                var task = new Data.Models.Task
                {
                    Id          = taskFormViewModel.TaskId,
                    TeamId      = taskFormViewModel.TeamId,
                    Name        = taskFormViewModel.TaskName,
                    StoryPoints = taskFormViewModel.TaskStoryPoints,
                    Link        = taskFormViewModel.TaskLink,
                    SprintId    = taskFormViewModel.TaskSprintId,
                    MemberId    = taskFormViewModel.TaskMemberId
                };

                var isOwner = await _accessCheckService.IsOwnerAsync(task.TeamId);

                if (!isOwner)
                {
                    return(RedirectToAction("NotOwnerError", new { teamId = taskFormViewModel.TeamId }));
                }

                var result = await _manageTasksService.AddTaskAsync(task);

                if (result)
                {
                    return(RedirectToAction("GetSprintById", "ManageSprints", new { sprintId = taskFormViewModel.TaskSprintId }));
                }
                else
                {
                    return(RedirectToAction("AddTaskError", new { teamId = taskFormViewModel.TeamId }));
                }
            }

            var teamMembers = await GetAllTeamMembersAsync(taskFormViewModel.TeamId);

            var teamSprints = await _manageSprintsService.GetAllSprintsAsync(taskFormViewModel.TeamId, new DisplayOptions());

            taskFormViewModel.TeamMembers = new List <TeamMemberViewModel>();
            taskFormViewModel.Sprints     = new List <SprintViewModel>().ToList();

            teamMembers.ForEach(t => taskFormViewModel.TeamMembers.Add(new TeamMemberViewModel()
            {
                Member = t.Member,
                Id     = t.Id
            }));

            teamSprints.ToList().ForEach(t => taskFormViewModel.Sprints.Add(new SprintViewModel()
            {
                Name = t.Name,
                Id   = t.Id
            }));

            return(View(taskFormViewModel));
        }
Esempio n. 10
0
        public ActionResult Create(TaskFormViewModel newTask)
        {
            if (newTask != null)
            {
                var task = Mapper.Map <TaskFormViewModel, TaskToDo>(newTask);
                _taskService.CreateTask(task);
                _taskService.SaveTask();
            }

            return(RedirectToAction("Index"));
        }
Esempio n. 11
0
        public async Task <IActionResult> AddTaskAsync(int teamId, int sprintId, string errorMessage)
        {
            var team = await _manageSprintsService.GetTeam(teamId);

            var teamMembers = await GetAllTeamMembersAsync(teamId);

            var task  = Business.Models.Task.Create(teamId, sprintId, team);
            var model = TaskFormViewModel.Create(task, errorMessage, teamMembers, new List <Sprint>());

            return(View(model));
        }
Esempio n. 12
0
        public async Task <IActionResult> EditTaskAsync(int taskId, string errorMessage)
        {
            var task = await _manageTasksService.GetTaskByIdAsync(taskId);

            var team = await _manageSprintsService.GetTeam(task.TeamId);

            var teamMembers = await GetAllTeamMembersAsync(task.TeamId);

            var teamMember        = teamMembers.FirstOrDefault(t => t.Id == task.MemberId);
            var taskFormViewModel = TaskFormViewModel.Create(task, errorMessage, teamMembers, new List <Sprint>());

            return(View(taskFormViewModel));
        }
Esempio n. 13
0
        public async Task <IActionResult> EditTaskAsync(TaskFormViewModel taskViewModel)
        {
            if (ModelState.IsValid)
            {
                var task = new Data.Models.Task
                {
                    Id          = taskViewModel.TaskId,
                    TeamId      = taskViewModel.TeamId,
                    Name        = taskViewModel.TaskName,
                    StoryPoints = taskViewModel.TaskStoryPoints,
                    Link        = taskViewModel.TaskLink,
                    SprintId    = taskViewModel.TaskSprintId,
                    MemberId    = taskViewModel.TaskMemberId
                };

                var currentTask = await _manageTasksService.GetTaskByIdAsync(taskViewModel.TaskId);

                if (currentTask.Name == taskViewModel.TaskName &&
                    currentTask.Link == taskViewModel.TaskLink &&
                    currentTask.StoryPoints == taskViewModel.TaskStoryPoints &&
                    currentTask.MemberId == taskViewModel.TaskMemberId
                    )
                {
                    return(RedirectToAction("EditTask", new { teamId = taskViewModel.TeamId, taskId = taskViewModel.TaskId, errorMessage = _localizer["HasntAnyChange"] }));
                }

                var result = await EditTaskAsync(task);

                if (result)
                {
                    return(RedirectToAction("AllTasksForTeam", new { teamId = taskViewModel.TeamId }));
                }
                else
                {
                    return(RedirectToAction("NotOwnerError", new { teamId = taskViewModel.TaskId }));
                }
            }

            var teamMembers = await GetAllTeamMembersAsync(taskViewModel.TeamId);

            taskViewModel.TeamMembers = new List <TeamMemberViewModel>();
            teamMembers.ForEach(t => taskViewModel.TeamMembers.Add(new TeamMemberViewModel
            {
                Member = t.Member,
                Id     = t.Id
            }));

            return(View(taskViewModel));
        }
 public ActionResult TaskForm(TaskFormViewModel taskFormViewModel)
 {
     TryValidateModel(taskFormViewModel.Task);
     if (ModelState.IsValid || taskFormViewModel.Task.Category == null)
     {
         _tasksRepository.Save(taskFormViewModel.IsExisting, taskFormViewModel.Task, _usersRepository.GetCurrentUserId());
         return(RedirectToAction("Index"));
     }
     else
     {
         taskFormViewModel.RankList     = _staticDataRepository.GetRanksDropdown();
         taskFormViewModel.CategoryList = _staticDataRepository.GetCategoriesDropdown(_usersRepository.GetCurrentUserId());
         taskFormViewModel.StatusList   = _staticDataRepository.GetStatusesDropdown();
         return(View(taskFormViewModel));
     }
 }
        public IActionResult Save(TaskFormViewModel tk)  //
        {
            if (!ModelState.IsValid)
            {     // if not valid send data back and display again
                var vm = new TaskFormViewModel
                { // need to re-build and send back vm, do not send back tk!
                    task       = tk.task,
                    priorities = _context.Priorities.ToList(),
                    project    = _context.Projects.Single(p => p.Id == tk.task.ProjectId)
                };
                return(View("ProjectTaskForm2", vm));
            }
            // if (pri == 0) {return View("ProjectTaskForm", tk); } // This code never reached probably
            //    because it his above !ModelState.IsValid
            if (tk.task.Id == 0)  // ADD NEW TASK (ProjectTasks table)
            {
                var task = new ProjectTask()
                {
                    Name        = tk.task.Name,
                    Description = tk.task.Description,
                    Methodology = tk.task.Methodology,
                    PriorityId  = tk.task.PriorityId,
                    ProjectId   = tk.task.ProjectId // is in the form, but hidden
                                                    //Id = projtask.Id    since this is NEW, the Db Identity will take care of this
                };
                _context.ProjectTasks.Add(task);
            }
            else  // EDIT TASK
            {
                var taskInDb = _context.ProjectTasks.Single(t => t.Id == tk.task.Id);
                // Mosh video 44 - can manually set or use a DTO for higher level of security,
                // but since we’ve manually set these, DTO probably doesn't increase security.
                taskInDb.Name        = tk.task.Name;
                taskInDb.Description = tk.task.Description;
                taskInDb.Methodology = tk.task.Methodology;
                taskInDb.PriorityId  = tk.task.PriorityId;
                //taskInDb.ProjectId = tk.task.ProjectId    we don't need this we already have it in Db
                //taskInDb.Id = tk.task.Id; we don't need to re-set this; cannot edit this
            }
            _context.SaveChanges();

            TempData["message"]   = $"{tk.task.Name} has been saved"; //page 312 in book called Pro ASP.NET Core MVC 2
            TempData["projectId"] = tk.task.ProjectId;                // is in the form, but hidden
            string msgToast = $"{tk.task.Name} has been saved";

            return(RedirectToAction("Index", "ProjectTask", new { msgToastr = msgToast }));
        }
Esempio n. 16
0
        public ActionResult TaskDetails(BaseViewModel baseViewModel)
        {
            if (_sessionManager.IsActive(baseViewModel.SessionId))
            {
                var viewModel = new TaskFormViewModel();

                viewModel.SessionId = baseViewModel.SessionId;
                viewModel.TaskId    = baseViewModel.TaskId;
                viewModel.User      = _sessionManager.GetSession(baseViewModel.SessionId).User;
                viewModel.ToDoTask  = _taskManager.GetTask(baseViewModel.TaskId);

                return(View(viewModel));
            }
            else
            {
                return(RedirectToAction("SignInForm", "Auth"));
            }
        }
Esempio n. 17
0
        public ActionResult Edit([TaskBinder(Fetch = true)] Task task)
        {
            Task taskToUpdate = taskRepository.Get(task.Id);

            TransferFormValuesTo(taskToUpdate, task);

            if (ViewData.ModelState.IsValid && task.IsValid())
            {
                Message = "Задание успешно изменено.";
                return(this.RedirectToAction <GamesController>(c => c.Edit(taskToUpdate.Game.Id)));
            }
            else
            {
                taskRepository.DbContext.RollbackTransaction();

                TaskFormViewModel viewModel = TaskFormViewModel.CreateTaskFormViewModel();
                viewModel.Task = task;
                return(View(viewModel));
            }
        }
        public void TaskForm_SaveUserModelIsInvalid_ReturnsTaskFormView()
        {
            // Arrange
            TasksController controller = new TasksController(_tasksRepository.Object, _statidataRepository.Object, _usersRepository.Object);
            var             context    = new Mock <HttpContextBase>();

            controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
            TaskFullViewModel EmptyTask    = new TaskFullViewModel();
            TaskFormViewModel InvalidModel = new TaskFormViewModel()
            {
                Task = EmptyTask, IsExisting = false
            };

            // Act
            ViewResult result = controller.TaskForm(InvalidModel) as ViewResult;
            var        model  = (TaskFormViewModel)result.ViewData.Model;

            // Assert
            Assert.AreEqual(EmptyTask, model.Task);
        }
Esempio n. 19
0
        public ActionResult SaveTask(TaskFormViewModel model)
        {
            if (_sessionManager.IsActive(model.SessionId))
            {
                var tempTask = new ToDoTask();
                tempTask.TaskId       = model.ToDoTask.TaskId;
                tempTask.TaskName     = model.ToDoTask.TaskName;
                tempTask.TaskDesc     = model.ToDoTask.TaskDesc;
                tempTask.ParentListId = model.ToDoTask.ParentListId;

                _taskManager.AddTaskToDatabase(tempTask);

                model.ListId = model.ToDoTask.ParentListId;
                return(RedirectToAction("Tasks", "List", model));
            }
            else
            {
                var viewModel = new ToDoUser();
                return(RedirectToAction("SignInForm", "Auth", viewModel));
            }
        }
        public ActionResult Create(int pId)
        {
            // The user has clicked the Create New Task button.
            // We need to display the form.
            // However, we need to know the project.
            // Create a new task for the project with id of pId.
            var projectInDb = _context.Projects.Find(pId);
            var task        = new ProjectTask
            {
                ProjectId = pId
            };
            var vm = new TaskFormViewModel()
            {
                project    = projectInDb,
                task       = task,
                priorities = _context.Priorities.ToList()
            };

            //return View("ProjectTaskForm", t);
            return(View("ProjectTaskForm2", vm));
        }
Esempio n. 21
0
        public async Task <IActionResult> AddTaskAsync(int teamId, int sprintId, string errorMessage)
        {
            var team = await _manageSprintsService.GetTeam(teamId);

            var teamMembers = await GetAllTeamMembersAsync(teamId);

            TaskFormViewModel model = new TaskFormViewModel
            {
                TeamId       = teamId,
                TaskSprintId = sprintId,
                TeamName     = team.TeamName,
                ErrorMessage = errorMessage,
                TeamMembers  = new List <TeamMemberViewModel>()
            };

            teamMembers.ForEach(t => model.TeamMembers.Add(new TeamMemberViewModel()
            {
                Member = t.Member,
                Id     = t.Id
            }));
            return(View(model));
        }
        public void TaskForm_SaveUserModelIsValid_ReturnsTasksIndexView()
        {
            // Arrange
            TasksController controller = new TasksController(_tasksRepository.Object, _statidataRepository.Object, _usersRepository.Object);
            var             context    = new Mock <HttpContextBase>();

            controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
            var uniquestring             = DateTime.Now.ToBinary().ToString().Substring(3, 10);
            TaskFullViewModel ProperTask = new TaskFullViewModel()
            {
                Name = uniquestring, Description = uniquestring, CardColor = "#000", FontColor = "#000", Progres = 0, Category = 1, Status = 1, Rank = 1
            };
            TaskFormViewModel ValidModel = new TaskFormViewModel()
            {
                Task = ProperTask, IsExisting = false
            };

            // Act
            var model = (RedirectToRouteResult)controller.TaskForm(ValidModel);

            // Assert
            Assert.AreEqual("Index", model.RouteValues["action"]);
        }
Esempio n. 23
0
        public async Task <IActionResult> AddTaskAsync(TaskFormViewModel taskFormViewModel)
        {
            if (ModelState.IsValid)
            {
                var task = new Data.Models.Task
                {
                    Id          = taskFormViewModel.TaskId,
                    TeamId      = taskFormViewModel.TeamId,
                    Name        = taskFormViewModel.TaskName,
                    StoryPoints = taskFormViewModel.TaskStoryPoints,
                    Link        = taskFormViewModel.TaskLink,
                    SprintId    = taskFormViewModel.TaskSprintId,
                    MemberId    = taskFormViewModel.TaskMemberId
                };
                var result = await AddTaskAsync(task);

                if (result)
                {
                    return(RedirectToAction("GetSprintById", "ManageSprints", new { sprintId = taskFormViewModel.TaskSprintId }));
                }
                else
                {
                    return(RedirectToAction("NotOwnerError", new { teamId = taskFormViewModel.TeamId }));
                }
            }

            var teamMembers = await GetAllTeamMembersAsync(taskFormViewModel.TeamId);

            taskFormViewModel.TeamMembers = new List <TeamMemberViewModel>();
            teamMembers.ForEach(t => taskFormViewModel.TeamMembers.Add(new TeamMemberViewModel()
            {
                Member = t.Member,
                Id     = t.Id
            }));

            return(View(taskFormViewModel));
        }
        public IActionResult Edit(int Id)
        {
            // The Id passed in is the Id number of the TASK in the ProjectTasks table.
            // the user has clicked on a specific Task with this Id
            // get the task (single row) in the database table ProjectTasks for this project
            //var taskInDb = _context.ProjectTasks.Include(t => t.Priority).SingleOrDefault(t => t.Id == Id);
            var taskInDb = _context.ProjectTasks.SingleOrDefault(t => t.Id == Id);
            // notice above we are including priorities.
            // var taskInDbFind = _context.ProjectTasks.Include(t => t.Priority).Find(Id);
            // I don't think we can use Find() as Find gives error.
            var projectInDb = _context.Projects.Find(taskInDb.ProjectId);

            if (taskInDb != null)
            {
                var task = new ProjectTask
                {
                    Id          = taskInDb.Id,
                    Name        = taskInDb.Name,
                    Description = taskInDb.Description,
                    Methodology = taskInDb.Methodology,
                    PriorityId  = taskInDb.PriorityId,
                    ProjectId   = taskInDb.ProjectId
                };
                var vm = new TaskFormViewModel()
                {
                    project    = projectInDb,
                    task       = task,
                    priorities = _context.Priorities.ToList()
                };
                return(View("ProjectTaskForm2", vm));
            }
            else
            {
                return(View("Error")); // this is really an error!
            }
        }
            /// <summary>
            /// Creation method for creating the view model. Services may be passed to the creation 
            /// method to instantiate items such as lists for drop down boxes.
            /// </summary>
            public static TaskFormViewModel CreateTaskFormViewModel()
            {
                TaskFormViewModel viewModel = new TaskFormViewModel();

                return viewModel;
            }
Esempio n. 26
0
        public async Task <IActionResult> AddTaskIntoTeamAsync(TaskFormViewModel taskFormViewModel)
        {
            if (ModelState.IsValid)
            {
                if (taskFormViewModel.LinkValidation == null && !Regex.IsMatch(taskFormViewModel.TaskLink, @"^(?:http(s):\/\/)(github\.com\/)|(bitbucket\.org\/)[\w\d\S]+(\/[\w\d\S]+)*$"))
                {
                    return(RedirectToAction("AddTaskIntoTeam", new { teamId = taskFormViewModel.TeamId, errorMessage = _localizer["LinkFieldError"] }));
                }
                else if (taskFormViewModel.LinkValidation != null && !Regex.IsMatch(taskFormViewModel.TaskLink, @"^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$"))
                {
                    return(RedirectToAction("AddTaskIntoTeam", new { teamId = taskFormViewModel.TeamId, errorMessage = _localizer["LinkFieldError"] }));
                }
                var task = new Data.Models.Task
                {
                    Id          = taskFormViewModel.TaskId,
                    TeamId      = taskFormViewModel.TeamId,
                    Name        = taskFormViewModel.TaskName,
                    StoryPoints = taskFormViewModel.TaskStoryPoints,
                    Link        = taskFormViewModel.TaskLink,
                    SprintId    = taskFormViewModel.TaskSprintId,
                    MemberId    = taskFormViewModel.TaskMemberId
                };



                var isOwner = await _accessCheckService.IsOwnerAsync(task.TeamId);

                if (!isOwner)
                {
                    return(RedirectToAction("NotOwnerError", new { teamId = taskFormViewModel.TeamId }));
                }

                var result = await _manageTasksService.AddTaskAsync(task);

                if (result)
                {
                    return(RedirectToAction("GetSprintById", "ManageSprints", new { sprintId = taskFormViewModel.TaskSprintId }));
                }
                else
                {
                    return(RedirectToAction("AddTaskError", new { teamId = taskFormViewModel.TeamId }));
                }
            }

            var teamMembers = await GetAllTeamMembersAsync(taskFormViewModel.TeamId);

            var teamSprints = await _manageSprintsService.GetAllSprintsAsync(taskFormViewModel.TeamId, new DisplayOptions());

            taskFormViewModel.TeamMembers = new List <TeamMemberViewModel>();
            taskFormViewModel.Sprints     = new List <SprintViewModel>().ToList();

            teamMembers.ForEach(t => taskFormViewModel.TeamMembers.Add(new TeamMemberViewModel()
            {
                Member = t.Member,
                Id     = t.Id
            }));

            teamSprints.ToList().ForEach(t => taskFormViewModel.Sprints.Add(new SprintViewModel()
            {
                Name = t.Name,
                Id   = t.Id
            }));

            return(View(taskFormViewModel));
        }
Esempio n. 27
0
        public ActionResult Create()
        {
            TaskFormViewModel viewModel = TaskFormViewModel.CreateTaskFormViewModel();

            return(View(viewModel));
        }
Esempio n. 28
0
            /// <summary>
            /// Creation method for creating the view model. Services may be passed to the creation
            /// method to instantiate items such as lists for drop down boxes.
            /// </summary>
            public static TaskFormViewModel CreateTaskFormViewModel()
            {
                TaskFormViewModel viewModel = new TaskFormViewModel();

                return(viewModel);
            }