public async Task <IActionResult> PutAssignmentTag(long id, AssignmentTag assignmentTag)
        {
            if (id != assignmentTag.AssignmentTagID)
            {
                return(BadRequest());
            }

            _context.Entry(assignmentTag).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AssignmentTagExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <AssignmentTag> > PostAssignmentTag(AssignmentTag assignmentTag)
        {
            _context.AssignmentTags.Add(assignmentTag);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetAssignmentTag", new { id = assignmentTag.AssignmentTagID }, assignmentTag));
        }
Пример #3
0
        public IActionResult Add(ViewModel assign)
        {
            Assignment assignment = assign.Assignment;

            if (assign.SelectedTags != null)
            {
                int id = assign.SelectedTags.ElementAt(0);

                for (int i = 0; i < assign.SelectedTags.Count(); i++)
                {
                    AssignmentTag assignmentTag = new AssignmentTag {
                        Assignment   = assignment,
                        AssignmentId = assign.Assignment.Id,
                        Tag          = _context.Tags.Single(n => n.Id == assign.SelectedTags.ElementAt(i)),
                        TagId        = assign.SelectedTags.ElementAt(i)
                    };
                    _context.AssignmentTags.Add(assignmentTag);
                }
            }

            _context.Add(assignment);
            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult <AssignmentTag> > PostOrDeleteAssignmentTags(long assignmentID, Tag[] tagList)
        {
            AssignmentTag assignmentTag;

            var assignment = _context.Assignments.Where(i => i.AssignmentID == assignmentID).FirstOrDefault();

            var assignmentTags = _context.AssignmentTags.Where(a => a.Assignment.AssignmentID == assignment.AssignmentID).ToList();

            foreach (var assignmentTag2 in assignmentTags)
            {
                _context.AssignmentTags.Remove(assignmentTag2);
            }

            foreach (var tag in tagList)
            {
                assignmentTag = new AssignmentTag();

                assignmentTag.Tag             = tag;
                assignmentTag.AssignmentTagID = 0;
                assignmentTag.Assignment      = assignment;

                _context.Entry(assignmentTag.Tag).State        = EntityState.Unchanged;
                _context.Entry(assignmentTag.Assignment).State = EntityState.Unchanged;

                _context.AssignmentTags.Add(assignmentTag);
                await _context.SaveChangesAsync();
            }
            return(NoContent());
        }
        public IActionResult Post(string name, string assignmentType, string title, string description, string duration, string tags)
        {
            var tagList = string.IsNullOrEmpty(tags) ? new string[0] : tags.Split(",");

            var newAssignment = new Assignment
            {
                Name           = name,
                AssignmentType = assignmentType,
                Title          = title,
                Description    = description,
                Duration       = duration
            };

            try
            {
                _context.Assignments.Add(newAssignment);
                _context.SaveChanges();

                if (tagList.Length > 0)
                {
                    for (int i = 0; i < tagList.Length; i++)
                    {
                        var tag = _context.Tags.FirstOrDefault(t => t.Name == tagList[i]);
                        if (null == tag)
                        {
                            tag = new Tag {
                                Name = tagList[i]
                            };
                            _context.Tags.Add(tag);
                            _context.SaveChanges();
                        }

                        var link = new AssignmentTag
                        {
                            Assignment   = newAssignment,
                            AssignmentId = newAssignment.AssignmentId,
                            Tag          = tag,
                            TagId        = tag.TagId
                        };
                        newAssignment.AssignmentTags.Add(link);
                    }
                }

                _context.SaveChanges();
                var vm = AssignmentViewmodel.FromAssignment(newAssignment);
                vm.Tags = tagList;
                return(Ok(vm));
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                return(StatusCode(500));
            }
        }
        public async Task <ActionResult <AssignmentTag> > PostAssignmentTag(AssignmentTag assignmentTag)
        {
            var bestaande = await _context.AssignmentTags.Where(at => at.AssignmentID == assignmentTag.AssignmentID && at.TagID == assignmentTag.TagID).ToListAsync();

            if (bestaande.Count() != 0)
            {
                return(BadRequest());
            }
            _context.AssignmentTags.Add(assignmentTag);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetAssignmentTag", new { id = assignmentTag.AssignmentTagID }, assignmentTag));
        }
        public void CheckAssignmentTagsAreEqualLikeModel()
        {
            //Arrange
            AssignmentTag assTag1 = new AssignmentTag()
            {
                TagId        = 1,
                AssignmentId = 1
            };

            AssignmentTag assTag2 = new AssignmentTag()
            {
                TagId        = 2,
                AssignmentId = 1
            };

            List <AssignmentTag> listAssTags = new List <AssignmentTag> {
                assTag1, assTag2
            };

            var config = new MapperConfiguration(c =>
            {
                c.AddProfile(new MappingProfile());
            });
            var mapper = config.CreateMapper();

            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase("UsersDirectoryMVC")
                          .Options;


            using (var context = new Context(options))
            {
                //Act
                var assignmentService = new AssignmentService(mapper, new AssignmentRepository(context));
                context.AssignmentTag.AddRange(listAssTags);
                context.SaveChanges();
                var assignemntTagsList = assignmentService.GetAllAssignmentTags(1);

                //Assert
                assignemntTagsList.Should().NotBeNull();
                assignemntTagsList.Should().Equals(listAssTags);
            }
        }
        public void CheckAssignmentTagsExistAfterDelete()
        {
            //Arrange
            AssignmentTag assignmentTag1 = new AssignmentTag()
            {
                AssignmentId = 1,
                TagId        = 1
            };
            AssignmentTag assignmentTag2 = new AssignmentTag()
            {
                AssignmentId = 1,
                TagId        = 2
            };
            AssignmentTag assignmentTag3 = new AssignmentTag()
            {
                AssignmentId = 2,
                TagId        = 3
            };
            List <AssignmentTag> thisTagsShouldExist = new List <AssignmentTag>();

            thisTagsShouldExist.Add(assignmentTag3);

            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "UsersDirectoryMVC")
                          .Options;

            using (var context = new Context(options))
            {
                //Act
                var assignmentRepository = new AssignmentRepository(context);
                assignmentRepository.AddNewTags(assignmentTag1);
                assignmentRepository.AddNewTags(assignmentTag2);
                assignmentRepository.AddNewTags(assignmentTag3);
                assignmentRepository.DeleteTags(1);
                var gerAssignmentTags1 = assignmentRepository.GetAllTagsForAssignment(1);
                var gerAssignmentTags2 = assignmentRepository.GetAllTagsForAssignment(2);
                //Assert
                gerAssignmentTags1.Should().BeEmpty();
                gerAssignmentTags2.Should().Equals(thisTagsShouldExist);
            }
        }
        public void CheckAssignmentTagsListExistAfterAdd()
        {
            //Arrange
            AssignmentTag assignmentTag1 = new AssignmentTag()
            {
                AssignmentId = 1,
                TagId        = 1
            };

            AssignmentTag assignmentTag2 = new AssignmentTag()
            {
                AssignmentId = 1,
                TagId        = 2
            };

            List <AssignmentTag> thisTagsShouldExist = new List <AssignmentTag>();

            thisTagsShouldExist.Add(assignmentTag1);
            thisTagsShouldExist.Add(assignmentTag2);

            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "UsersDirectoryMVC")
                          .Options;

            using (var context = new Context(options))
            {
                //Act
                var assignmentRepository = new AssignmentRepository(context);
                assignmentRepository.AddNewTags(assignmentTag1);
                assignmentRepository.AddNewTags(assignmentTag2);
                var assignmentResult = assignmentRepository.GetAllTagsForAssignment(1);

                //Assert
                assignmentResult.Should().NotBeNull();
                assignmentResult.Should().Equals(thisTagsShouldExist);
            }
        }
        public void GetAllTagsForAssignmentToListAndCheckAreEqualLikeModelsList()
        {
            //Arrange
            AssignmentTag assignmentTag1 = new AssignmentTag()
            {
                AssignmentId = 1,
                TagId        = 1
            };

            AssignmentTag assignmentTag2 = new AssignmentTag()
            {
                AssignmentId = 1,
                TagId        = 2
            };

            List <AssignmentTag> listOfTags = new List <AssignmentTag>();

            listOfTags.Add(assignmentTag1);
            listOfTags.Add(assignmentTag2);

            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "UsersDirectoryMVC")
                          .Options;

            using (var context = new Context(options))
            {
                //Act
                var assignmentRepository = new AssignmentRepository(context);
                assignmentRepository.AddNewTags(assignmentTag1);
                assignmentRepository.AddNewTags(assignmentTag2);
                var assignmentTags = assignmentRepository.GetAllTagsForAssignment(1);

                //Assert
                assignmentTags.Should().Equals(listOfTags);
            }
        }
Пример #11
0
 public void AddNewTags(AssignmentTag assignmentTag)
 {
     _context.AssignmentTag.Add(assignmentTag);
     _context.SaveChanges();
 }