public async Task UpdateInternshipShould_ReturnOkObjectResult()
        {
            moqUserManager.Setup(_ => _.GetUserAsync(It.IsAny <ClaimsPrincipal>())).
            ReturnsAsync(new User());

            moqUserService.Setup(_ => _.GetCompany(It.IsAny <User>()))
            .ReturnsAsync(new Company());

            moqInternshipService.Setup(_ => _.Update(It.IsAny <InternshipUpdate>(), It.IsAny <Company>()))
            .ReturnsAsync(new Internship());

            InternshipUpdate model = new InternshipUpdate
            {
                Activities = new List <string>()
                {
                    "abc"
                },
                AdditionalRemarks = "abc",
                AssignedStudents  = new List <string>()
                {
                    "abc"
                },
                Description = "abc",
                Environment = new List <string>()
                {
                    "abc"
                },
                ExtraRequirements  = "abc",
                PeriodOfInternship = new List <string>()
                {
                    "abc"
                },
                RequiredFieldsOfStudy = new List <string>()
                {
                    "abc"
                },
                RequiredStudentsAmount = 1,
                ResearchTheme          = "abc",
                TechnicalDescription   = "abc",
                Title = "abc",
                ID    = Guid.NewGuid()
            };

            var result = await sut.UpdateInternship(model);

            Assert.That(result, Is.TypeOf <OkObjectResult>());
        }
        public async Task <IActionResult> UpdateInternship([FromBody] InternshipUpdate model)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(Unauthorized());
            }

            var result = await _service.Update(model, await _userService.GetCompany(user));

            if (result == null)
            {
                return(BadRequest());
            }
            return(Ok(result));
        }
Beispiel #3
0
        public async Task <Internship> Update(InternshipUpdate entity, Company user)
        {
            var existing = await Get(entity.ID);

            if (existing == null || existing?.InternshipState != InternshipState.RejectedByAll || existing.CreatorId != user.Id)
            {
                return(null);
            }

            if (existing.Title == entity.Title && existing.RequiredFieldsOfStudy.SequenceEqual(entity.RequiredFieldsOfStudy) && existing.Description == entity.Description && existing.Environment.SequenceEqual(entity.Environment) && existing.TechnicalDescription == entity.TechnicalDescription && existing.ExtraRequirements == entity.ExtraRequirements &&
                existing.ResearchTheme == entity.ResearchTheme && existing.RequiredStudentsAmount == entity.RequiredStudentsAmount && existing.AdditionalRemarks == entity.AdditionalRemarks && existing.Periods.SequenceEqual(entity.PeriodOfInternship) && existing.AssignedStudents.SequenceEqual(entity.AssignedStudents) && existing.Activities.SequenceEqual(entity.Activities))
            {
                return(null);
            }

            existing.Title = entity.Title;
            existing.RequiredFieldsOfStudy  = entity.RequiredFieldsOfStudy;
            existing.Description            = entity.Description;
            existing.Environment            = entity.Environment;
            existing.TechnicalDescription   = entity.TechnicalDescription;
            existing.ExtraRequirements      = entity.ExtraRequirements;
            existing.ResearchTheme          = entity.ResearchTheme;
            existing.Activities             = entity.Activities;
            existing.RequiredStudentsAmount = entity.RequiredStudentsAmount;
            existing.AssignedStudents       = entity.AssignedStudents;
            existing.AdditionalRemarks      = entity.AdditionalRemarks;
            existing.Periods = entity.PeriodOfInternship;

            existing.InternshipState = InternshipState.InReviewByTeacher;
            existing.DateOfState     = DateTime.UtcNow;

            foreach (var reviewer in existing.Reviewers)
            {
                reviewer.Feedback       = null;
                reviewer.StateOfTeacher = InternshipState.InReviewByTeacher;
            }

            _context.Update(existing);
            await Save();

            return(existing);
        }
Beispiel #4
0
        public void Setup()
        {
            _context = ContextHelper.GetDatabaseContext();

            sut = new InternshipService(_context);

            dto = new InternshipCreationDto
            {
                RequiredFieldsOfStudy  = new List <string>(),
                AssignedStudents       = new List <string>(),
                Environment            = new List <string>(),
                TechnicalDescription   = "TechnicalDescription",
                ExtraRequirements      = "ExtraRequirements",
                ResearchTheme          = "ResearchTheme",
                Activities             = new List <string>(),
                RequiredStudentsAmount = 2,
                AdditionalRemarks      = "AdditionalRemarks",
                PeriodOfInternship     = new List <string>(),
                Description            = "Description"
            };

            for (int i = 0; i < 10; i++)
            {
                dto.RequiredFieldsOfStudy.Add("ReqFOS" + i);
                dto.AssignedStudents.Add("AssignedStudent" + i);
                dto.Environment.Add("Environment" + i);
                dto.Activities.Add("Activity" + i);
                dto.PeriodOfInternship.Add("Period" + i);
            }

            internship = new Internship
            {
                CreatorId              = Guid.NewGuid(),
                RequiredFieldsOfStudy  = dto.RequiredFieldsOfStudy,
                AssignedStudents       = dto.AssignedStudents,
                Environment            = dto.Environment,
                TechnicalDescription   = "TechnicalDescription",
                ExtraRequirements      = "ExtraRequirements",
                ResearchTheme          = "ResearchTheme",
                Activities             = dto.Activities,
                RequiredStudentsAmount = 2,
                AdditionalRemarks      = "AdditionalRemarks",
                Id = Guid.NewGuid(),
                InternshipState = 0,
                Periods         = dto.PeriodOfInternship,
                Description     = "Description",
                DateOfState     = DateTime.UtcNow
            };

            userTeacher = new User
            {
                Id           = Guid.NewGuid(),
                City         = "City",
                Email        = "*****@*****.**",
                FirstName    = "John",
                HouseNumber  = 18,
                LastName     = "Doe",
                PasswordHash = Guid.NewGuid().ToString(),
                PhoneNumber  = "+3259874896",
                ZipCode      = 7890,
                UserName     = "******",
                StreetName   = "Easy Street"
            };

            userTeacher2 = new User
            {
                Id           = Guid.NewGuid(),
                City         = "City",
                Email        = "*****@*****.**",
                FirstName    = "John",
                HouseNumber  = 18,
                LastName     = "Doe",
                PasswordHash = Guid.NewGuid().ToString(),
                PhoneNumber  = "+3259874896",
                ZipCode      = 7890,
                UserName     = "******",
                StreetName   = "Easy Street"
            };

            company = new Company
            {
                Id = internship.CreatorId
            };


            ReviewerInternships reviewerInternships = new ReviewerInternships
            {
                ReviewedInternship = internship,
                Reviewer           = userTeacher
            };

            reviewerList = new List <ReviewerInternships> {
                reviewerInternships
            };

            internship.Reviewers = reviewerList;

            IFCDto = new InternshipFeedbackCoordinatorDto
            {
                Feedback      = "coordinator",
                InternshipId  = internship.Id,
                ReviewedState = InternshipState.ApprovedByAll
            };

            IFTDto = new InternshipFeedbackTeacherDto
            {
                Feedback     = "teacher",
                InternshipId = internship.Id,
                TeacherId    = userTeacher.Id
            };

            updateDto = new InternshipUpdate
            {
                ID            = internship.Id,
                ResearchTheme = "ResearchTheme",
                Description   = "DescriptionUpdate",
                Activities    = new List <string>()
                {
                    "test"
                },
                AdditionalRemarks = "test",
                AssignedStudents  = new List <string>()
                {
                    "Jan"
                },
                Environment = new List <string>()
                {
                    "test"
                },
                ExtraRequirements  = "test",
                PeriodOfInternship = new List <string>()
                {
                    "test"
                },
                RequiredFieldsOfStudy = new List <string>()
                {
                    "AON"
                },
                RequiredStudentsAmount = 1,
                TechnicalDescription   = "test",
                Title = "test"
            };

            _context.Add(reviewerInternships);
            _context.Add(userTeacher);
            _context.Add(internship);
            _context.SaveChanges();
        }