public void CreateBacklog(OrganizationUnit unit, BacklogDefinition backlogDefinition) { var root = _organizationUnitCollection.FindSync(_ => true).Single(); var updatedUnit = root.Find(unit.Id); updatedUnit.Backlogs = updatedUnit.Backlogs.Union(new[] { backlogDefinition }).ToArray(); _organizationUnitCollection.ReplaceOne(x => x.Id == root.Id, root); }
public void UpdateBacklog(BacklogDefinition backlog) { var root = _organizationUnitCollection.FindSync(_ => true).Single(); var updatedUnit = root.FindWithBacklog(backlog.Id); var updateDefinition = updatedUnit.Backlogs.Single(x => x.Id == backlog.Id); updateDefinition.Name = backlog.Name; _organizationUnitCollection.ReplaceOne(x => x.Id == root.Id, root); }
public ActionResult Patch(BacklogDefinition backlog) { if (backlog == null) { return(NotFound()); } _backlogRepository.UpdateBacklog(backlog); return(NoContent()); }
public ActionResult Post(CreateBacklogDTO param) { var unit = _organizationUnitRepository.Get(param.UnitId); if (unit == null) { return(NotFound(param.UnitId)); } var createdBacklogDefinition = new BacklogDefinition { Id = Guid.NewGuid(), Name = param.Name }; _backlogRepository.CreateBacklog(unit, createdBacklogDefinition); return(CreatedAtRoute("Organization", createdBacklogDefinition)); }
public async Task <(Backlog, Project)> CreateProjectInBacklog(string name, BacklogDefinition backlogDefinition, OrganizationUnit assignee) { var result = await _http.PostAsJsonAsync($"api/Projects", new CreateProjectDTO { Name = name, BacklogId = backlogDefinition.Id, AssigneeId = assignee.Id }); if (!result.IsSuccessStatusCode) { throw new ApplicationException("Не получилось добавить проект."); } var createdProject = await result.Content.ReadFromJsonAsync <OrganizationUnit>(); var backlog = await GetBacklog(backlogDefinition); var project = backlog.Projects.Single(x => x.Id == createdProject.Id); return(backlog, project); }
public async Task <Backlog> GetBacklog(BacklogDefinition backlogDefinition) { return(await _http.GetFromJsonAsync <Backlog>($"api/Backlogs?id={backlogDefinition.Id}")); }