Esempio n. 1
0
        public async Task EditParent_WithInCorrectId_ShouldReturnNullRef()
        {
            this.SeedTestData(this.DbContext);
            ParentServiceModel parentToEdit = this.DbContext.Parents.First().To <ParentServiceModel>();

            int id = 100;
            await Assert.ThrowsAsync <ArgumentNullException>(
                () => this.ParentssServiceMock.Edit(id, parentToEdit));
        }
Esempio n. 2
0
        public async Task DeleteParent_ShouldDeleteParent()
        {
            this.SeedTestData(this.DbContext);

            ParentServiceModel parentToDelete = this.DbContext.Parents.First().To <ParentServiceModel>();

            var result = await this.ParentssServiceMock.Delete(parentToDelete.Id);

            Assert.True(
                result = true,
                "ParentsService Edit() not works properly!");
        }
Esempio n. 3
0
        public async Task <bool> Create(ClaimsPrincipal userIdentity, ParentServiceModel parentServiceModel)
        {
            if (parentServiceModel == null)
            {
                throw new ArgumentNullException(nameof(parentServiceModel));
            }

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

            var parent = parentServiceModel.To <Parent>();

            parent.UserId = userId;

            await this.parentsRepository.AddAsync(parent);

            var result = await this.parentsRepository.SaveChangesAsync();

            return(result > 0);
        }
Esempio n. 4
0
        public async Task Edit_ShouldEditParent()
        {
            this.SeedTestData(this.DbContext);

            ParentServiceModel parentToEdit = this.DbContext.Parents.First().To <ParentServiceModel>();

            parentToEdit.PhoneNumber = "00000000";

            var result = await this.ParentssServiceMock.Edit(parentToEdit.Id, parentToEdit);

            ParentServiceModel editedParent = this.DbContext.Parents.First().To <ParentServiceModel>();

            Assert.True(
                result = true,
                "ParentsService Edit() not works properly!");
            Assert.True(
                editedParent.PhoneNumber == "00000000",
                "ParentsService Edit() not works properly!");
        }
Esempio n. 5
0
        public async Task GetParentById_WithCorrectInputData_ShouldReturnParent()
        {
            this.SeedTestData(this.DbContext);

            ParentServiceModel expected = this.DbContext.Parents.First().To <ParentServiceModel>();

            ParentServiceModel actual = await this.ParentssServiceMock.GetParentById(expected.Id);

            Assert.True(
                expected.FirstName == actual.FirstName,
                "ParentsService GetParentById() not works properly!");
            Assert.True(
                expected.MiddleName == actual.MiddleName,
                "ParentsService GetParentById() not works properly!");
            Assert.True(
                expected.LastName == actual.LastName,
                "ParentsService GetParentById() not works properly!");
            Assert.True(
                expected.UCN == actual.UCN,
                "ParentsService GetParentById() not works properly!");
        }
Esempio n. 6
0
        public async Task <bool> Edit(int id, ParentServiceModel parentServiceModel)
        {
            Parent parentToEdit = await this.parentsRepository.All()
                                  .FirstOrDefaultAsync(p => p.Id == id);

            if (parentToEdit == null)
            {
                throw new ArgumentNullException(string.Format(GlobalConstants.NullReferenceParentId, id));
            }

            parentToEdit.FirstName      = parentServiceModel.FirstName;
            parentToEdit.MiddleName     = parentServiceModel.MiddleName;
            parentToEdit.LastName       = parentServiceModel.LastName;
            parentToEdit.PhoneNumber    = parentServiceModel.PhoneNumber;
            parentToEdit.WorkName       = parentServiceModel.WorkName;
            parentToEdit.WorkDistrictId = parentServiceModel.WorkDistrictId;

            parentToEdit.UCN  = parentToEdit.UCN;
            parentToEdit.Role = parentToEdit.Role;

            var addressToEdit = (await this.parentsRepository.All()
                                 .SingleOrDefaultAsync(a => a.AddressId == parentServiceModel.AddressId)).Address;

            addressToEdit.PermanentDistrictId = parentServiceModel.Address.PermanentDistrictId;
            addressToEdit.CurrentDistrictId   = parentServiceModel.Address.CurrentDistrictId;
            addressToEdit.CurrentCity         = parentServiceModel.Address.CurrentCity;
            addressToEdit.PermanentCity       = parentServiceModel.Address.PermanentCity;
            addressToEdit.Current             = parentServiceModel.Address.Current;
            addressToEdit.Permanent           = parentServiceModel.Address.Permanent;

            var addressResult = await this.addressesService.UpdateRepository(addressToEdit);

            this.parentsRepository.Update(parentToEdit);
            var result = await this.parentsRepository.SaveChangesAsync();

            return(result > 0);
        }
Esempio n. 7
0
        public async Task <IActionResult> Create(CreateParentInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                var allParentsRole = new List <string>()
                {
                    "Майка", "Баща"
                };
                this.ViewData["ParentsRole"] = allParentsRole;

                var allDistricts = this.districtsService.GetAllDistricts();
                this.ViewData["Districts"] = allDistricts.Select(d => new CreateParentDistrictViewModel {
                    Name = d.Name
                }).ToList();

                var allCityNames = new List <string>()
                {
                    "София", "Друг"
                };
                this.ViewData["CityNames"] = allCityNames;

                return(this.View(input));
            }

            if (input.AddressCurrentDistrictName == null)
            {
                input.AddressCurrentDistrictName = input.AddressPermanentDistrictName;
            }

            if (input.AddressCurrent == null)
            {
                input.AddressCurrent = input.AddressPermanent;
            }

            AddressDetailsServiceModel address = new AddressDetailsServiceModel
            {
                Permanent         = input.AddressPermanent,
                Current           = input.AddressCurrent,
                CurrentCity       = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity),
                CurrentDistrict   = await this.districtsService.GetDistrictByName(input.AddressCurrentDistrictName),
                PermanentCity     = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity),
                PermanentDistrict = await this.districtsService.GetDistrictByName(input.AddressPermanentDistrictName),
            };

            DistrictServiceModel workDistrict = await this.districtsService.GetDistrictByName(input.WorkDistrictName);

            ClaimsPrincipal userIdentity = this.User;

            ParentServiceModel parent = input.To <ParentServiceModel>();

            parent.WorkDistrict = workDistrict;
            parent.Address      = address;

            var role = await this.parentsService.GetParentsRoleByUser(userIdentity);

            if ((role == ParentRole.Майка.ToString() || role == ParentRole.Баща.ToString()) && input.ParentRole == role)
            {
                return(this.BadRequest(GlobalConstants.UniqueParentRole));
            }

            parent.Role = (ParentRole)Enum.Parse(typeof(ParentRole), input.ParentRole);

            await this.parentsService.Create(userIdentity, parent);

            return(this.Redirect("/"));
        }
Esempio n. 8
0
        public async Task <IActionResult> Edit(int id, EditParentInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                var allParentsRole = new List <string>()
                {
                    "Майка", "Баща"
                };
                this.ViewData["ParentsRole"] = allParentsRole;

                var allDistricts = this.districtsService.GetAllDistricts();
                this.ViewData["Districts"] = allDistricts.Select(d => new CreateParentDistrictViewModel {
                    Name = d.Name
                }).ToList();

                var allCityNames = new List <string>()
                {
                    "София", "Друг"
                };
                this.ViewData["CityNames"] = allCityNames;

                return(this.View(input));
            }

            ParentServiceModel parentToEdit = await this.parentsService.GetParentById(id);

            var addressId = parentToEdit.AddressId;
            AddressDetailsServiceModel address = await this.addressesService.GetAddressDetailsById(addressId);

            address.Permanent       = input.AddressPermanent;
            address.Current         = input.AddressCurrent;
            address.CurrentCity     = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity);
            address.CurrentDistrict = await this.districtsService.GetDistrictByName(input.AddressCurrentDistrictName);

            address.CurrentDistrictId = address.CurrentDistrict.Id;
            address.PermanentCity     = (CityName)Enum.Parse(typeof(CityName), input.AddressCurrentCity);
            address.PermanentDistrict = await this.districtsService.GetDistrictByName(input.AddressPermanentDistrictName);

            address.PermanentDistrictId = address.PermanentDistrict.Id;

            DistrictServiceModel workDistrict = await this.districtsService.GetDistrictByName(input.WorkDistrictName);

            ClaimsPrincipal userIdentity = this.User;

            parentToEdit.FirstName   = input.FirstName;
            parentToEdit.MiddleName  = input.MiddleName;
            parentToEdit.LastName    = input.LastName;
            parentToEdit.PhoneNumber = input.PhoneNumber;
            parentToEdit.WorkName    = input.WorkName;

            parentToEdit.WorkDistrictId = workDistrict.Id;
            parentToEdit.Address        = address;
            parentToEdit.Role           = (ParentRole)Enum.Parse(typeof(ParentRole), input.ParentRole);

            await this.parentsService.Edit(id, parentToEdit);

            var candidatesOfParents = this.candidatesService.GetCandidatesOfParent(userIdentity, id).ToList();

            foreach (var candidate in candidatesOfParents)
            {
                await this.calculatorService.EditBasicScoresByCriteria(candidate.Id);
            }

            return(this.Redirect("/"));
        }
Esempio n. 9
0
        public async Task <IActionResult> Create(CreateCandidateInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                var motherFullName = await this.parentsService
                                     .GetParentFullNameByRole(this.User, ParentRole.Майка);

                var motherList = new List <string>
                {
                    $"{motherFullName}",
                    ParentRole.Друг.ToString(),
                    ParentRole.Няма.ToString(),
                };

                var fatherFullName = await this.parentsService
                                     .GetParentFullNameByRole(this.User, ParentRole.Баща);

                var fatherList = new List <string>
                {
                    $"{fatherFullName}",
                    ParentRole.Друг.ToString(),
                    ParentRole.Няма.ToString(),
                };

                this.ViewData["Mother"] = motherList;
                this.ViewData["Father"] = fatherList;

                return(this.View(input));
            }

            ClaimsPrincipal userIdentity = this.User;

            var parents = this.parentsService.GetParentsWithOtherAndNull(userIdentity);

            ParentServiceModel motherServiceModel = await parents.Where(p => p.FullName.TrimEnd().Equals(input.MotherFullName)).FirstOrDefaultAsync();

            ParentServiceModel fatherServiceModel = await parents.Where(p => p.FullName.TrimEnd().Equals(input.FatherFullName)).FirstOrDefaultAsync();

            CandidateServiceModel model = input.To <CandidateServiceModel>();

            model.MotherId = motherServiceModel.Id;
            model.FatherId = fatherServiceModel.Id;

            await this.candidatesService.Create(userIdentity, model);

            var candidatesOfMother = this.candidatesService.GetCandidatesOfParent(userIdentity, model.MotherId).ToList();
            var candidatesOfFather = this.candidatesService.GetCandidatesOfParent(userIdentity, model.FatherId).ToList();

            if (candidatesOfFather.Count >= GlobalConstants.ChildrenInFamily)
            {
                foreach (var candidate in candidatesOfFather)
                {
                    await this.calculatorService.EditBasicScoresByCriteria(candidate.Id);
                }
            }

            if (candidatesOfMother.Count >= GlobalConstants.ChildrenInFamily)
            {
                foreach (var candidate in candidatesOfMother)
                {
                    await this.calculatorService.EditBasicScoresByCriteria(candidate.Id);
                }
            }

            return(this.Redirect("/"));
        }