Esempio n. 1
0
        public HttpResponseMessage AddEmployee(NewEmployeeDto employee)
        {
            var employeeInfo      = new EmployeeRepository();
            var createNewEmployee = employeeInfo.AddNewEmployee(employee);

            return(Request.CreateResponse(HttpStatusCode.Created, employeeInfo));
        }
        internal Employee AddToProject(int id, NewEmployeeDto employeeDto)
        {
            Employee employee = employeeService.GetEmployee(employeeDto.employeeId);

            GetProjectById(id).Employees.Add(employee);
            context.SaveChanges();
            return(employee);
        }
        public Employee AddEmployee(NewEmployeeDto newEmployeeDto)
        {
            ValidateNames(newEmployeeDto.Firstname, newEmployeeDto.Surname);

            var employee = new Employee
            {
                Firstname = newEmployeeDto.Firstname,
                Surname   = newEmployeeDto.Surname
            };

            return(_employeeRepository.AddEmployee(employee));
        }
Esempio n. 4
0
        public async Task <NewEmployeeDto> Create(NewEmployeeDto newEmployeeDto)
        {
            if (newEmployeeDto == null)
            {
                throw new ArgumentNullException(nameof(newEmployeeDto));
            }

            var password = newEmployeeDto.Password;

            if (string.IsNullOrWhiteSpace(password))
            {
                throw new Exception("Password is required");
            }

            if (_repository.FindByEmail(newEmployeeDto.Email).Result != null)
            {
                throw new Exception("Email \"" + newEmployeeDto.Email + "\" is already taken");
            }

            var newEmployee = _mapper.Map <Employee>(newEmployeeDto);

            if (!newEmployeeDto.IsManualHolidaysInput)
            {
                var currentTime     = _timeService.GetCurrentTime();
                var workedTime      = _timeService.GetWorkDays(newEmployee.WorksFromDate, currentTime);
                var workDaysPerYear = _timeService.GetCurrentYearWorkDays();
                newEmployee.FreeWorkDays = Math.Round(workedTime * ((double)newEmployee.DaysOfVacation / workDaysPerYear), 2);
            }
            else
            {
                if (newEmployeeDto.FreeWorkDays is null)
                {
                    throw new ArgumentNullException();
                }

                newEmployee.FreeWorkDays = (double)newEmployeeDto.FreeWorkDays;
            }


            newEmployee.CurrentAvailableLeaves   = newEmployee.ParentalLeaveLimit;
            newEmployee.NextMonthAvailableLeaves = newEmployee.ParentalLeaveLimit;

            await _repository.Create(newEmployee);

            await _userService.Create(newEmployee, newEmployeeDto);

            await _notificationSettingsService.Create(newEmployee.Id);

            var employeeDto = _mapper.Map <NewEmployeeDto>(newEmployee);

            return(employeeDto);
        }
Esempio n. 5
0
        public EmployeeViewModel AddEmployee(NewEmployeeDto newEmployee)
        {
            try {
                var employee = _factory.EmployeeForInsert(newEmployee);
                _database.Employee.Add(employee);
                _database.Save();

                return(_factory.EmployeeForView(employee));
            } catch (Exception e) {
                _logger.LogError(1, e.Message, e);
                return(null);
            }
        }
        public Employee EmployeeForInsert(NewEmployeeDto updateData)
        {
            try {
                var employee = new Employee();

                employee.FirstName = updateData.FirstName;
                employee.LastName  = updateData.LastName;

                return(employee);
            } catch (Exception e) {
                _logger.LogError(1, e.Message, e);
                return(null);
            }
        }
Esempio n. 7
0
        public async Task <ActionResult> CreateEmployee([FromBody] NewEmployeeDto newEmployee)
        {
            ResponseDto <EmployeeDto> response = new ResponseDto <EmployeeDto>()
            {
                statusCode = "400"
            };

            if (!ModelState.IsValid)
            {
                return(BadRequest(response));
            }

            if (newEmployee.Password != newEmployee.ConfirmPassword)
            {
                response.message = "passwords do not match";
                return(BadRequest(response));
            }

            if (!employeeRepository.IsEmployeeInTransit(newEmployee.Username, newEmployee.LaundryId))
            {
                response.message    = "Unauthorized Registration please contact your employer";
                response.statusCode = "401";
                return(Unauthorized(response));
            }

            try
            {
                EmployeeDto employeeDto = await employeeRepository.CreateEmployeeAsync(newEmployee);

                return(StatusCode(201, new ResponseDto <EmployeeDto>()
                {
                    statusCode = "201", data = employeeDto
                }));
            }
            catch (Exception e)
            {
                if (e.Message == ErrorMessage.UsernameAlreadyExist)
                {
                    response.message = ErrorMessage.UsernameAlreadyExist;
                    return(BadRequest(response));
                }

                response.statusCode = "500";
                return(StatusCode(500, response));
            }
        }
Esempio n. 8
0
        public async Task <User> Create(Employee newEmployee, NewEmployeeDto newEmployeeDto)
        {
            var newUser = new User
            {
                Employee = newEmployee,
                Email    = newEmployee.Email,
                UserName = newEmployee.Email
            };

            var result = await _userManager.CreateAsync(newUser, newEmployeeDto.Password);

            if (result.Succeeded)
            {
                await _userManager.AddToRoleAsync(newUser, newEmployeeDto.Role);

                return(newUser);
            }

            return(null);
        }
Esempio n. 9
0
        public static NewEmployeeDto NewEmployeeDto(int clientId, string password, string email)
        {
            var newEmployeeDto = new NewEmployeeDto
            {
                ClientId = clientId,
                Email    = email,
                Password = password,

                Name               = "EmployeeNameNew",
                Surname            = "EmployeeSurnameNew",
                WorksFromDate      = new DateTime(2019, 07, 06),
                DaysOfVacation     = 20,
                BirthdayDate       = new DateTime(1988, 07, 06),
                ParentalLeaveLimit = 30,
                Role               = "Employee",
                Position           = "Position"
            };

            return(newEmployeeDto);
        }
        public bool AddNewEmployee(NewEmployeeDto employee)
        {
            using (var db = new SqlConnection(ConfigurationManager.ConnectionStrings["Main"].ConnectionString))
            {
                db.Open();

                var newEmployeeRecord = db.Execute(@"INSERT INTO [dbo].[Employees]
                                                ([FirstName]
                                                ,[LastName]
                                                ,[DepartmentId]
                                                ,[HireDate])
                                            VALUES
                                                (@FirstName
                                                ,@LastName
                                                ,@DepartmentId
                                                ,@HireDate)", employee);

                return(newEmployeeRecord == 1);
            }
        }
 public IActionResult AddEmploeeRecord([FromBody] NewEmployeeDto newEmployee)
 {
     if (ModelState.IsValid && newEmployee != null)
     {
         try {
             var employee = _command.AddEmployee(newEmployee);
             if (employee != null)
             {
                 return(StatusCode(201, employee));
             }
             else
             {
                 return(StatusCode(422, "One or more required fields missing for employee"));
             }
         } catch (System.Exception) {
             return(StatusCode(500, "Unkown Error Occured while processing Request, Try Again"));
         }
     }
     else
     {
         return(StatusCode(422, "One or more required fields missing for employee"));
     }
 }
        public ApiResponse <bool> CreateNewEmployee(NewEmployeeDto employee)
        {
            if (employee == null)
            {
                return(new ApiResponse <bool>(responseStatusCode: RestStatusCode.AccountCreationFailed));
            }

            var person = _uow.UserRepository.GetAll(false)
                         .Where(x => x.Email == employee.Email).FirstOrDefault();

            if (person != null)
            {
                return(new ApiResponse <bool>(responseStatusCode: RestStatusCode.EmailExist));
            }

            var personRepo = employee.ToRepo <Person>();
            var userRepo   = employee.ToRepo <User>();

            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(employee.Password, out passwordHash, out passwordSalt);

            userRepo.PasswordHash = passwordHash;
            userRepo.PasswordSalt = passwordSalt;

            personRepo.PersonType = PersonTypeEnum.Employee;
            personRepo.Active     = true;

            using (_uow.BeginTransaction())
            {
                long personId = _uow.PersonRepository.Create(personRepo);
                userRepo.PersonId = personId;
                _uow.UserRepository.Create(userRepo);
                _uow.CommitTransaction();
            }
            return(new ApiResponse <bool>(true));
        }
Esempio n. 13
0
        public async Task <IActionResult> Post(NewEmployeeDto newEmployeeDto)
        {
            var createdEmployee = await _employeesService.Create(newEmployeeDto);

            return(Ok(createdEmployee));
        }
Esempio n. 14
0
 public Employee AddToProject(int id, NewEmployeeDto employeeDto)
 {
     return(projectService.AddToProject(id, employeeDto));
 }
Esempio n. 15
0
        public IActionResult AddEmployee([FromBody] NewEmployeeDto newEmployeeDto)
        {
            var employeeDto = _employeeLogic.AddEmployee(newEmployeeDto);

            return(Created($"v1/employees/{employeeDto.Id}", employeeDto));
        }
 public async Task <IActionResult> CreateNewEmployee(NewEmployeeDto employee)
 {
     return(await Task.Run(() => CallApi(() => _garageService.CreateNewEmployee(employee))));
 }
Esempio n. 17
0
        //private readonly LaundryApiContext _context;
        //private readonly IMapper mapper;
        //private readonly IRepositoryHelper repositoryHelper;
        //private readonly IMailService mailService;
        //public EmployeeRepository(LaundryApiContext _context, IMapper mapper,IRepositoryHelper repositoryHelper, IMailService mailService)
        //{
        //    this._context = _context;
        //    this.mapper = mapper;
        //    this.mailService = mailService;
        //    this.repositoryHelper = repositoryHelper;
        //}


        //public async Task<EmployeeDto> FindEmployeeAsync(Guid id)
        //{
        //    try
        //    {
        //        var employee = await _context.Employees.FindAsync(id);
        //        if (employee == null)
        //            throw new Exception(ErrorMessage.UserDoesNotExist);

        //        var employeeDto = mapper.Map<EmployeeDto>(employee);
        //        return employeeDto;
        //    }
        //    catch(Exception e)
        //    {
        //        if (e.Message == ErrorMessage.UserDoesNotExist)
        //            throw new Exception(ErrorMessage.UserDoesNotExist);

        //        throw new Exception(ErrorMessage.FailedDbOperation);
        //    }

        //}

        //public async Task<EmployeeDto> CreateEmployeeAsync(NewEmployeeDto newEmployeeDto)
        //{
        //    try
        //    {
        //        //update new employee info
        //        var employee = mapper.Map<Employee>(newEmployeeDto);
        //        employee.PasswordHash = HashPassword(newEmployeeDto.Password);
        //        employee.CreatedAt = DateTime.Now;
        //        employee.UpdatedAt = DateTime.Now;
        //        employee.UsernameHash = HashPassword(newEmployeeDto.Username);
        //        employee.ForgotPasswordTime = null;
        //        employee.PasswordResetId = null;
        //        employee.Name = newEmployeeDto.Name.ToLower();
        //        //add employee to db context
        //        await _context.Employees.AddAsync(employee);

        //        //complete db transaction
        //        await _context.SaveChangesAsync();

        //        //update employeeDto object
        //        var employeeDto = mapper.Map<EmployeeDto>(employee);
        //        employeeDto.Password = newEmployeeDto.Password;
        //        return employeeDto;
        //    }
        //    catch (Exception e)
        //    {
        //        if (e.InnerException.ToString().Contains("Cannot insert duplicate key row in object 'dbo.Employees'"))
        //            throw new Exception(ErrorMessage.UsernameAlreadyExist);

        //        throw new Exception(ErrorMessage.FailedDbOperation);
        //    }
        //}

        //public async Task<bool> DeleteEmployee (Guid employeeId,string laundryUsername)
        //{
        //    try
        //    {
        //        Employee employeeInDb= await ValidateRequestParam(employeeId, laundryUsername);

        //        employeeInDb.IsDeleted = true;
        //        await _context.SaveChangesAsync();

        //        return true;
        //    }
        //    catch(Exception e)
        //    {
        //        if (e.Message == ErrorMessage.EmployeeNotOwnedByUser)
        //            throw new Exception(ErrorMessage.EmployeeNotOwnedByUser);

        //        else if (e.Message == ErrorMessage.UserDoesNotExist)
        //            throw new Exception(ErrorMessage.UserDoesNotExist);

        //        throw new Exception(ErrorMessage.FailedDbOperation);
        //    }

        //}

        //public async Task<EmployeeDto> UpdateEmployee(EmployeeDto employee,string laundryUsername)
        //{
        //    Employee employeeInDb=await ValidateRequestParam(employee.Id, laundryUsername);

        //    employeeInDb.Address = employee.Address;
        //    employeeInDb.Name = employee.Name;
        //    employeeInDb.PhoneNumber = employee.PhoneNumber;
        //    employeeInDb.UpdatedAt = DateTime.Now;

        //    _context.SaveChanges();
        //    employee = mapper.Map<EmployeeDto>(employeeInDb);
        //    employee.Laundry = null;
        //    return employee;
        //}


        //public async Task<bool> SendEmployeeRegistrationLink(string employeeEmail,string laundryUsername)
        //{
        //    Laundry laundry = _context.Laundries.SingleOrDefault(x => x.Username == laundryUsername);
        //    try
        //    {
        //        AddEmployeeToTransit(employeeEmail, laundry.Id);
        //        string url = "http://localhost:3000/employee/registration?id=" + laundry.Id;
        //        string mailContent = $"<p> Hi ,</p> <p> Please click <a href='{url}'>here</a> to register as an employee of {laundry.LaundryName} laundry";

        //        await mailService.SendMailAsync(employeeEmail, mailContent, "Employee Registration");
        //        return true;
        //    }
        //    catch(Exception e)
        //    {
        //        if(e.Message==ErrorMessage.UsernameAlreadyExist)
        //        {
        //            string url = "http://localhost:3000/employee/registration?id=" + laundry.Id;
        //            string mailContent = $"<p> Hi ,</p> <p> Please click <a href='{url}'>here</a> to register as an employee of {laundry.LaundryName} laundry";

        //            await mailService.SendMailAsync(employeeEmail, mailContent, "Employee Registration");
        //            return true;
        //        }
        //        return false;
        //    }


        //}

        //private void AddEmployeeToTransit (string employeeEmail, Guid laundryId)
        //{
        //    try
        //    {
        //        EmployeeInTransit e = new EmployeeInTransit() { Email = employeeEmail, LaundryId = laundryId };
        //        _context.EmployeesInTransit.Add(e);
        //        _context.SaveChanges();
        //        return;
        //    }
        //    catch(Exception e)
        //    {
        //        if (e.InnerException.Message.Contains("Violation of UNIQUE KEY constraint 'AK_EmployeesInTransit_Email_LaundryId'"))
        //            throw new Exception(ErrorMessage.UsernameAlreadyExist);

        //        throw new Exception(ErrorMessage.FailedDbOperation);
        //    }


        //}
        //public  bool IsEmployeeInTransit(string employeeEmail,Guid laundryId)
        //{
        //    return _context.EmployeesInTransit.SingleOrDefault(x=> x.Email==employeeEmail && x.LaundryId==laundryId) != null ;
        //}



        //public PagedList<EmployeeDtoPartial> GetPage(int pageSize, string laundryUsername,int pageNumber = 1,string searchParam="")
        //{
        //    var laundry=repositoryHelper.GetLaundryByUsername(laundryUsername);
        //    var employeeList = _context.Employees.Where(x=> x.IsDeleted==false && x.LaundryId==laundry.Id).ToList();
        //    if (searchParam != "")
        //        employeeList = employeeList.Where(x => x.Name.Contains(searchParam.ToLower())).ToList();
        //    var page = employeeList.Skip((pageNumber - 1) * pageSize).Take(pageSize);
        //    var maxPage = employeeList.Count / (decimal)pageSize;
        //    PagedList<EmployeeDtoPartial> obj = new PagedList<EmployeeDtoPartial>()
        //    {
        //        Data = mapper.Map<IEnumerable<EmployeeDtoPartial>>(page),
        //        PageIndex = pageNumber,
        //        PageSize = pageSize,
        //    };
        //    if ( maxPage < 1)
        //        obj.MaxPageIndex = 1;
        //    else
        //    {
        //        int _num;
        //        try
        //        {
        //            _num = Convert.ToInt32(Convert.ToString(maxPage).Split(".")[1]);
        //        }
        //        catch
        //        {
        //            _num = 0;
        //        }

        //        obj.MaxPageIndex = _num > 0 ? Convert.ToInt32(maxPage + 1) : Convert.ToInt32(maxPage);
        //    }



        //    return obj;
        //}


        //private async Task<Employee> ValidateRequestParam(Guid employeeId, string laundryUsername)
        //{
        //    Laundry laundry = _context.Laundries.SingleOrDefault(x => x.Username == laundryUsername);
        //    Employee employeeInDb = await _context.Employees.FindAsync(employeeId);
        //    if (employeeInDb == null)
        //        throw new Exception(ErrorMessage.UserDoesNotExist);

        //    if (employeeInDb.LaundryId != laundry.Id)
        //        throw new Exception(ErrorMessage.EmployeeNotOwnedByUser);

        //    return employeeInDb;
        //}
        public Task <EmployeeDto> CreateEmployeeAsync(NewEmployeeDto newEmployeeDto)
        {
            throw new NotImplementedException();
        }