Exemplo n.º 1
0
        public async Task <AssignedDefect> GetAssignedDefectAsync(int userId, int defectId)
        {
            var user = await _context.Users.GetUserByIdWithRole(userId);

            var defect = await GetByIdAsync(defectId);

            if (_context.AssignedDefects.FirstOrDefault(x => x.DefectId == defect.Id) != null)
            {
                throw new ArgumentException("Defect is already assigned");
            }

            if (user?.Role?.Name != "Technician")
            {
                throw new ArgumentException("The user cannot fix defects");
            }

            if (user != null || defect != null)
            {
                var assignedDefect = new AssignedDefect
                {
                    AssignedWorker  = user,
                    Defect          = defect,
                    StatusChangedAt = DateTime.Now
                };

                return(assignedDefect);
            }
            else
            {
                throw new ArgumentException("User or defect was not found");
            }
        }
        public async Task SeedAssignedDefects()
        {
            if (!_context.AssignedDefects.Any())
            {
                var defects = await _defectRepository.GetAllAsync();

                var    technicians      = _context.Users.GetTechnicians().ToList();
                Random rnd              = new Random();
                int    randomTechnician = rnd.Next(technicians.Count);

                foreach (var d in defects)
                {
                    var assignedDefect = new AssignedDefect
                    {
                        Defect         = d,
                        AssignedWorker = technicians[randomTechnician]
                    };
                    _context.AssignedDefects.Add(assignedDefect);
                }
                await _context.SaveChangesAsync();
            }
        }
Exemplo n.º 3
0
        public async Task SaveAssignedDefect(AssignedDefect assignedDefect)
        {
            await _context.AssignedDefects.AddAsync(assignedDefect);

            await SaveChangesAsync();
        }