示例#1
0
        public ActionResult <RetroColumn> PostRetroColumn(RetroColumn retroColumn)
        {
            Retrospective retrospective = _context.Retrospectives.First(x => x.Id == retroColumn.RetrospectiveId);

            var decodedId = decoder.DecodeToken(Request != null ? (Request.Headers.ContainsKey("token") ? Request.Headers["token"].ToString() : null) : null);

            if (retrospective == null && retroColumn != null)
            {
                return(NotFound());
            }

            if (decodedId == null || retrospective.RetroUserId != int.Parse(decodedId))
            {
                return(Unauthorized());
            }

            _context.SaveRetroColumn(retroColumn);

            if (_hubContext.Clients != null)
            {
                try
                {
                    _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                }
                catch (Exception e)
                {
                    _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                }
            }

            return(CreatedAtAction("GetRetroColumn", new { id = retroColumn.Id }, retroColumn));
        }
示例#2
0
        public ActionResult <RetroFamily> Delete(int id)
        {
            var family = _repo.RetroFamilies.FirstOrDefault(x => x.Id == id);

            if (family == null)
            {
                return(NotFound());
            }

            else
            {
                RetroColumn retroColumn = _repo.RetroColumns.FirstOrDefault(x => x.Id == family.RetroColumnId);

                _repo.RemoveRetroFamily(family);

                if (_hubContext.Clients != null)
                {
                    try
                    {
                        _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                    }
                    catch
                    {
                        _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                    }
                }

                return(family);
            }
        }
示例#3
0
        public ActionResult <RetroCard> DeleteRetroCard(int id)
        {
            RetroCard retroCard = _context.RetroCards.FirstOrDefault(r => r.Id == id);

            if (retroCard == null)
            {
                return(NotFound());
            }

            _context.RemoveRetroCard(retroCard);

            RetroColumn retroColumn = _context.RetroColumns.Single(x => x.Id == retroCard.RetroColumnId);

            if (_hubContext != null)
            {
                try
                {
                    _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                }
                catch
                {
                    _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                }
            }

            return(retroCard);
        }
        public void SaveRetroColumn(RetroColumn retroColumn)
        {
            if (retroColumn.Id == 0)
            {
                _context.RetroColumns.Add(retroColumn);
            }
            else
            {
                RetroColumn dbEntry = _context.RetroColumns
                                      .FirstOrDefault(c => c.Id == retroColumn.Id);

                if (dbEntry != null)
                {
                    dbEntry.RetroCards      = retroColumn.RetroCards;
                    dbEntry.Title           = retroColumn.Title;
                    dbEntry.RetrospectiveId = retroColumn.RetrospectiveId;

                    foreach (RetroFamily f in retroColumn.RetroFamilies)
                    {
                        this.SaveRetroFamily(f);
                    }
                }
            }

            _context.SaveChanges();
        }
示例#5
0
        public ActionResult <RetroColumn> PutRetroColumn(RetroColumn retroColumn)
        {
            _context.SaveRetroColumn(retroColumn);

            try
            {
                _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
            }
            catch (Exception e)
            {
                _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
            }

            return(retroColumn);
        }
示例#6
0
        public void Put([FromBody] RetroFamily retroFamily)
        {
            _repo.SaveRetroFamily(retroFamily);

            RetroColumn retroColumn = _repo.RetroColumns.FirstOrDefault(x => x.Id == retroFamily.RetroColumnId);

            if (_hubContext.Clients != null)
            {
                try
                {
                    _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                }
                catch
                {
                    _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                }
            }
        }
        public void DeletionOfAColumn()
        {
            //Arrange
            IList <Retrospective> r = new List <Retrospective> {
                new Retrospective
                {
                    Id          = 0,
                    RetroUserId = 1
                }
            };

            _mockRetrospectiveRepo.Setup(x => x.Retrospectives).Returns(r.AsQueryable());

            RetroColumn column = new RetroColumn
            {
                Id              = 0,
                Title           = "Column 1",
                RetrospectiveId = 0
            };

            IList <RetroColumn> columns = new List <RetroColumn> {
                column
            };

            void Action(RetroColumn retroColumn)
            {
                columns.Remove(retroColumn);
            }

            decoderMock.Setup(x => x.DecodeToken(It.IsAny <string>())).Returns("1");


            _mockRetrospectiveRepo.Setup(m => m.RetroColumns).Returns(columns.AsQueryable());
            _mockRetrospectiveRepo.Setup(m => m.RemoveRetroColumn(It.IsAny <RetroColumn>())).Callback((Action <RetroColumn>)Action);

            IRetroRespectiveRepository repo = _mockRetrospectiveRepo.Object;
            var controller = new RetroColumnsController(repo, _hubContext.Object, decoderMock.Object);

            //Act
            controller.DeleteRetroColumn(0);

            //Assert
            Assert.True(!columns.Any());
        }
        public void AdditionOfAColumn()
        {
            //Arrange
            IList <Retrospective> r = new List <Retrospective> {
                new Retrospective
                {
                    Id          = 0,
                    RetroUserId = 1
                }
            };

            _mockRetrospectiveRepo.Setup(x => x.Retrospectives).Returns(r.AsQueryable());

            IRetroRespectiveRepository repo = _mockRetrospectiveRepo.Object;
            var controller = new RetroColumnsController(repo, _hubContext.Object, decoderMock.Object);

            IList <RetroColumn> columns = new List <RetroColumn>();

            void Action(RetroColumn retroColumn)
            {
                columns.Add(retroColumn);
            }

            decoderMock.Setup(x => x.DecodeToken(It.IsAny <string>())).Returns("1");

            _mockRetrospectiveRepo.Setup(m => m.SaveRetroColumn(It.IsAny <RetroColumn>())).Callback((Action <RetroColumn>)Action);

            //Act
            controller.PostRetroColumn(new RetroColumn
            {
                Id              = 2,
                Title           = "Column 3",
                RetrospectiveId = 0
            });

            //Assert
            Assert.True(columns.Any());

            RetroColumn createdColumn = columns.FirstOrDefault(r => r.Title.Equals("Column 3"));

            Assert.NotNull(createdColumn);
        }
示例#9
0
        public ActionResult <RetroCard> PostRetroCard(RetroCard retroCard)
        {
            _context.SaveRetroCard(retroCard);

            RetroColumn retroColumn = _context.RetroColumns.Single(x => x.Id == retroCard.RetroColumnId);

            if (_hubContext.Clients != null)
            {
                try
                {
                    _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                }
                catch
                {
                    _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                }
            }

            return(CreatedAtAction("GetRetroCard", new { id = retroCard.Id }, retroCard));
        }
示例#10
0
        public ActionResult <RetroCard> UpdateRetroCard(RetroCard retroCard)
        {
            _context.SaveRetroCard(retroCard);

            RetroColumn retroColumn = _context.RetroColumns.Single(x => x.Id == retroCard.RetroColumnId);

            if (_hubContext != null)
            {
                try
                {
                    _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                }
                catch
                {
                    _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                }
            }

            return(retroCard);
        }
示例#11
0
        public ActionResult <RetroFamily> Post([FromBody] RetroFamily retroFamily)
        {
            _repo.SaveRetroFamily(retroFamily);

            RetroColumn retroColumn = _repo.RetroColumns.FirstOrDefault(x => x.Id == retroFamily.RetroColumnId);

            if (_hubContext.Clients != null)
            {
                try
                {
                    _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                }
                catch (Exception)
                {
                    _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                }
            }

            return(retroFamily);
        }
示例#12
0
        public ActionResult <RetroColumn> DeleteRetroColumn(int id)
        {
            RetroColumn retroColumn = _context.RetroColumns.FirstOrDefault(c => c.Id == id);

            Retrospective retrospective = _context.Retrospectives.First(x => x.Id == retroColumn.RetrospectiveId);

            var decodedId = decoder.DecodeToken(Request != null ? (Request.Headers.ContainsKey("token") ? Request.Headers["token"].ToString() : null) : null);


            if (retrospective == null && retroColumn != null)
            {
                return(NotFound());
            }

            if (decodedId == null || retrospective.RetroUserId != int.Parse(decodedId))
            {
                return(Unauthorized());
            }

            _context.RemoveRetroColumn(retroColumn);

            if (_hubContext.Clients != null)
            {
                try
                {
                    _hubContext.Clients.All.BroadcastMessage(true, retroColumn.RetrospectiveId);
                }
                catch (Exception e)
                {
                    _hubContext.Clients.All.BroadcastMessage(false, retroColumn.RetrospectiveId);
                }
            }


            return(retroColumn);
        }
示例#13
0
        public void PostRetrospective_ShouldCreateThreeColumns()
        {
            //arrange
            var controller = new RetrospectivesController(_mockRetrospectiveRepo.Object, _decoderMock.Object, _hubContext.Object);

            _decoderMock.Setup(x => x.DecodeToken(It.IsAny <string>())).Returns("1");

            var retrospective = new Retrospective
            {
                Title       = "Custom title",
                Description = "Custom description"
            };

            //act
            var response = controller.PostRetrospective(retrospective);

            //assert
            CreatedAtActionResult result = response.Result as CreatedAtActionResult;

            Assert.True(result?.Value is Retrospective);

            if (result.Value is Retrospective retroResult)
            {
                Assert.Equal(retrospective.Title, retroResult.Title);
                Assert.Equal(3, retroResult.RetroColumns.Count);

                RetroColumn retroColumn = retroResult.RetroColumns.FirstOrDefault(r => r.Title == "To do");
                Assert.Equal("To do", retroColumn.Title);

                retroColumn = retroResult.RetroColumns.FirstOrDefault(r => r.Title == "Doing");
                Assert.Equal("Doing", retroColumn.Title);

                retroColumn = retroResult.RetroColumns.FirstOrDefault(r => r.Title == "Done");
                Assert.Equal("Done", retroColumn.Title);
            }
        }
 public void RemoveRetroColumn(RetroColumn retroColumn)
 {
     _context.RetroColumns.Remove(retroColumn);
     _context.SaveChanges();
 }