示例#1
0
        public async Task <AddressDetailsServiceModel> GetAddressDetailsById(int id)
        {
            AddressDetailsServiceModel address = (await this.addressesRepository.All()
                                                  .FirstOrDefaultAsync(a => a.Id == id))
                                                 .To <AddressDetailsServiceModel>();

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

            return(address);
        }
示例#2
0
        public async Task GetAddressById_WithCorrectInputData_ShouldReturnAddressDetails()
        {
            this.SeedTestData(this.DbContext);
            AddressDetailsServiceModel expected = this.DbContext.Addresses.First().To <AddressDetailsServiceModel>();
            AddressDetailsServiceModel actual   = await this.AddressesServiceMock.GetAddressDetailsById(1);

            Assert.True(
                expected.PermanentDistrictId == actual.PermanentDistrictId,
                "AddressesService GetAddressById() not works properly!");
            Assert.True(
                expected.CurrentDistrictId == actual.CurrentDistrictId,
                "AddressesService GetAddressById() not works properly!");
            Assert.True(
                expected.Permanent == actual.Permanent,
                "AddressesService GetAddressById() not works properly!");
            Assert.True(
                expected.Current == actual.Current,
                "AddressesService GetAddressById() not works properly!");
        }
示例#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("/"));
        }
示例#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("/"));
        }