public async Task CreateNewCandidateForJobPostingAsyncTest() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var repository = new EfDeletableEntityRepository <UserInfo>(new ApplicationDbContext(options.Options)); foreach (var item in this.GetUserInfoData()) { await repository.AddAsync(item); await repository.SaveChangesAsync(); } var service = new UserInfoService(repository); var fileMockCv = new Mock <IFormFile>(); var content = "Hello World from a Fake File"; var fileName = "test.pdf"; var ms = new MemoryStream(); var writer = new StreamWriter(ms); writer.Write(content); writer.Flush(); ms.Position = 0; fileMockCv.Setup(_ => _.OpenReadStream()).Returns(ms); fileMockCv.Setup(_ => _.FileName).Returns(fileName); fileMockCv.Setup(_ => _.Length).Returns(ms.Length); WebClient client = new WebClient(); var stream = client.OpenRead("https://ichef.bbci.co.uk/news/976/cpsprodpb/41CF/production/_109474861_angrycat-index-getty3-3.jpg"); var fileMockImage = new Mock <IFormFile>(); fileMockImage.Setup(_ => _.OpenReadStream()).Returns(stream); fileMockImage.Setup(_ => _.FileName).Returns("cat.jpg"); var inputModel = new UserInfoInputModel { UserId = "6", FirstName = "Andrea", LastName = "Denikova", Description = "bgscdsu", ProfilePicture = fileMockImage.Object, Cv = fileMockCv.Object, Address = "bcsuigvfdgvdfcdz", CityId = "1", }; await service.PostUserInfoAsync(inputModel); var candidatesCount = repository.All().ToList().Count; Assert.Equal(4, candidatesCount); }
public async Task <IActionResult> UserInfo(UserInfoInputModel input) { if (!this.ModelState.IsValid) { return(this.View()); } var cityId = this.citiesService.GetCityId(input.CityName); input.CityId = cityId; input.UserId = this.userManager.GetUserId(this.User); await this.userInfoService.PostUserInfoAsync(input); return(this.Redirect("/")); }
public async Task PostUserInfoAsync(UserInfoInputModel input) { var userInfo = new UserInfo { FirstName = input.FirstName, LastName = input.LastName, UserId = input.UserId, Description = input.Description, ProfilePicture = this.UploadImageToCloudinary(input.ProfilePicture.OpenReadStream()), CV = this.UploadCvFileToCloudinary(input.Cv.OpenReadStream()), Address = input.Address, CityId = input.CityId, }; await this.userInfoRepository.AddAsync(userInfo); await this.userInfoRepository.SaveChangesAsync(); }