Ejemplo n.º 1
0
        public LabourerProfileVM GetLabourer(int labourerID)
        {
            Labourer Labourer       = _context.Labourer.FirstOrDefault(l => l.LabourerId == labourerID);
            var      avgerageSafety = _context.JobLabourer
                                      .Where(j => j.LabourerId == labourerID && j.LabourerSafetyRating != null).Average(av => av.LabourerSafetyRating);
            var avgerageQuality = _context.LabourerAttendance
                                  .Where(l => l.LabourerId == labourerID && l.DailyQualityRating != null).Average(av => av.DailyQualityRating);

            LabourerProfileVM lp = new LabourerProfileVM()
            {
                Labourer = Labourer,
                Skills   = _context.LabourerSkill.Where(ls => ls.LabourerId == labourerID).Select(ols => new Skill()
                {
                    SkillId          = ols.Skill.SkillId,
                    SkillName        = ols.Skill.SkillName,
                    AdminReceives    = ols.Skill.AdminReceives,
                    LabourerReceives = ols.Skill.LabourerReceives
                }),

                AverageSafety      = avgerageSafety,
                SafetyRatingNumber = _context.JobLabourer
                                     .Where(j => j.LabourerId == labourerID && j.LabourerSafetyRating != null).Count(),
                AverageQuality      = avgerageQuality,
                QualityRatingNumber = _context.LabourerAttendance
                                      .Where(l => l.LabourerId == labourerID && l.DailyQualityRating != null).Count()
            };

            return(lp);
        }
Ejemplo n.º 2
0
        public IActionResult PutLabourerProfile(LabourerProfileVM labourerProfile)
        {
            var lp = _context.Labourer.SingleOrDefault(l => l.LabourerId == labourerProfile.Labourer.LabourerId);

            if (lp == null)
            {
                return(NotFound());
            }
            else
            {
                lp.LabourerFirstName = labourerProfile.Labourer.LabourerFirstName;
                lp.LabourerLastName  = labourerProfile.Labourer.LabourerLastName;
                lp.IsAvailable       = labourerProfile.Labourer.IsAvailable;
                lp.LabourerEmail     = labourerProfile.Labourer.LabourerEmail;
            }

            _context.LabourerSkill.RemoveRange(_context.LabourerSkill.Where(al => al.LabourerId == labourerProfile.Labourer.LabourerId));

            foreach (string skillName in labourerProfile.Skills.Select(s => s.SkillName))
            {
                Skill skill = _context.Skill.Where(s => s.SkillName == skillName).FirstOrDefault();
                if (skill != null)
                {
                    LabourerSkill labourerSkill = new LabourerSkill
                    {
                        SkillId    = skill.SkillId,
                        LabourerId = labourerProfile.Labourer.LabourerId
                    };
                    _context.LabourerSkill.Add(labourerSkill);
                    _context.SaveChanges();
                }
                else
                {
                    return(NotFound());
                }
            }

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateException)
            {
                throw;
            }
            return(NoContent());
        }