コード例 #1
0
        public async Task <int> CreateWorkOrder(WorkOrder raiseRepair)
        {
            var entry = _repairsContext.WorkOrders.Add(raiseRepair);
            await _repairsContext.SaveChangesAsync();

            return(entry.Entity.Id);
        }
コード例 #2
0
        public async Task <IActionResult> Create(RepairOrder repairOrder)
        {
            if (ModelState.IsValid)
            {
                repairOrder.RepairStartDateTime = DateTime.Now;
                _context.Add(repairOrder);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            var viewModel = await GetRepairOrderViewModelWithAllTools();

            viewModel.RepairOrder = repairOrder;

            return(View(viewModel));
        }
コード例 #3
0
        public async Task CreateSlotBooking(string appointmentRef, int workOrderId, string notes = null)
        {
            var refArray = appointmentRef.Split('/', 2);
            var slotId   = int.Parse(refArray[0]);
            var slotDate = DateTime.ParseExact(refArray[1], DateExtensions.DateFormat, null);

            var appointment = await _repairsContext.AvailableAppointmentDays
                              .Where(a => a.Id == slotId)
                              .Select(a =>
                                      new
            {
                HasOpenSlots = a.ExistingAppointments.Count(ea => ea.Date.Date == slotDate.Date) < a.AvailableCount,
                StartTime    = a.AvailableAppointment.StartTime,
                EndTime      = a.AvailableAppointment.EndTime
            }).SingleOrDefaultAsync();

            if (appointment is null)
            {
                throw new ResourceNotFoundException("No Appointment Exists");
            }
            if (!appointment.HasOpenSlots)
            {
                throw new NotSupportedException("Appointment slot over capacity");
            }

            var existingAppointment = await _repairsContext.Appointments.SingleOrDefaultAsync(a => a.WorkOrderId == workOrderId);

            if (existingAppointment != null)
            {
                _repairsContext.Appointments.Remove(existingAppointment);
            }

            await _repairsContext.Appointments.AddAsync(new Infrastructure.Hackney.Appointment
            {
                WorkOrderId     = workOrderId,
                DayId           = slotId,
                Date            = slotDate,
                StartTime       = appointment.StartTime,
                EndTime         = appointment.EndTime,
                AppointmentNote = notes
            });

            await _repairsContext.SaveChangesAsync();
        }
コード例 #4
0
        public async Task <int> CreateJobStatusUpdate(JobStatusUpdate update)
        {
            update.AuthorName  = _currentUserService.GetUser().Name();
            update.AuthorEmail = _currentUserService.GetUser().Email();
            await _repairsContext.JobStatusUpdates.AddAsync(update);

            await _repairsContext.SaveChangesAsync();

            return(update.Id);
        }
コード例 #5
0
        public async Task ArchiveAsync(string operativePrn)
        {
            var operative = await _context.Operatives.SingleOrDefaultAsync(o => o.PayrollNumber == operativePrn);

            if (operative is null)
            {
                ThrowHelper.ThrowNotFound($"Operative with payroll {operativePrn} not found");
            }

            _context.Remove(operative);
            await _context.SaveChangesAsync();
        }
コード例 #6
0
        public async Task <int> CreateWorkOrderCompletion(WorkOrderComplete completion)
        {
            var user = _currentUserService.GetUser();

            completion.JobStatusUpdates.ForEach(jsu =>
            {
                jsu.AuthorName  = user.Name();
                jsu.AuthorEmail = user.Email();
            });

            _repairsContext.WorkOrderCompletes.Add(completion);
            await _repairsContext.SaveChangesAsync();

            return(completion.Id);
        }