Ejemplo n.º 1
0
 public EmployeeWithStatus(EmployeeToTrip e)
 {
     EmployeeID = e.Employee.EmployeeID;
     Name       = e.Employee.Name;
     Email      = e.Employee.Email;
     Status     = e.Status;
 }
Ejemplo n.º 2
0
        public ActionResult ReadTrip(int id)
        {
            EmployeeToTrip employeeToTrip = employeeToTripService.GetByID(id);

            employeeToTrip.WasRead = true;
            employeeToTripService.Update(employeeToTrip);

            return(Ok());
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> ApproveTrip(int id, bool needRoom)
        {
            EmployeeToTrip employeeToTrip = employeeToTripService.GetByID(id);
            var            UserID         = User.GetEmpoeeID();

            employeeToTrip.Status = "APPROVED";
            employeeToTripService.Update(employeeToTrip);

            Trip trip = service.Get(employeeToTrip.TripId);

            if (trip.Status == "CREATED")
            {
                trip.Status = "CONFIRMED";
                service.Update(trip);
            }

            if (needRoom != true)
            {
                var home = new Apartment
                {
                    Name       = "HOME",
                    RoomNumber = 1,
                    Price      = 0,
                    Currency   = "EUR",
                    Address    = " ",
                    Type       = "HOME",
                    OfficeId   = employeeToTrip.Trip.ArrivalOfficeID
                };

                await service.SaveHotelorHome(home);

                var newReservation = new Reservation
                {
                    TripID      = employeeToTrip.TripId,
                    EmployeeID  = employeeToTrip.EmployeeID,
                    ApartmentID = home.ApartmentID,
                    CheckIn     = employeeToTrip.Trip.DepartureDate,
                    CheckOut    = employeeToTrip.Trip.ReturnDate
                };

                await service.SaveReservation(newReservation);

                return(Ok());
            }

            return(Ok());
        }
Ejemplo n.º 4
0
        public async Task <Trip> Add(Trip item)
        {
            var empToTrip = item.EmployeesToTrip;

            item.EmployeesToTrip = new List <EmployeeToTrip>();
            var result = await repository.Add(item);

            foreach (var employee in empToTrip)
            {
                var employeeToTrip = new EmployeeToTrip
                {
                    EmployeeID = employee.EmployeeID,
                    TripId     = result.TripID,
                    Status     = "PENDING",
                    WasRead    = false,
                };
                await empToTripRepository.Add(employeeToTrip);
            }

            return(result);
        }
Ejemplo n.º 5
0
 public EmployeeToTrip Update(EmployeeToTrip item)
 {
     return(repository.Update(item));
 }
Ejemplo n.º 6
0
 public Task <EmployeeToTrip> Add(EmployeeToTrip item)
 {
     return(repository.Add(item));
 }
Ejemplo n.º 7
0
        public async Task <ActionResult> Update([FromBody] UpdateTrip item, int id)
        {
            if (!AllowEdit(id))
            {
                return(Forbid());
            }

            Trip trip = service.GetByID(id);

            trip.IsCarCompensationNeeded = item.IsCarCompensationNeeded;
            trip.IsPlaneNeeded           = item.IsPlaneNeeded;
            trip.IsCarRentalNeeded       = item.IsCarRentalNeeded;
            foreach (var employee in item.Employees)
            {
                if (trip.EmployeesToTrip?.Any(x => x.EmployeeID == employee) == false)
                {
                    var employeeToTrip = new EmployeeToTrip
                    {
                        EmployeeID = employee,
                        TripId     = id,
                        Status     = "NEW",
                        WasRead    = false,
                    };
                    await employeeToTripService.Add(employeeToTrip);
                }
            }

            var idsToDelete       = new List <int>();
            var usersInfoToDelete = new List <int>();

            foreach (var e in trip.EmployeesToTrip)
            {
                if (!item.Employees.Contains(e.EmployeeID))
                {
                    idsToDelete.Add(e.EmployeeToTripID);
                    usersInfoToDelete.Add(e.EmployeeID);
                    //employeeToTripService.Remove(e.EmployeeToTripID);
                }
            }

            foreach (var idToDelete in idsToDelete)
            {
                employeeToTripService.Remove(idToDelete);
            }

            var tickets      = trip.PlaneTickets.Where(x => usersInfoToDelete.Contains(x.EmployeeID));
            var gas          = trip.GasCompensations.Where(x => usersInfoToDelete.Contains(x.EmployeeID));
            var reservations = trip.Reservations.Where(x => usersInfoToDelete.Contains(x.EmployeeID));

            trip.Reservations = item.Rooms.Select(x => new Reservation
            {
                ApartmentID    = trip.ArrivalOffice.Apartaments.First(a => a.RoomNumber == x.RoomID).ApartmentID,
                EmployeeID     = x.EmployeeID,
                CheckIn        = trip.DepartureDate,
                CheckOut       = trip.ReturnDate,
                TripID         = trip.TripID,
                ReservationUrl = "-",
            }).ToList();

            trip.PlaneTickets     = trip.PlaneTickets.Where(x => !tickets.Select(y => y.PlaneTicketID).Contains(x.PlaneTicketID)).ToList();
            trip.GasCompensations = trip.GasCompensations.Where(x => !gas.Select(y => y.GasCompensationID).Contains(x.GasCompensationID)).ToList();

            var result = service.Update(trip);

            return(Ok());
        }