Пример #1
0
        public IActionResult Create(EmployeeCreateDto model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = null;
                if (model.Photos != null && model.Photos.Count > 0)
                {
                    foreach (IFormFile photo in model.Photos)
                    {
                        string uploadsFolder = Path.Combine(_hostingEnvironment.WebRootPath, "images");
                        uniqueFileName = Guid.NewGuid().ToString() + "_" + photo.FileName;
                        string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                        photo.CopyTo(new FileStream(filePath, FileMode.Create));
                    }
                }

                Employee newEmployee = new Employee
                {
                    Name        = model.Name,
                    Email       = model.Email,
                    Departament = model.Departament,
                    PhotoPath   = uniqueFileName
                };

                _employeeRepository.Add(newEmployee);

                return(RedirectToAction("details", new { id = newEmployee.Id }));
            }

            return(View());
        }
        public async Task <IActionResult> Add(EmployeeCreateDto employeeCreateDto)
        {
            ApiResponse <EmployeeReadDto> response;
            var employee = _mapper.Map <Employee>(employeeCreateDto);

            try
            {
                var emailExist = await _employeeRepository.GetByEmail(employee.Email);

                if (emailExist != null)
                {
                    response = new ApiResponse <EmployeeReadDto>(null)
                    {
                        Message = "Useer Already exist"
                    };
                    return(Conflict(response));
                }
                await _employeeRepository.Add(employee);
            }
            catch (Exception ex)
            {
                response = new ApiResponse <EmployeeReadDto>(null)
                {
                    Message = ex.Message
                };
                return(StatusCode(StatusCodes.Status500InternalServerError, response));
            }
            var employeeReadDto = _mapper.Map <EmployeeReadDto>(employee);

            response = new ApiResponse <EmployeeReadDto>(employeeReadDto)
            {
                Message = "Created"
            };
            return(Ok(response));
        }
        public async Task CanCreateAndDeleteUsers()
        {
            var newEmployee = new EmployeeCreateDto()
            {
                CompanyId    = 1,
                DepartmentId = 1,
                FirstName    = "TestFirstName",
                LastName     = "TestLastName",
                BirthDate    = new DateTime(1991, 8, 7),
                Address      = "TestAddress"
            };
            // Save test employee
            var employee = await _httpClientHelper.PostAsync <EmployeeCreateDto, EmployeeDto>(_employeesBaseUrl + "create", newEmployee).ConfigureAwait(false);

            // Create test user
            var newUser = new UserCreateDto()
            {
                EmployeeId = employee.EmployeeId,
                Username   = "******",
                Password   = "******"
            };

            var user = await _httpClientHelper.PostAsync <UserCreateDto, UserDto>(_usersBaseUrl + "create", newUser).ConfigureAwait(false);

            Assert.Equal("testuser", user.Username);

            // Delete test user
            await _httpClientHelper.DeleteAsync(_usersBaseUrl + $"DeleteUserByEmployeeIdAsync{API_VERSION}/{user.EmployeeId}").ConfigureAwait(false);

            // Delete test employee
            await _httpClientHelper.DeleteAsync(_employeesBaseUrl + $"DeleteEmployeeById{API_VERSION}/{employee.EmployeeId}").ConfigureAwait(false);
        }
        public async Task <ActionResult <EmployeeDto> > PostEmployees(EmployeeCreateDto employeeDto)
        {
            Employee employee = new Employee {
                Name      = employeeDto.Name,
                BirthDate = employeeDto.BirthDate.Date,
                Salary    = employeeDto.Salary,
                Sex       = employeeDto.Sex
            };

            try
            {
                _context.Employees.Add(employee);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                throw;
            }

            return(CreatedAtAction("GetEmployees", new { id = employee.IdEmployee }, new EmployeeDto {
                IdEmployee = employee.IdEmployee,
                Name = employee.Name,
                BirthDate = employee.BirthDate.Date,
                Salary = employee.Salary,
                Sex = employee.Sex
            }));
        }
Пример #5
0
        public async Task <IActionResult> EditCustomersAsync(string id, [FromForm] EmployeeCreateDto editDto)
        {
            var oldEmployee = await context.Employees.FindAsync(Convert.ToInt32(id));   //原先的对象

            if (oldEmployee == null)
            {
                return(NotFound());
            }



            //Auto映射   由于有的数据没有值默认是0 .在映射时都是0 ,所以的自己初始化一下
            if (editDto.UploadFile == null)
            {
                oldEmployee.HeadImage = oldEmployee.HeadImage;
            }
            oldEmployee.Name  = editDto.Name;
            oldEmployee.Phone = editDto.Phone;
            oldEmployee.Email = editDto.Email;


            //文件上传
            {
                if (editDto.UploadFile != null)
                {
                    if (editDto.UploadFile.Length > 25165824)
                    {
                        return(Ok(new { code = 1, msg = "文件不能大于3M!" }));
                    }
                    //文件名复杂,避免重复覆盖
                    string fileName = oldEmployee.Name + oldEmployee.Email + oldEmployee.Phone + editDto.UploadFile.FileName;

                    //设置文件存储的路劲
                    string filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "CustomerImg", fileName);

                    //服务端保存文件
                    using (var stream = System.IO.File.Create(filePath))
                    {
                        await editDto.UploadFile.CopyToAsync(stream);
                    }
                    oldEmployee.HeadImage = Request.Scheme + "://" + Request.Host + "/CustomerImg/" + fileName;
                }
            }


            try
            {
                context.Employees.Update(oldEmployee);

                await context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                throw;
            }

            return(Ok());
        }
Пример #6
0
        public async Task <IActionResult> CreateEmployee([FromForm] EmployeeCreateDto createDto)
        {
            var id = Convert.ToInt32(User.Identity.Name);
            //生成密钥
            SymmetricSecurityKey key = new SymmetricSecurityKey(System.Text.Encoding.ASCII.GetBytes("asdadhajhdkjahsdkjahdkj9au8d9adasidoad89asu813e"));
            //Auto映射
            var employee = mapper.Map <Employees>(createDto);

            employee.CreateID    = id;
            employee.Code        = Guid.NewGuid().ToString();
            employee.CreateTime  = DateTime.Now;
            employee.HeadImage   = "https://www.zhangqueque.top:5001/UserImg/1_1_1.png";
            employee.IsDel       = 0;
            employee.EmployeePID = 1;
            //employee.Password = "******";
            employee.Password = MD5Encrypt.Encrypt(employee.Password);



            if (createDto.UploadFile != null)
            {
                if (createDto.UploadFile.Length > 25165824)
                {
                    return(Ok(new { code = 1, msg = "文件不能大于3M!" }));
                }
                //文件名复杂,避免重复覆盖
                string fileName = employee.Name + employee.Email + employee.Phone + createDto.UploadFile.FileName;

                //设置文件存储的路劲
                string filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "CustomerImg", fileName);

                //服务端保存文件
                using (var stream = System.IO.File.Create(filePath))
                {
                    await createDto.UploadFile.CopyToAsync(stream);
                }
                employee.HeadImage = Request.Scheme + "://" + Request.Host + "/CustomerImg/" + fileName;
            }


            await context.Employees.AddAsync(employee);

            await context.SaveChangesAsync();


            Employees_Roles employees_Roles = new Employees_Roles();

            employees_Roles.EmployeeID   = employee.ID;
            employees_Roles.EmployeeName = employee.Name;
            employees_Roles.RoleID       = 3;
            employees_Roles.RoleName     = "员工";

            await context.Employees_Roles.AddAsync(employees_Roles);

            await context.SaveChangesAsync();

            return(Ok(new { code = 0, msg = "员工添加成功!" }));
        }
Пример #7
0
        public Guid Create(EmployeeCreateDto employeeCreateDto)
        {
            var employee = new Employee(employeeCreateDto.Name, employeeCreateDto.Position);

            _employeeRepository.Insert(employee);
            _unitOfWork.Save();

            return(employee.Id);
        }
Пример #8
0
        public async Task CreateEmployee(EmployeeCreateDto employeeCreateDto)
        {
            var employeeModel = _mapper.Map <Employee>(employeeCreateDto);

            _repository.CreateEmployee(employeeModel);
            _repository.SaveChanges();     // VIKTIG!!

            var employeeReadDto = _mapper.Map <EmployeeReadDto>(employeeModel);
        }
Пример #9
0
        public async Task <ActionResult> Post([FromBody] EmployeeCreateDto employeeCreateDto)
        {
            var employee = mapper.Map <Employee>(employeeCreateDto);

            context.Add(employee);
            await context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task <ActionResult <EmployeeReadDto> > CreateEmployee(EmployeeCreateDto employeeCreateDto)
        {
            var employeeModel = _mapper.Map <Employee>(employeeCreateDto);
            await _repository.CreateAsync(employeeModel);

            var employeeReadDto = _mapper.Map <EmployeeReadDto>(employeeModel);

            return(CreatedAtRoute(nameof(GetEmployeeById), new { Id = employeeReadDto.Id }, employeeReadDto));
        }
Пример #11
0
        public ActionResult <EmployeeReadDto> CreateEmployee(EmployeeCreateDto employeeCreateDto)
        {
            var employeeModel = _mapper.Map <EmployeeModel>(employeeCreateDto);

            _repository.CreateEmployee(employeeModel);
            _repository.SaveChanges();
            var employeeReadDto = _mapper.Map <EmployeeReadDto>(employeeModel);

            return(CreatedAtRoute(nameof(GetEmployeeById), new { Id = employeeReadDto.EmployeeId }, employeeReadDto));
        }
Пример #12
0
        public ActionResult <EmployeeReadDto> Create(EmployeeCreateDto employeeCreateDto)
        {
            var employeeModel = _mapper.Map <Employee>(employeeCreateDto);

            _employeeRepo.CreateNewEmployee(employeeModel);
            _employeeRepo.SaveChanges();

            var empReadDto = _mapper.Map <EmployeeReadDto>(employeeModel);

            return(CreatedAtRoute(nameof(GetEmployee), new { Id = empReadDto.Id }, empReadDto));
        }
Пример #13
0
        public ActionResult <EmployeeReadDto> CreateEmployee(EmployeeCreateDto emp)
        {
            var empl = _mapper.Map <Employee>(emp);

            _repository.CreateEmployee(empl);
            _repository.SaveChanges();

            var emplRead = _mapper.Map <EmployeeReadDto>(empl);

            return(CreatedAtAction(nameof(GetEmployeeById), new { id = emplRead.Id }, emplRead));
        }
Пример #14
0
        public async Task <int> Create(EmployeeCreateDto dto, string userId)
        {
            var createdEmployee = _mapper.Map <EmployeeDbEntity>(dto);

            createdEmployee.CreatedBy = userId;

            await _dbContext.Employees.AddAsync(createdEmployee);

            await _dbContext.SaveChangesAsync();

            return(createdEmployee.Id);
        }
Пример #15
0
        public async Task <IActionResult> CreateEmployee(EmployeeCreateDto employeeCreateDto)
        {
            var employee = _mapper.Map <Employee>(employeeCreateDto);

            await _unitOfWork.Employees.AddAsync(employee);

            if (await _unitOfWork.SaveAsync())
            {
                return(StatusCode(201));
            }

            throw new Exception("Creating employee failed on save");
        }
Пример #16
0
        public async Task <ActionResult> Put(int Id, [FromBody] EmployeeCreateDto employeeCreateDto)
        {
            var employee = await context.Employees.FirstOrDefaultAsync(x => x.Id == Id);

            if (employee == null)
            {
                return(NotFound());
            }

            employee = mapper.Map(employeeCreateDto, employee);

            await context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task RegisterCompanyWithOwner(NewCustomerDto customer)
        {
            using (var uow = UnitOfWorkProvider.Create())
            {
                try
                {
                    var company = new CompanyDto
                    {
                        Ico      = customer.Ico,
                        JoinDate = DateTime.Now,
                        Name     = customer.Name
                    };

                    var employee = new EmployeeCreateDto()
                    {
                        Email        = customer.Email,
                        FirstName    = customer.FirstName,
                        LastName     = customer.LastName,
                        PasswordHash = customer.Password,
                        Company      = company,
                        Role         = Role.Owner
                    };



                    // no need to create company as it is created in employee service by default
                    await _employeeService.RegisterCustomerAsync(employee);

                    await uow.Commit();

                    int companyId = (await _companyService.GetByIco(customer.Ico)).Id;
                    var payment   = new PaymentDto
                    {
                        Amount         = 300,
                        CompanyId      = companyId,
                        DueDate        = DateTime.Now.AddDays(30),
                        VariableNumber = "1212100" + companyId
                    };

                    _paymentService.Create(payment);
                    await uow.Commit();
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e);
                }
            }
        }
        public async Task RegisterCustomerAsync(EmployeeCreateDto employeeCreateDto)
        {
            var customer = Mapper.Map <Employee>(employeeCreateDto);

            if (await GetEmployeeByEmail(customer.Email) != null)
            {
                throw new ArgumentException();
            }

            var password = CreateHash(employeeCreateDto.PasswordHash);

            customer.PasswordHash = password.Item1;
            customer.PasswordSalt = password.Item2;

            _repository.Create(customer);
        }
Пример #19
0
        public virtual async Task <EmployeeListDto> CreateAsync(EmployeeCreateDto input)
        {
            // TODO:计算农历生日并保存
            if (await _employeeRepository.AnyAsync(e => e.IdCardNumber == input.IdCardNumber || e.PhoneNumber == input.PhoneNumber))
            {
                throw new UserFriendlyException(L["Existed", L["Employee"]]);
            }
            var entity = ObjectMapper.Map <EmployeeCreateDto, Employee>(input);

            entity.Age            = input.Birthday.GetAgeByBirthday();
            entity.EmployeeNumber = GuidGenerator.Create().ToString("N");
            entity.JoinDate       = DateTime.Now;
            entity = await _employeeRepository.InsertAsync(entity);

            return(ObjectMapper.Map <Employee, EmployeeListDto>(entity));
        }
        public async Task CanCreateAndDeleteEmployee()
        {
            var newEmployee = new EmployeeCreateDto
            {
                FirstName    = "Sylvester",
                LastName     = "Holt",
                BirthDate    = new DateTime(1995, 8, 7),
                CompanyId    = 1,
                DepartmentId = 1,
                Address      = "New Address",
                Password     = "******",
                Username     = "******"
            };
            var employee = await _httpClientHelper.PostAsync <EmployeeCreateDto, EmployeeDto>(_baseUrl + "create", newEmployee).ConfigureAwait(false);

            Assert.Equal(newEmployee.FirstName, employee.FirstName);
            await _httpClientHelper.DeleteAsync(_baseUrl + $"DeleteEmployeeById{API_VERSION}/{employee.EmployeeId}").ConfigureAwait(false);
        }
Пример #21
0
        public ActionResult <EmployeeCreateDto> CreateEmployee(EmployeeCreateDto employeeCreateDto)
        {
            try
            {
                var employeeModel = _mapper.Map <Employee>(employeeCreateDto);
                _repository.CreateEmployee(employeeModel);
                _repository.SaveChanges();

                var employeeReadDto = _mapper.Map <EmployeeReadDto>(employeeModel);

                return(CreatedAtRoute(nameof(GetEmployee), new { id = employeeReadDto.id }, employeeReadDto));
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                return(StatusCode(500));
            }
        }
Пример #22
0
        public IActionResult CreateTrail([FromBody] EmployeeCreateDto employeeDto)
        {
            if (employeeDto == null)
            {
                return(BadRequest(ModelState));
            }
            if (_employeeRepo.EmployeeExists(employeeDto.Name))
            {
                ModelState.AddModelError("", "Employee Exists!");
                return(StatusCode(404, ModelState));
            }
            var employeeObj = _mapper.Map <Employee>(employeeDto);

            if (!_employeeRepo.CreateEmployee(employeeObj))
            {
                ModelState.AddModelError("", $"Something went wrong when saving the record {employeeObj.Name}");
                return(StatusCode(500, ModelState));
            }
            return(CreatedAtRoute("GetEmployee", new { employeeId = employeeObj.Id }, employeeObj));
        }
Пример #23
0
        public async Task <IActionResult> CreateEmployeeAsync(
            [FromBody, SwaggerParameter("Employee to create", Required = true)] EmployeeCreateDto employeeToCreate,
            [FromQuery, SwaggerParameter("Request which fields you want returned")] string fields,
            [FromHeader(Name = "accept"), SwaggerParameter("Request Hateoas")] string mediaType)
        {
            var employeeEntity = Mapper.Map <Employee>(employeeToCreate);

            employeeEntity.Id = Guid.NewGuid();

            _employeeRepository.Create(employeeEntity);

            if (!await _employeeRepository.SaveChangesAsync())
            {
                //  change to logging
                throw new Exception("Failed to save employee");
                //  consider to return an error to notify user of failed save
            }

            var employeeFromRepo = await _employeeRepository.GetFirstByConditionAsync(x => x.Id == employeeEntity.Id);

            var employeeToReturn = Mapper.Map <EmployeeDto>(employeeFromRepo);

            if (mediaType == "application/vnd.AO.json+hateoas")
            {
                var shapedEmployee = _controllerHelper.ShapeAndAddLinkToObject(employeeToReturn, "Employee", fields);

                return(CreatedAtRoute("GetEmployee", new { employeeId = employeeToReturn.Id }, shapedEmployee));
            }

            if (!string.IsNullOrWhiteSpace(fields))
            {
                var shapedEmployee = employeeToReturn.ShapeData(fields);

                return(CreatedAtRoute("GetEmployee", new { employeeId = employeeToReturn.Id }, shapedEmployee));
            }

            return(CreatedAtRoute("GetEmployee", new { employeeId = employeeToReturn.Id }, employeeToReturn));
        }
Пример #24
0
        public async Task <IActionResult> CreateAsync([FromBody] EmployeeCreateDto employee, ApiVersion version)
        {
            Logger.LogDebug(nameof(CreateAsync));
            var newEmployee = _employeeFromDtoConverter.Convert(employee);

            if (!await _repositoryFactory.CompanyRepository.ExistsAsync(c => c.CompanyId == employee.CompanyId).ConfigureAwait(false))
            {
                return(NotFound(new { message = $"The Company with id {employee.CompanyId} was not found" }));
            }
            if (!await _repositoryFactory.DepartmentRepository.ExistsAsync(c => c.DepartmentId == employee.DepartmentId).ConfigureAwait(false))
            {
                return(NotFound(new { message = $"The Department with id {employee.DepartmentId} was not found" }));
            }

            var repoEmployee = await _repositoryFactory.EmployeeRepository.AddEmployeeAsync(newEmployee).ConfigureAwait(false);

            var result        = _employeeToDtoConverter.Convert(repoEmployee);
            var createdResult = new ObjectResult(result)
            {
                StatusCode = StatusCodes.Status201Created
            };

            return(createdResult);
        }
Пример #25
0
        public async Task <ActionResult <EmployeeDto> > CreateEmployee(int companyId, EmployeeCreateDto employeeCreateDto)
        {
            if (!await _repository.CompanyExistsAsync(companyId))
            {
                return(NotFound());
            }

            var employee = _mapper.Map <Employee>(employeeCreateDto);

            _repository.AddEmployee(companyId, employee);

            await _repository.SaveChangesAsync();

            var employeeDto = _mapper.Map <EmployeeDto>(employee);

            return(CreatedAtRoute(nameof(GetEmployee),
                                  new
            {
                companyId,
                employeeId = employee.Id     //注意此匿名类中的参数名一定要对应正确
            },
                                  employeeDto));
        }
Пример #26
0
 public virtual async Task <EmployeeListDto> CreateAsync(EmployeeCreateDto input)
 {
     return(await _employeeAppService.CreateAsync(input));
 }
Пример #27
0
 public async Task <IActionResult> Create([FromBody] EmployeeCreateDto dto)
 => await GetResponse(async (userId) =>
                      new ApiResponseViewModel(true, "Employee Created Successfully", await _service.Create(dto, userId)));
Пример #28
0
 public Guid Create([FromBody] EmployeeCreateDto employeeCreateDto)
 {
     return(_employeeService.Create(employeeCreateDto));
 }