コード例 #1
0
        public EmployeeVisitDTO InsertVisit(EmployeeVisitDTO data)
        {
            EmployeeVisit dataToInsert = new EmployeeVisit();

            dataToInsert = EmployeeVisitRequestFormatter.ConvertRespondentInfoFromDTO(data);
            return(EmployeeVisitRequestFormatter.ConvertRespondentInfoToDTO(_unitOfWork.EmployeeVisitRepository.Create(dataToInsert)));
        }
コード例 #2
0
        public int UpdateVisit(EmployeeVisitDTO data)
        {
            EmployeeVisit dataToUpdate = new EmployeeVisit();

            dataToUpdate = EmployeeVisitRequestFormatter.ConvertRespondentInfoFromDTO(data);
            var res = _unitOfWork.EmployeeVisitRepository.Update(dataToUpdate);

            return(res);
        }
コード例 #3
0
        public virtual IActionResult AddVisit([FromBody] Body3 body)
        {
            (string, UserType)sender;
            try
            {
                sender = Security.SolveGUID(_context, Request.Headers["Guid"]);
            }
            catch (Exception e)
            {
                return(StatusCode(401, e.Message));
            }

            var car = _context.Cars.FirstOrDefault(x => x.LicensePlate.Equals(body.LicensePlate));

            if (car is null)
            {
                return(StatusCode(404));
            }

            var client = _context.Users.FirstOrDefault(x => x.Username == car.Username);

            if (client is null)
            {
                return(StatusCode(400));
            }

            var employees = _context.Users
                            .Include(x => x.AssignedVisits);
            var min = employees.Where(x => x.UserType == UserType.WORKSHOP_EMPLOYEE)
                      .Min(x => x.AssignedVisits.Count);
            var employee = employees.FirstOrDefault(x =>
                                                    x.AssignedVisits.Count == min && x.UserType == UserType.WORKSHOP_EMPLOYEE);

            if (employee is null)
            {
                return(StatusCode(400));
            }

            var visit = new Visit
            {
                Date             = body.Date,
                Car              = car,
                LicensePlate     = body.LicensePlate,
                RequiredActions  = body.RequiredActions,
                Type             = body.Type,
                Priority         = body.Priority,
                Status           = 0,
                CarOwnerUsername = client.Username,
            };

            var ev = new EmployeeVisit
            {
                VisitId  = _context.Visits.Max(x => x.VisitId) + 1,
                Username = employee.Username
            };

            _context.Visits.Add(visit);
            _context.EmployeesVisits.Add(ev);
            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateException)
            {
                return(StatusCode(400));
            }

            return(new ObjectResult(visit));
        }
コード例 #4
0
 public static EmployeeVisitDTO ConvertRespondentInfoToDTO(EmployeeVisit employeeVisit)
 {
     Mapper.CreateMap <EmployeeVisit, EmployeeVisitDTO>();
     return(Mapper.Map <EmployeeVisit, EmployeeVisitDTO>(employeeVisit));
 }