Beispiel #1
0
 public JobSetsController(
     JobShopCollectionDbContext jobShopCollectionDbContext,
     IMapper mapper)
 {
     JobShopCollectionDbContext = jobShopCollectionDbContext;
     Mapper = mapper;
 }
Beispiel #2
0
        public async Task <IActionResult> Delete(int id)
        {
            var original = await JobShopCollectionDbContext.JobSet
                           .FirstOrDefaultAsync(j => j.Id == id);

            if (original is null)
            {
                return(NotFound());
            }
            if (original.IsLocked)
            {
                return(new StatusCodeResult((int)StatusCodes.Status403Forbidden));
            }

            // the "If-Match" Header is mandatory
            if (!HttpContext.Request.Headers.Keys.Contains("If-Match"))
            {
                return(new StatusCodeResult(StatusCodes.Status412PreconditionFailed));
            }

            string?originalETag = original.GetETag();

            if (originalETag != null && HttpContext.Request.Headers["If-Match"].ToString() != originalETag)
            {
                return(new StatusCodeResult(StatusCodes.Status412PreconditionFailed));
            }

            JobShopCollectionDbContext.Entry(original).State = EntityState.Deleted;
            await JobShopCollectionDbContext.SaveChangesAsync();

            return(Ok());
        }
Beispiel #3
0
 public GetAllJobSets(
     JobShopCollectionDbContext jobShopCollectionDbContext,
     IMapper mapper)
 {
     _jobShopCollectionDbContext = jobShopCollectionDbContext;
     _mapper = mapper;
 }
Beispiel #4
0
        public async Task <ActionResult <JobSetDto> > Put(int id, [FromBody] UpdateJobSetDto updateJobSetDto)
        {
            if (!id.Equals(updateJobSetDto.Id))
            {
                return(BadRequest(new { Message = "The Id in route does not equal to the Id in Body." }));
            }

            var newJobSet = Mapper.Map <JobSet>(updateJobSetDto);

            var current = await JobShopCollectionDbContext.JobSet
                          .FirstOrDefaultAsync(j => j.Id == id);

            if (current is null)
            {
                return(NotFound());
            }
            if (current.IsLocked)
            {
                return(new StatusCodeResult((int)StatusCodes.Status403Forbidden));
            }

            // the "If-Match" Header is mandatory
            if (!HttpContext.Request.Headers.Keys.Contains("If-Match"))
            {
                return(new StatusCodeResult(StatusCodes.Status412PreconditionFailed));
            }

            string?currentETag = current.GetETag();

            if (currentETag != null && HttpContext.Request.Headers["If-Match"].ToString() != currentETag)
            {
                return(new StatusCodeResult(StatusCodes.Status412PreconditionFailed));
            }

            JobShopCollectionDbContext.Entry(current).CurrentValues.SetValues(newJobSet);
            await JobShopCollectionDbContext.SaveChangesAsync();

            JobSetDto jobSetDto = Mapper.Map <JobSetDto>(current);
            string?   eTag      = jobSetDto.GetETag();

            if (eTag != null)
            {
                HttpContext.Response.Headers.Add("ETag", new[] { eTag });
            }
            return(Ok(jobSetDto));
        }
Beispiel #5
0
        public async Task <ActionResult <JobSetDto> > Post([FromBody] NewJobSetDto newJobSetDto)
        {
            //throw new System.Exception();
            var jobSet = Mapper.Map <JobSet>(newJobSetDto);

            JobShopCollectionDbContext.JobSet.Add(jobSet);
            await JobShopCollectionDbContext.SaveChangesAsync();

            var    result = Mapper.Map <JobSetDto>(jobSet);
            string?eTag   = jobSet.GetETag();

            if (eTag != null)
            {
                HttpContext.Response.Headers.Add("ETag", new[] { eTag });
            }
            return(CreatedAtAction("Get", new { id = jobSet.Id }, result));
        }