public ActionResult Create(int id) { var model = new TaskCreateDTO { GroupId = id }; return(View(model)); }
public async Task <bool> CreateTask(TaskCreateDTO dto) { var rao = _mapper.Map <TaskCreateRAO>(dto); if (await _repository.CreateTask(rao)) { return(true); } throw new NotImplementedException(); }
private TaskCreate getCreateViewModel(TaskCreateDTO dto) { TaskCreate viewModel = new TaskCreate(); viewModel.TaskID = dto.TaskID; viewModel.Name = dto.Name; viewModel.ParentProjectID = dto.ParentProjectID; viewModel.Description = dto.Description; viewModel.Deadline = dto.Deadline; viewModel.Users = dto.Users; viewModel.Files = dto.Files; return(viewModel); }
public ActionResult Create(TaskCreateDTO dto) { if (!ModelState.IsValid) { return(View(dto)); } var rao = new TaskCreateRAO { GroupId = dto.GroupId, TaskName = dto.TaskName, TaskDescription = dto.TaskDescription, RewardPoints = dto.RewardPoints }; var service = GetTaskService(); if (service.CreateTask(rao)) { return(RedirectToAction("Index", new { id = dto.GroupId })); } return(View(dto)); }
public ActionResult Create(TaskCreateDTO form) { form?.Users.RemoveAll(u => u.Id == null); if (ModelState.IsValid) { ProjectTask task; if (form.TaskID != 0) { task = this.db.ProjectTasks .Where(x => x.TaskID == form.TaskID) .Include(x => x.Users) .FirstOrDefault(); if (task.OwnerID != User.Identity.GetUserId()) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } // remove users that are no longer assigned to the task task.Users.RemoveAll(x => !form.Users.Contains(x, new PropertyComparer <ApplicationUser, string>(u => u.Id))); // remove duplicates form.Users.RemoveAll(x => task.Users.Contains(x, new PropertyComparer <ApplicationUser, string>(u => u.Id))); } else { // if not project manager nor owner => task addition refused if ((!this.db.HasProjectRole(form.ParentProjectID, User.Identity.GetUserId(), Role.Manager))) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } task = new ProjectTask(); task.Created = DateTime.UtcNow; } // task not found if (task == null) { return(HttpNotFound()); } if (task.Users == null) { task.Users = new List <ApplicationUser>(); } task.LastModified = DateTime.UtcNow; task.Deadline = UnixTime.ParseUnixTimestamp(form.Deadline); task.Description = form.Description; task.Name = form.Name; task.OwnerID = User.Identity.GetUserId(); task.ParentProjectID = form.ParentProjectID; task.Status = form.Users.Count() > 0 ? TaskStatus.Assigned : TaskStatus.Created; form.Users.ForEach(u => this.db.Users.Attach(u)); form.Users.ForEach(x => task.Users.Add(x)); List <Attachment> attachments = new List <Attachment>(); if (task.TaskID == 0) { db.ProjectTasks.Add(task); } db.SaveChanges(); // save all attachments foreach (var val in form.Files) { if (val != null) { db.Attachments.Add(new Attachment() { FileName = val.FileName, Size = val.ContentLength, Type = val.ContentType, TaskID = task.TaskID }); DirectoryInfo dir = Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"Attachments/" + task.TaskID); val.SaveAs(dir.FullName + @"/" + val.FileName); } } db.SaveChanges(); return(this.Redirect("/Projects/Details/" + form.ParentProjectID)); } else { TaskCreate viewModel = this.getCreateViewModel(form); this.prepareCreateViewModel(viewModel); return(View(viewModel)); } }