private void updateDatabaseObjectInfo() { DatabaseObject.NumberBoxes = ProjectTiles.Count(); DatabaseObject.NumberCards = ProjectCards.Count(); DatabaseObject.NumberTokens = ProjectTokens.Count(); DatabaseObject.NumberBoards = ProjectBoards.Count(); }
public ActionResult Board(int?id) { var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); if (Request.IsAuthenticated) { ApplicationUser user = userManager.FindByNameAsync(User.Identity.Name).Result; if (!userManager.IsInRole(User.Identity.GetUserId(), "Project") && !userManager.IsInRole(User.Identity.GetUserId(), "System Admin")) { return(RedirectToAction("AccessBlock", "Account", new { area = "" })); } else { ProjectBoards ProjectBoard = db.ProjectBoards.Find(Convert.ToInt32(id)); if (ProjectBoard == null) { ViewData["H1"] = "New Board"; } else { ViewData["H2"] = ProjectBoard.Client; ViewData["H1"] = ProjectBoard.Name; } return(View()); } } else { return(RedirectToAction("Login", "Account", new { area = "" })); } }
public IHttpActionResult PutProjectBoard(int id, ProjectBoards projectBoard) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != projectBoard.BoardId) { return(BadRequest()); } projectBoard.User = HttpContext.Current.User.Identity.Name.ToString(); projectBoard.UpdateDate = DateTime.Now; db.Entry(projectBoard).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!ProjectBoardExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public HttpResponseMessage Get(int?id) { var response = Request.CreateResponse(); ProjectBoards ProjectBoard = db.ProjectBoards.Find(Convert.ToInt32(id)); JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); string jsonString = ProjectBoard.Configuration; if (ProjectBoard.ProjectColumns.Count == 0) { var columns = new List <ProjectColumns>(); //var stories = new List<ProjectStories>(); columns.Add(new ProjectColumns { Description = "Backlog Column", Name = "Backlog", ProjectBoard = ProjectBoard, UpdateDate = DateTime.Now, }); columns.Add(new ProjectColumns { Description = "In Progress Column", Name = "In Progress", ProjectBoard = ProjectBoard, UpdateDate = DateTime.Now }); columns.Add(new ProjectColumns { Description = "Pending Column", Name = "Pending", ProjectBoard = ProjectBoard, UpdateDate = DateTime.Now }); columns.Add(new ProjectColumns { Description = "Release Column", Name = "Release", ProjectBoard = ProjectBoard, UpdateDate = DateTime.Now }); ProjectBoard.ProjectColumns = columns; db.SaveChanges(); } var ColumnsReturns = ProjectBoard.ProjectColumns .Select(o => new ProjectColumns { Name = o.Name, ColumnId = o.ColumnId, UpdateDate = o.UpdateDate, Description = o.Description, ProjectStories = o.ProjectStories }).ToList(); foreach (var col in ColumnsReturns) { foreach (var Story in col.ProjectStories) { Story.ProjectColumns = null; foreach (var Comment in Story.ProjectComments) { Comment.ProjectStories = null; } foreach (var Task in Story.ProjectTasks) { Task.ProjectStories = null; } foreach (var Update in Story.ProjectUpdates) { Update.ProjectStories = null; } } } response.Content = new StringContent(JsonConvert.SerializeObject(ColumnsReturns, Formatting.Indented)); return(response); }
public void DeleteBoard(dynamic json) { var db = new CalculationDBContext(); ProjectBoards ProjectBoard = db.ProjectBoards.Find(Convert.ToInt32(json.boardId)); db.ProjectBoards.Remove(ProjectBoard); db.SaveChanges(); }
public HttpResponseMessage Update(JObject moveTaskParams) { dynamic json = moveTaskParams; string data = Convert.ToString(json.data); var response = Request.CreateResponse(); if (json.boardId == null) { response.StatusCode = HttpStatusCode.BadRequest; } ProjectBoards ProjectBoard = repo.GetBoard(json); ProjectBoard = repo.UpdateBoard(json); List <ProjectColumnViewModel> ProjectColumns = new List <ProjectColumnViewModel>(); foreach (var Column in ProjectBoard.ProjectColumns) { ProjectColumns.Add(new ProjectColumnViewModel { ColumnId = Column.ColumnId, Description = Column.Description, Name = Column.Name, UpdateDate = DateTime.Now, ProjectStories = Column.ProjectStories }); } foreach (var Column in ProjectColumns) { foreach (var Story in Column.ProjectStories) { Story.ProjectColumns = null; if (Story.ProjectComments != null) { foreach (var Comment in Story.ProjectComments) { Comment.ProjectStories = null; } } if (Story.ProjectTasks != null) { foreach (var Task in Story.ProjectTasks) { Task.ProjectStories = null; } } if (Story.ProjectUpdates != null) { foreach (var Update in Story.ProjectUpdates) { Update.ProjectStories = null; } } } } response.StatusCode = HttpStatusCode.OK; response.Content = new StringContent(JsonConvert.SerializeObject(ProjectColumns)); return(response); }
public IHttpActionResult GetProjectBoard(int id) { ProjectBoards projectBoard = db.ProjectBoards.Find(id); if (projectBoard == null) { return(NotFound()); } return(Ok(projectBoard)); }
private bool postParse() { foreach (var element in projectElements) { if (!(element is IHasElements elementedElement)) { continue; } var elementQueue = elementedElement.PendingElements; while (elementQueue.Count > 0) { int nextElement = elementQueue.Dequeue(); switch (elementedElement.NestedElementType) { case ElementType.Token: if (ProjectTokens.All(b => b.ID != nextElement)) { return(false); } elementedElement.Elements.Add(ProjectTokens.First(b => b.ID == nextElement)); break; case ElementType.Card: if (ProjectCards.All(b => b.ID != nextElement)) { return(false); } elementedElement.Elements.Add(ProjectCards.First(b => b.ID == nextElement)); break; case ElementType.Tile: if (ProjectTiles.All(b => b.ID != nextElement)) { return(false); } elementedElement.Elements.Add(ProjectTiles.First(b => b.ID == nextElement)); break; case ElementType.Board: if (ProjectBoards.All(b => b.ID != nextElement)) { return(false); } elementedElement.Elements.Add(ProjectBoards.First(b => b.ID == nextElement)); break; } } } return(true); }
public ProjectBoards GetBoard(dynamic json) { if (json.boardId == null) { return(null); } else { int ID = Convert.ToInt32(json.boardId); var Test = db.ProjectBoards.Include(t => t.ProjectColumns).Where(t => t.BoardId == ID).FirstOrDefault(); ProjectBoards Board = db.ProjectBoards.Find(ID); return(Board); } }
public IHttpActionResult PostProjectBoard(ProjectBoards projectBoard) { if (projectBoard.BoardId > 0) { BoardRepository repo = new BoardRepository(); projectBoard = repo.CopyBoard(projectBoard, projectBoard.BoardId); } else { projectBoard.UpdateDate = DateTime.Now; projectBoard.User = HttpContext.Current.User.Identity.Name.ToString(); db.Configuration.ProxyCreationEnabled = false; } db.ProjectBoards.Add(projectBoard); db.SaveChanges(); projectBoard.ProjectColumns = null; return(CreatedAtRoute("DefaultApi", new { id = projectBoard.BoardId }, projectBoard)); }
public HttpResponseMessage Create(JObject moveTaskParams) { dynamic json = moveTaskParams; string data = Convert.ToString(json.data); var response = Request.CreateResponse(); if (json.boardId == null) { response.StatusCode = HttpStatusCode.BadRequest; } ProjectBoards ProjectBoard = repo.GetBoard(json); if (ProjectBoard == null) { repo.AddBoard(json); } response.StatusCode = HttpStatusCode.OK; return(response); }
public IHttpActionResult DeleteProjectBoard(int id) { var originalBoard = db.ProjectBoards .Where(p => p.BoardId == id) .Include(p => p.ProjectColumns) .SingleOrDefault(); ProjectBoards projectBoard = db.ProjectBoards.Find(id); foreach (var Column in originalBoard.ProjectColumns.ToList()) { foreach (var Story in Column.ProjectStories.ToList()) { foreach (var Comment in Story.ProjectComments.ToList()) { db.ProjectComments.Remove(Comment); } foreach (var Task in Story.ProjectTasks.ToList()) { db.ProjectTasks.Remove(Task); } foreach (var Update in Story.ProjectUpdates.ToList()) { db.ProjectUpdates.Remove(Update); } db.ProjectStories.Remove(Story); } db.ProjectColumns.Remove(Column); } db.ProjectBoards.Remove(originalBoard); if (projectBoard == null) { return(NotFound()); } db.ProjectBoards.Remove(projectBoard); db.SaveChanges(); return(Ok(projectBoard)); }
public ProjectBoards UpdateBoard(dynamic json) { db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; ProjectBoards ProjectBoard = db.ProjectBoards.Find(Convert.ToInt32(json.boardId)); ProjectBoard.Configuration = Convert.ToString(json.data); ProjectBoard.User = HttpContext.Current.User.Identity.Name.ToString(); ProjectBoard.UpdateDate = DateTime.Now; List <ProjectColumns> Columns = (List <ProjectColumns>)javaScriptSerializer.Deserialize(Convert.ToString(json.data), typeof(List <ProjectColumns>)); foreach (var col in Columns) { col.ProjectBoard = ProjectBoard; if (col.ProjectStories != null) { foreach (var story in col.ProjectStories) { story.ProjectColumns = col; } } } // Load original parent including the child item collection var originalBoard = db.ProjectBoards .Where(p => p.BoardId == ProjectBoard.BoardId) .Include(p => p.ProjectColumns) .SingleOrDefault(); if (originalBoard != null) { //update parent var parentEntry = db.Entry(originalBoard); parentEntry.CurrentValues.SetValues(ProjectBoard); foreach (var originalColumnItem in originalBoard.ProjectColumns.ToList()) { if (!ProjectBoard.ProjectColumns.Any(c => c.ColumnId == originalColumnItem.ColumnId)) { // Yes -> It's a deleted child item -> Delete db.ProjectColumns.Remove(originalColumnItem); } } /////COLUMNS foreach (var columnItem in Columns) { var originalColumnItem = db.ProjectColumns .Where(c => c.ColumnId == columnItem.ColumnId) .Include(p => p.ProjectStories) .SingleOrDefault(); // Is original child item with same ID in DB? if (originalColumnItem != null) { // Yes -> Update scalar properties of child item var columnEntry = db.Entry(originalColumnItem); var originalColumnValues = db.Entry(originalColumnItem).OriginalValues; // Set the Name property to a new value columnEntry.Property(u => u.ColumnId).CurrentValue = columnItem.ColumnId; columnEntry.Property(u => u.Description).CurrentValue = columnItem.Description; columnEntry.Property(u => u.Name).CurrentValue = columnItem.Name; columnEntry.Property(u => u.UpdateDate).CurrentValue = columnItem.UpdateDate; // Load original parent including the child item collection var originalColumn = db.ProjectColumns .Where(p => p.ColumnId == columnItem.ColumnId) .Include(p => p.ProjectStories) .SingleOrDefault(); ///STORIES foreach (var originalStoryItem in originalColumn.ProjectStories.ToList()) { if (!columnItem.ProjectStories.Any(c => c.StoryId == originalStoryItem.StoryId)) { // Yes -> It's a deleted child item -> Delete db.ProjectStories.Remove(originalStoryItem); } } foreach (var storyItem in columnItem.ProjectStories) { var originalStoryItem = originalColumnItem.ProjectStories .Where(c => c.StoryId == null) .SingleOrDefault(); if (storyItem.StoryId > 0) { originalStoryItem = originalColumnItem.ProjectStories .Where(c => c.StoryId == storyItem.StoryId) .SingleOrDefault(); } // Is original child item with same ID in DB? if (originalStoryItem != null) { // Yes -> Update scalar properties of child item var storyEntry = db.Entry(originalStoryItem); var originalStoryValues = db.Entry(originalStoryItem).OriginalValues; // Set the Name property to a new value storyEntry.Property(u => u.Name).CurrentValue = storyItem.Name; storyEntry.Property(u => u.StoryId).CurrentValue = storyItem.StoryId; storyEntry.Property(u => u.Requested).CurrentValue = storyItem.Requested; storyEntry.Property(u => u.Moscow).CurrentValue = storyItem.Moscow; storyEntry.Property(u => u.Timebox).CurrentValue = storyItem.Timebox; storyEntry.Property(u => u.AcceptanceCriteria).CurrentValue = storyItem.AcceptanceCriteria; storyEntry.Property(u => u.StartDate).CurrentValue = storyItem.StartDate; storyEntry.Property(u => u.RAG).CurrentValue = storyItem.RAG; storyEntry.Property(u => u.RequestedDate).CurrentValue = storyItem.RequestedDate; storyEntry.Property(u => u.SLADays).CurrentValue = storyItem.SLADays; storyEntry.Property(u => u.Complexity).CurrentValue = storyItem.Complexity; storyEntry.Property(u => u.ElapsedTime).CurrentValue = storyItem.ElapsedTime; storyEntry.Property(u => u.DueDate).CurrentValue = storyItem.DueDate; storyEntry.Property(u => u.User).CurrentValue = storyItem.User; storyEntry.Property(u => u.Description).CurrentValue = storyItem.Description; storyEntry.Property(u => u.Name).CurrentValue = storyItem.Name; storyEntry.Property(u => u.UpdateDate).CurrentValue = storyItem.UpdateDate; storyEntry.Property(u => u.Effort).CurrentValue = storyItem.Effort; storyEntry.State = EntityState.Modified; // Load original parent including the child item collection var originalStory = db.ProjectStories .Where(p => p.StoryId == storyItem.StoryId) .Include(p => p.ProjectComments) .Include(t => t.ProjectTasks) .Include(t => t.ProjectUpdates) .SingleOrDefault(); //COMMENTS foreach (var originalCommentItem in originalStory.ProjectComments.ToList()) { if (!storyItem.ProjectComments.Any(c => c.CommentId == originalCommentItem.CommentId)) { // Yes -> It's a deleted child item -> Delete db.ProjectComments.Remove(originalCommentItem); } } foreach (var commentItem in storyItem.ProjectComments) { var originalCommentItem = originalStoryItem.ProjectComments .Where(c => c.CommentId == commentItem.CommentId) .SingleOrDefault(); // Is original child item with same ID in DB? if (originalCommentItem != null) { //// Yes -> Update scalar properties of child item //var commentEntry = db.Entry(originalCommentItem); //var originalCommentValues = db.Entry(originalCommentItem).OriginalValues; //// Set the Name property to a new value //commentEntry.Property(u => u.CommentId).CurrentValue = commentItem.CommentId; //commentEntry.Property(u => u.CommentName).CurrentValue = commentItem.CommentName; //commentEntry.Property(u => u.CommentType).CurrentValue = commentItem.CommentType; //commentEntry.Property(u => u.CommentDateTime).CurrentValue = commentItem.CommentDateTime; //commentEntry.Property(u => u.UpdateDate).CurrentValue = commentItem.UpdateDate; //commentEntry.Property(u => u.CommentUser).CurrentValue = commentItem.CommentUser; //commentEntry.State = EntityState.Modified; } else { commentItem.ProjectStories = originalStory; commentItem.UpdateDate = DateTime.Now; originalStoryItem.ProjectComments.Add(commentItem); } } //Tasks foreach (var originalTaskItem in originalStory.ProjectTasks.ToList()) { if (!storyItem.ProjectTasks.Any(c => c.TaskId == originalTaskItem.TaskId)) { // Yes -> It's a deleted child item -> Delete db.ProjectTasks.Remove(originalTaskItem); } } foreach (var taskItem in storyItem.ProjectTasks) { var originalTaskItem = originalStoryItem.ProjectTasks .Where(c => c.TaskId == taskItem.TaskId) .SingleOrDefault(); // Is original child item with same ID in DB? if (originalTaskItem != null) { // Yes -> Update scalar properties of child item var taskEntry = db.Entry(originalTaskItem); var originalTaskValues = db.Entry(originalTaskItem).OriginalValues; // Set the Name property to a new value taskEntry.Property(u => u.TaskName).CurrentValue = taskItem.TaskName; taskEntry.Property(u => u.TaskUser).CurrentValue = taskItem.TaskUser; taskEntry.Property(u => u.UpdateDate).CurrentValue = taskItem.UpdateDate; taskEntry.Property(u => u.Status).CurrentValue = taskItem.Status; taskEntry.Property(u => u.RemainingTime).CurrentValue = taskItem.RemainingTime; taskEntry.Property(u => u.TaskId).CurrentValue = taskItem.TaskId; taskEntry.State = EntityState.Modified; } else { taskItem.ProjectStories = originalStory; taskItem.UpdateDate = DateTime.Now; originalStoryItem.ProjectTasks.Add(taskItem); } } //Tasks foreach (var originalUpdateItem in originalStory.ProjectUpdates.ToList()) { if (!storyItem.ProjectUpdates.Any(c => c.UpdateId == originalUpdateItem.UpdateId)) { // Yes -> It's a deleted child item -> Delete db.ProjectUpdates.Remove(originalUpdateItem); } } foreach (var updateItem in storyItem.ProjectUpdates) { var originalUpdateItem = originalStoryItem.ProjectUpdates .Where(c => c.UpdateId == updateItem.UpdateId) .SingleOrDefault(); // Is original child item with same ID in DB? if (originalUpdateItem != null) { //// Yes -> Update scalar properties of child item //var updateEntry = db.Entry(originalUpdateItem); //var originalUpdateValues = db.Entry(originalUpdateItem).OriginalValues; //// Set the Name property to a new value //updateEntry.Property(u => u.UpdateDate).CurrentValue = updateItem.UpdateDate; //updateEntry.Property(u => u.UpdateDateTime).CurrentValue = updateItem.UpdateDateTime; //updateEntry.Property(u => u.UpdateField).CurrentValue = updateItem.UpdateField; //updateEntry.Property(u => u.UpdateId).CurrentValue = updateItem.UpdateId; //updateEntry.Property(u => u.UpdateUser).CurrentValue = updateItem.UpdateUser; //updateEntry.Property(u => u.UpdateValue).CurrentValue = updateItem.UpdateValue; //updateEntry.State = EntityState.Modified; } else { updateItem.ProjectStories = originalStory; updateItem.UpdateDate = DateTime.Now; originalStoryItem.ProjectUpdates.Add(updateItem); } } } else { storyItem.ProjectColumns = originalColumn; storyItem.UpdateDate = DateTime.Now; originalColumn.ProjectStories.Add(storyItem); } } } else { originalBoard.ProjectColumns.Add(columnItem); } } } db.SaveChanges(); return(ProjectBoard); }
public ProjectBoards CopyBoard(ProjectBoards projectBoard, int ID) { var originalBoard = db.ProjectBoards .Where(p => p.BoardId == projectBoard.BoardId) .Include(p => p.ProjectColumns) .SingleOrDefault(); ProjectBoards newBoard = new ProjectBoards(); newBoard.BoardId = 0; newBoard.Client = projectBoard.Client; newBoard.Configuration = originalBoard.Configuration; newBoard.Name = projectBoard.Name; newBoard.UpdateDate = DateTime.Now; newBoard.User = HttpContext.Current.User.Identity.Name.ToString(); newBoard.ProjectColumns = new List <ProjectColumns>(); foreach (var Column in originalBoard.ProjectColumns.ToList()) { ProjectColumns newColumn = new ProjectColumns(); newColumn.Description = Column.Description; newColumn.Name = Column.Name; newColumn.UpdateDate = Column.UpdateDate; newColumn.ProjectBoard = newBoard; foreach (var Story in Column.ProjectStories.ToList()) { ProjectStories newStory = new ProjectStories(); newStory.AcceptanceCriteria = Story.AcceptanceCriteria; newStory.Complexity = Story.Complexity; newStory.Description = Story.Description; newStory.DueDate = Story.DueDate; newStory.Effort = Story.Effort; newStory.ElapsedTime = Story.ElapsedTime; newStory.Moscow = Story.Moscow; newStory.Name = Story.Name; newStory.RAG = Story.RAG; newStory.Requested = Story.Requested; newStory.RequestedDate = Story.RequestedDate; newStory.SLADays = Story.SLADays; newStory.StartDate = Story.StartDate; newStory.Timebox = Story.Timebox; newStory.UpdateDate = Story.UpdateDate; newStory.User = Story.User; newStory.ProjectColumns = newColumn; foreach (var Task in Story.ProjectTasks.ToList()) { ProjectTasks newTasks = new ProjectTasks(); newTasks.RemainingTime = Task.RemainingTime; newTasks.Status = Task.Status; newTasks.TaskName = Task.TaskName; newTasks.TaskUser = Task.TaskUser; newTasks.UpdateDate = Task.UpdateDate; newTasks.ProjectStories = newStory; } newColumn.ProjectStories.Add(newStory); } newBoard.ProjectColumns.Add(newColumn); } ; return(newBoard); }
public HttpResponseMessage CSV(int?id) { ProjectBoards ProjectBoard = db.ProjectBoards.Find(Convert.ToInt32(id)); JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); string jsonString = Convert.ToString(ProjectBoard.Configuration); List <ProjectColumns> columns = (List <ProjectColumns>)javaScriptSerializer.Deserialize(jsonString, typeof(List <ProjectColumns>)); StringBuilder sb = new StringBuilder(); //Iterate through data list collection List <List <string> > propNames = new List <List <string> >(); List <string> propValues = new List <string>(); //Loop to output the values in the csv int LoopCounter = 0; propValues.Add("ColumnID"); propValues.Add("ColumnName"); propValues.Add("ActivityID"); propValues.Add("ActivityName"); propValues.Add("Description"); propValues.Add("AcceptanceCriteria"); propValues.Add("Complexity"); propValues.Add("DueDate"); propValues.Add("Effort"); propValues.Add("ElapsedTime"); propValues.Add("Moscow"); propValues.Add("RAG"); propValues.Add("RequestedBy"); propValues.Add("RequestedDate"); propValues.Add("StartDate"); propValues.Add("SLA"); propValues.Add("Timebox"); propValues.Add("CurrentUser"); propValues.Add("Tasks"); propValues.Add("Comments"); propValues.Add("Updates"); propNames.Add(propValues); propValues = new List <string>(); //Create CSV of the output results foreach (var item in columns) { //Iterate through property collection foreach (var prop in item.ProjectStories) { //Sets the row label LoopCounter = LoopCounter + 1; propValues.Add(Convert.ToString(0)); propValues.Add(Convert.ToString(item.Name)); propValues.Add(Convert.ToString(0)); propValues.Add(Convert.ToString(prop.Name)); propValues.Add(Convert.ToString(prop.Description)); propValues.Add(Convert.ToString(prop.AcceptanceCriteria)); propValues.Add(Convert.ToString(prop.Complexity)); propValues.Add(Convert.ToString(prop.DueDate)); propValues.Add(Convert.ToString(prop.Effort)); propValues.Add(Convert.ToString(prop.ElapsedTime)); propValues.Add(Convert.ToString(prop.Moscow)); propValues.Add(Convert.ToString(prop.RAG)); propValues.Add(Convert.ToString(prop.Requested)); propValues.Add(Convert.ToString(prop.RequestedDate)); propValues.Add(Convert.ToString(prop.StartDate)); propValues.Add(Convert.ToString(prop.SLADays)); propValues.Add(Convert.ToString(prop.Timebox)); propValues.Add(Convert.ToString(prop.User)); if (prop.ProjectTasks != null) { propValues.Add(javaScriptSerializer.Serialize(prop.ProjectTasks)); } else { propValues.Add(""); } if (prop.ProjectComments != null) { propValues.Add(javaScriptSerializer.Serialize(prop.ProjectComments)); } else { propValues.Add(""); } if (prop.ProjectUpdates != null) { propValues.Add(javaScriptSerializer.Serialize(prop.ProjectUpdates)); } else { propValues.Add(""); } propNames.Add(propValues); propValues = new List <string>(); } } //Create object response var response = Request.CreateResponse(); response.Content = new StringContent(JsonConvert.SerializeObject(propNames)); response.StatusCode = HttpStatusCode.OK; return(response); }
public async Task <ViewResult> Index() { string u = Request.Query["u"]; return(View(await ProjectBoards.ProjectList(String.IsNullOrEmpty(u) ? "uid100" : u))); }