Beispiel #1
0
        public async Task <EmployeeDto> AddEmployee(EmployeeDto employee)
        {
            try
            {
                var emp = mapDtoToEmployeeEntity(employee);
                int empId;
                using (var _context = new DatabaseContext())
                {
                    _context.Employee.Add(emp);
                    empId = await _context.SaveChangesAsync();

                    foreach (int i in employee.skillsId)
                    {
                        EmployeeTechnology et = new EmployeeTechnology();
                        et.EmployeeId   = emp.Id;
                        et.TechnologyId = i;
                        _context.EmployeeTechnology.Add(et);
                        _context.SaveChanges();
                    }
                }

                employee.Id = empId;
                return(employee);
            }
            catch (Exception e)
            {
                throw;
            }
        }
Beispiel #2
0
        public async Task <EmployeeDto> UpdateEmployee(EmployeeDto edto)
        {
            try
            {
                using (var _context = new DatabaseContext())
                {
                    Employee e = await _context.Employee.Where(x => x.BSIPLid == edto.BSIPLid).FirstOrDefaultAsync <Employee>();

                    e = mapDtoToEmployeeEntity(edto, e);
                    _context.SaveChanges();

                    var technologies = await _context.EmployeeTechnology.Where(x => x.EmployeeId == edto.BSIPLid).ToListAsync <EmployeeTechnology>();

                    List <int> pskillsid = new List <int>();
                    foreach (EmployeeTechnology t in technologies)
                    {
                        //pskillsid.Add(t.TechnologyId);
                        if (edto.skillsId.Exists(x => x.Equals(t.TechnologyId)))
                        {
                            edto.skillsId.Remove(t.TechnologyId);
                        }
                        else
                        {
                            edto.skillsId.Add(t.TechnologyId);
                        }
                    }
                    if (edto.skillsId != null)
                    {
                        foreach (int i in edto.skillsId)
                        {
                            EmployeeTechnology et = await _context.EmployeeTechnology.Where(x => (x.TechnologyId == i && x.EmployeeId == edto.BSIPLid)).FirstOrDefaultAsync <EmployeeTechnology>();

                            if (et != null)
                            {
                                _context.EmployeeTechnology.Remove(et);
                            }
                            else
                            {
                                EmployeeTechnology ets = new EmployeeTechnology();
                                ets.EmployeeId   = edto.BSIPLid;
                                ets.TechnologyId = i;

                                _context.EmployeeTechnology.Add(ets);
                            }
                            _context.SaveChanges();
                        }
                    }
                }
                return(edto);
            }
            catch (Exception e)
            {
                throw;
            }
        }