예제 #1
0
        public void DoesCursusInstantieExistReturnsTrueIfCursusInstanceAlreadyExist()
        {
            CursusInstantie cursusInstantieMock = CursusInstantieBuilder.New().Build();

            _cursusRepositoryMock.Setup(x => x.GetCursusInstantieById(It.IsAny <int>())).Returns(cursusInstantieMock);

            var cursusInstantie = CursusInstantieBuilder.New().Build();

            var result = _sut.DoesNotCursusInstantieExist(cursusInstantie);

            Assert.IsTrue(result);
        }
예제 #2
0
        public HttpResponseMessage PostCursus()
        {
            var httpRequest = HttpContext.Current.Request;

            if (httpRequest.Files.Count < 1)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }

            try
            {
                var cursusDto = new CursusDto();
                var file      = httpRequest.Files[0];
                using (var streamReader = new StreamReader(file.InputStream))
                {
                    var fileContent = streamReader.ReadToEnd();
                    cursusDto = FileProcessService.MapToCursusInstances(fileContent);
                }

                var succesFullAddedCursusCounter           = 0;
                var succesFullAddedCursusInstantiesCounter = 0;

                foreach (var cursus in cursusDto.Cursussen)
                {
                    if (_cursusValidator.DoesCursusNotExist(cursus) && _cursusValidator.DoesCursusHaveFilledAttributes(cursus))
                    {
                        _repository.AddCursus(cursus);
                        _repository.Save();
                        succesFullAddedCursusCounter++;
                    }
                }

                foreach (var cursusInstantie in cursusDto.CursusInstanties)
                {
                    if (_cursusInstantieValidator.DoesNotCursusInstantieExist(cursusInstantie))
                    {
                        _repository.AddCursusInstantie(cursusInstantie);
                        _repository.Save();
                        succesFullAddedCursusInstantiesCounter++;
                    }
                }

                var requestBody = $"Cursussen toegevoegd: {succesFullAddedCursusCounter}. " +
                                  $"CursussenInstanties toegevoegd: {succesFullAddedCursusInstantiesCounter}." +
                                  $"Cursussen dubbel: {cursusDto.Cursussen.Count - succesFullAddedCursusCounter}." +
                                  $"CursussenInstanties dubbel: { cursusDto.CursusInstanties.Count - succesFullAddedCursusInstantiesCounter}";

                return(Request.CreateResponse(HttpStatusCode.OK, requestBody, "application/json"));
            }
            catch (ArgumentException ex)
            {
                var requestBody = $"Bestand is niet in correct formaat op regel {ex.Message}." +
                                  $"Er zijn geen cursus of cursusinstanties toegevoegd.";
                return(Request.CreateResponse(HttpStatusCode.Accepted, requestBody, "application/json"));
            }
            catch (Exception ex)
            {
                var requestBody = $"Bestand is niet in correct formaat op regel {ex.Message}." +
                                  $"Er zijn geen cursus of cursusinstanties toegevoegd.";
                return(Request.CreateResponse(HttpStatusCode.BadRequest, requestBody, "application/json"));
            }
        }