Example #1
0
        public async Task <IActionResult> Post([FromBody] Client value)
        {
            using (_db)
            {
                _logger.LogDebug("Inserting client:{1} for user:{0}", User, $"{value.Lastname} {value.Firstname}");

                await _db.Clients.AddAsync(value);

                await _db.SaveChangesAsync();

                return(Ok(value));
            }
        }
Example #2
0
        public async Task <IActionResult> StartJob(int id)
        {
            using (_db)
            {
                _logger.LogDebug("Starting job:{1} for user:{0}", User, id);

                var job = await _db.Jobs
                          .Include(j => j.AssignedTo)
                          .Include(j => j.Car)
                          .ThenInclude(car => car.Owner)
                          .ThenInclude(c => c.ContactInfo)
                          .FirstOrDefaultAsync(job => job.Id == id);

                var jobToUpdate = _db.Jobs.Attach(job);
                var user        = await _userManager.GetUserAsync(User);

                if (!string.IsNullOrEmpty(job.AssignedToId))
                {
                    if (user.Id != job.AssignedToId)
                    {
                        return(Forbid());
                    }
                }

                if (job.Status == JobStatus.Awaiting)
                {
                    job.Started = DateTime.Now;
                    job.Status  = JobStatus.InProgress;
                    if (job.AssignedTo == null)
                    {
                        job.AssignedTo   = user;
                        job.AssignedToId = user.Id;
                    }
                    await _db.SaveChangesAsync();

                    return(Ok(job));
                }
                return(Ok());
            }
        }
Example #3
0
        public async Task <IActionResult> Post([FromBody] CarMessage value)
        {
            using (_db)
            {
                _logger.LogDebug("Inserting car:{1} for user:{0}", User, value.LicencePlate);

                var car = new Car
                {
                    LicencePlate = value.LicencePlate,
                    OwnerId      = value.OwnerId,
                    Type         = value.Type
                };

                await _db.Cars.AddAsync(car);

                await _db.SaveChangesAsync();

                await _db.Entry(car).Reference(c => c.Owner).LoadAsync();

                return(Ok(car));
            }
        }