public async Task <ApiResponse <DutyDto> > UpdateAsync(DutyDto dutyDto)
        {
            var employee = await _employeeRepository.GetEmployeeByUsernameAsync(dutyDto.Employee.Username);

            var dutyToUpdate = await _dutyRepository.FindEmployeeDutyByStartShiftAndUsernameAsync(dutyDto);

            if (dutyDto.StartShift == dutyDto.Employee.EmployeeDuties.First().StartShift)
            {
                return(new ApiResponse <DutyDto>());
            }

            dutyToUpdate.StartShift      = dutyDto.StartShift;
            dutyToUpdate.EndShift        = dutyDto.EndShift;
            dutyToUpdate.Employee.UserId = employee.UserId;

            _dutyRepository.Update(dutyToUpdate);
            await _context.SaveChangesAsync();

            return(new ApiResponse <DutyDto>
            {
                Response = new DutyDto
                {
                    StartShift = dutyDto.StartShift,
                    EndShift = dutyDto.EndShift,
                    Employee = dutyDto.Employee
                }
            });
        }
Beispiel #2
0
        public async Task <Object> AddDuty([FromBody] DutyDto dutyDto)
        {
            var duty = _mapper.Map <DutyDto, Duty>(dutyDto);
            await _databaseContext.Duties.AddAsync(duty);

            await _databaseContext.SaveChangesAsync();

            return(Ok("Обязанность успешно добавлена"));
        }
Beispiel #3
0
        /// <summary>
        /// Get duty by username and start shift
        /// </summary>
        /// <param name="dutyDto">The employee duty information to find</param>
        /// <returns></returns>
        public async Task <Duty> FindEmployeeDutyByStartShiftAndUsernameAsync(DutyDto dutyDto)
        {
            var duty = await _dataContext.Duties

                       // filter by logged employee
                       .Where(u => u.Employee.Username == dutyDto.Employee.Username)
                       .Where(s => s.StartShift == dutyDto.Employee.EmployeeDuties.First().StartShift)
                       .FirstAsync();

            return(duty);
        }
Beispiel #4
0
 /// <summary>
 /// Método para crear tareas asignadas a la familia.
 /// </summary>
 /// <param name="duty"></param>
 /// <returns></returns>
 public DutyDto CreateDuty(DutyDto duty)
 {
     using (DutiesFamilyEntities dataContext = new DutiesFamilyEntities())
     {
         var dutyCreated = new Duty();
         dutyCreated.DutyName = duty.DutyName;
         dutyCreated.IdFamily = duty.IdFamily;
         dataContext.Duty.Add(dutyCreated);
         dataContext.SaveChanges();
     }
     return(duty);
 }
Beispiel #5
0
        /// <summary>
        /// Método para consultar las tareas creadas por la familia.
        /// </summary>
        /// <param name="idFamily"></param>
        /// <returns></returns>
        public List <DutyDto> GetDutiesFamily(int idFamily)
        {
            var duties = new List <DutyDto>();

            using (DutiesFamilyEntities dataContext = new DutiesFamilyEntities())
            {
                foreach (var item in dataContext.Duty.Where(x => x.IdFamily == idFamily).ToList())
                {
                    var duty = new DutyDto();
                    duty.IdDuty   = item.IdDuty;
                    duty.IdFamily = item.IdFamily;
                    duty.DutyName = item.DutyName;
                    duties.Add(duty);
                }
            }
            return(duties);
        }
Beispiel #6
0
        /// <summary>
        /// Register employee duty
        /// </summary>
        /// <param name="dutyDto">The duty dto arrived from view form </param>
        /// <returns></returns>
        public async Task <bool> AddDutyAsync(DutyDto dutyDto)
        {
            var duty = new Duty();

            // Get id of the employee for connect with them duties
            var employeeId = await _employeeRepository.GetEmployeeByUsernameAsync(dutyDto.Employee.Username);

            // Assign to duty model
            duty.StartShift = dutyDto.StartShift;
            duty.EndShift   = dutyDto.EndShift;
            duty.EmployeeId = employeeId.UserId;

            // If no conflict with other duties add to data context
            await _dataContext.AddAsync(duty);

            // Save finally
            return(await _dataContext.SaveChangesAsync() > 0);
        }
        public async Task <ApiResponse <DutyDto> > RegisterAsync(DutyDto dutyDto)
        {
            // If something was wrong
            if (!await _dutyRepository.AddDutyAsync(dutyDto))
            {
                // return ApiResponse with described errors
                // TODO: Add error message
                return(new ApiResponse <DutyDto>());
            }

            // Otherwise return new duty object
            return(new ApiResponse <DutyDto>
            {
                Response = new DutyDto
                {
                    StartShift = dutyDto.StartShift,
                    EndShift = dutyDto.EndShift,
                    Employee = dutyDto.Employee
                }
            });
        }