Esempio n. 1
0
        public async Task CreateDonorThrowsExceptionIfNoFullDonorDataTest()
        {
            var dbContext = ApplicationDbContextInMemoryFactory.InitializeContext();

            var donorDataRepository = new EfDeletableEntityRepository <DonorData>(dbContext);
            var usersRepository     = new EfDeletableEntityRepository <ApplicationUser>(dbContext);
            var rolesRepository     = new EfDeletableEntityRepository <ApplicationRole>(dbContext);
            var userManager         = this.GetUserManagerMock();

            var service = new DonorsService(donorDataRepository, usersRepository, rolesRepository);

            var input = new DonorDataProfileInputModel
            {
                Id                   = "123",
                UserName             = "******",
                FirstName            = null,
                MiddleName           = "MiddleName",
                LastName             = null,
                Age                  = 30,
                PhoneNumber          = "123456789",
                BloodGroup           = (BloodGroup)1,
                RhesusFactor         = (RhesusFactor)1,
                Country              = "Bulgaria",
                City                 = "Sofia",
                AdressDescription    = "Sofia",
                DonorAveilableStatus = EmergencyStatus.AsSoonAsPossible,
                ExaminationDate      = DateTime.UtcNow,
                DiseaseName          = "None",
            };

            await Assert.ThrowsAsync <ArgumentException>(() => service.CreateDonorProfileAsync(input, this.SeedInputs()[0].Id));
        }
Esempio n. 2
0
        public async Task CreateDonorProfileAsync(DonorDataProfileInputModel input, string userId)
        {
            var user = this.userRepository.All()
                       .Where(u => u.Id == userId)
                       .FirstOrDefault();

            if (user == null)
            {
                throw new ArgumentException(GlobalConstants.NoUserRegistrationErrorMessage);
            }

            if (input.Age == 0 || input.FirstName == null || input.LastName == null)
            {
                throw new ArgumentException(GlobalConstants.NoDonorDataErrorMessage);
            }

            var donorData = new DonorData
            {
                ApplicationUserId = user.Id,
                FirstName         = input.FirstName,
                MiddleName        = input.MiddleName,
                LastName          = input.LastName,
                Age     = input.Age,
                Contact = new Contact
                {
                    Phone = input.PhoneNumber,
                    Email = user.Email,
                },
                Location = new Location
                {
                    Country           = input.Country,
                    City              = input.City,
                    AdressDescription = input.AdressDescription,
                },
                Examination = new Examination
                {
                    Disease = new Disease
                    {
                        DiseaseStatus      = input.DiseaseStatus,
                        DiseaseName        = input.DiseaseName,
                        DiseaseDescription = input.DiseaseDescription,
                    },
                },
                DonorAveilableStatus = input.DonorAveilableStatus,
                BloodGroup           = input.BloodGroup,
                RhesusFactor         = input.RhesusFactor,
            };

            await this.donorRepository.AddAsync(donorData);

            await this.donorRepository.SaveChangesAsync();
        }
Esempio n. 3
0
        public async Task <IActionResult> AddDonor(DonorDataProfileInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            var userId = this.userManager.GetUserId(this.User);

            await this.donorsService.CreateDonorProfileAsync(input, userId);

            return(this.RedirectToAction("AllRequests", "Requests"));
        }
Esempio n. 4
0
        private IList <DonorDataProfileInputModel> SeedInputs()
        {
            var inputs = new List <DonorDataProfileInputModel>();

            // Seeding input of donorData
            var input = new DonorDataProfileInputModel
            {
                Id                   = "123",
                UserName             = "******",
                FirstName            = "FirstName",
                MiddleName           = "MiddleName",
                LastName             = "LastName",
                Age                  = 30,
                PhoneNumber          = "123456789",
                BloodGroup           = (BloodGroup)1,
                RhesusFactor         = (RhesusFactor)1,
                Country              = "Bulgaria",
                City                 = "Sofia",
                AdressDescription    = "Sofia",
                DonorAveilableStatus = EmergencyStatus.AsSoonAsPossible,
                ExaminationDate      = DateTime.UtcNow,
                DiseaseName          = "None",
            };

            inputs.Add(input);

            for (int i = 0; i < 5; i++)
            {
                var inputLoop = new DonorDataProfileInputModel
                {
                    Id                   = $"123{i}",
                    UserName             = $"User1{i}",
                    FirstName            = $"FirstName{i}",
                    MiddleName           = $"MiddleName{i}",
                    LastName             = $"LastName{i}",
                    Age                  = 30,
                    PhoneNumber          = $"123456789{i}",
                    BloodGroup           = (BloodGroup)1,
                    RhesusFactor         = (RhesusFactor)1,
                    Country              = "Bulgaria",
                    City                 = "Sofia",
                    AdressDescription    = "Sofia",
                    DonorAveilableStatus = EmergencyStatus.WithinDay,
                    ExaminationDate      = DateTime.UtcNow,
                    DiseaseName          = "None",
                };
                inputs.Add(inputLoop);
            }

            return(inputs);
        }
        public void AddDonorHttpPostInvalidInputShouldThrowAnyExceptionTest()
        {
            var mockUserManagerService = this.GetUserManagerMock();
            var mockDonorsService      = new Mock <IDonorsService>();
            var mockUsersService       = new Mock <IUsersService>();
            var input = new DonorDataProfileInputModel();

            var controller = new DonorsController(
                mockUserManagerService.Object,
                mockDonorsService.Object,
                mockUsersService.Object);

            Assert.ThrowsAnyAsync <Exception>(() => controller.AddDonor(input));
        }
        private DonorDataProfileInputModel SeedData()
        {
            var input = new DonorDataProfileInputModel
            {
                Id                   = "123",
                FirstName            = "Donor1",
                MiddleName           = "Donor1",
                LastName             = "Donor1",
                Age                  = 30,
                PhoneNumber          = "123456789",
                BloodGroup           = BloodGroup.A,
                RhesusFactor         = RhesusFactor.Negative,
                Country              = "Bulgaria",
                City                 = "Sofia",
                AdressDescription    = "Sofia",
                DonorAveilableStatus = EmergencyStatus.WithinDay,
                ExaminationDate      = DateTime.UtcNow,
                DiseaseName          = "none",
            };

            return(input);
        }
        private DonorDataProfileInputModel SeedInputs()
        {
            // Seeding input of donorData
            var input = new DonorDataProfileInputModel
            {
                Id                   = "123456",
                UserName             = "******",
                FirstName            = "FirstName",
                MiddleName           = "MiddleName",
                LastName             = "LastName",
                Age                  = 30,
                PhoneNumber          = "123456789",
                BloodGroup           = (BloodGroup)1,
                RhesusFactor         = (RhesusFactor)1,
                Country              = "Bulgaria",
                City                 = "Sofia",
                AdressDescription    = "Sofia",
                DonorAveilableStatus = EmergencyStatus.AsSoonAsPossible,
                ExaminationDate      = DateTime.UtcNow,
                DiseaseName          = "None",
            };

            return(input);
        }