示例#1
0
        public async Task <IActionResult> Create(EmployerCreateModel input)
        {
            var ownerId = this.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            //TODO CHEK FOR EmployersCount! And add it to userModel
            //TODO clear try catch and make validation attributes !!! or blazor validation
            var owner = await this.usersService.GetUserAsync <UserViewModel>(ownerId);

            if (owner.CompanyId == null)
            {
                return(this.RedirectToAction("Create", "Companies", new { area = "Owners" }));
            }

            try
            {
                await this.employeesManagerService.CreateAsync(input);
            }
            catch (Exception e)
            {
                this.ModelState.AddModelError(string.Empty, e.Message);
            }

            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            return(this.RedirectToAction("Index"));
        }
        public async Task <int> CreateAsync(EmployerCreateModel input)
        {
            var address = await this.addressService.CreateAsync(input.AddressCountry, input.AddressCity, input.AddressStreet, input.AddressZipCode);

            var jobTitle = await this.jobTitlesService.CreateAsync(input.JobTitleName);

            if (this.employersRepository.All().Select(x => x.PhoneNumber).Contains(input.PhoneNumber))
            {
                throw new Exception($"PhoneNumber {input.PhoneNumber} is already in use from another employer in your company.");
            }

            if (this.employersRepository.All().Select(x => x.Email).Contains(input.Email))
            {
                throw new Exception($"Email {input.Email} is already in use from another employer in your company.");
            }

            var employer = new Employer
            {
                FirstName   = input.FirstName,
                MiddleName  = input.MiddleName,
                LastName    = input.LastName,
                CompanyId   = input.CompanyId,
                AddressId   = address,
                JobTitleId  = jobTitle,
                Email       = input.Email,
                PhoneNumber = input.PhoneNumber,
                OwnerId     = input.OwnerId,
            };

            await this.employersRepository.AddAsync(employer);

            return(await this.employersRepository.SaveChangesAsync());
        }
示例#3
0
        public async Task <IActionResult> Create()
        {
            var ownerId = this.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
            var owner   = await this.usersService.GetUserAsync <UserViewModel>(ownerId);

            if (owner.CompanyId == null)
            {
                return(this.RedirectToAction("Create", "Companies", new { area = "Owners" }));
            }

            var viewModel = new EmployerCreateModel
            {
                OwnerId   = ownerId,
                CompanyId = owner.CompanyId,
            };

            return(this.View(viewModel));
        }