Example #1
0
        public async Task GetDistrictsByName_WithExistingName_ShouldReturnDistrictByName()
        {
            this.SeedTestData(this.DbContext);

            DistrictServiceModel expected = this.DbContext.Districts.To <DistrictServiceModel>().First();
            DistrictServiceModel actual   = await this.DistrictsServiceMock.GetDistrictByName(expected.Name);

            Assert.True(
                expected.Name == actual.Name,
                "DistrictsService GetDistrictByName() not works properly!");
        }
Example #2
0
        public async Task <DistrictServiceModel> GetDistrictByName(string name)
        {
            var districtFromDb = await this.districtRepository
                                 .All()
                                 .FirstOrDefaultAsync(d => d.Name == name);

            //TODO Map?
            DistrictServiceModel district = new DistrictServiceModel();

            district.Id   = districtFromDb.Id;
            district.Name = districtFromDb.Name;

            if (district == null)
            {
                throw new NullReferenceException();
            }

            return(district);
        }
Example #3
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("/"));
        }
Example #4
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("/"));
        }