예제 #1
0
        public async Task <IActionResult> Create([Bind("Id,Title,Content")] Item item)
        {
            if (ModelState.IsValid)
            {
                _context.Add(item);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(item));
        }
        protected override async Task <IActionResult> OnHandle(UpdateJobRequest message, CancellationToken cancellationToken)
        {
            var theJob = await _workshopDbContext.Jobs
                         .FindAsync(new object[] { message.Id }, cancellationToken);

            if (theJob == null)
            {
                return(new NotFoundResult());
            }

            var properties = typeof(Job).GetProperties();

            foreach (var prop in message.Data)
            {
                var name  = prop.Key;
                var value = prop.Value;

                var property = properties.SingleOrDefault(p => p.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
                if (property == null)
                {
                    continue;
                }

                property.SetValue(theJob, Convert.ChangeType(value, property.PropertyType));
            }

            await _workshopDbContext.SaveChangesAsync(cancellationToken);

            return(new OkObjectResult(_mapper.Map <UpdateJobResponse>(theJob)));
        }
        protected override async Task <CreateJobResponse> OnHandle(CreateJobRequest message, CancellationToken cancellationToken)
        {
            var newJob = Mapper.Map <Job>(message);

            WorkshopDbContext.Add(newJob);
            await WorkshopDbContext.SaveChangesAsync(cancellationToken);

            return(new CreateJobResponse(newJob.Id));
        }
        protected override async Task <IActionResult> OnHandle(DeleteJobRequest message, CancellationToken cancellationToken)
        {
            var theJob = await _workshopDbContext.Jobs
                         .FindAsync(message.Id);

            if (theJob == null)
            {
                return(new NotFoundResult());
            }

            _workshopDbContext.Remove(theJob);
            await _workshopDbContext.SaveChangesAsync(cancellationToken);

            return(new StatusCodeResult((int)HttpStatusCode.NoContent));
        }
예제 #5
0
        protected override async Task <IActionResult> OnHandle(CreateJobPhaseForJobRequest message, CancellationToken cancellationToken)
        {
            var job = await WorkshopDbContext.Jobs.FindAsync(message.JobId);

            if (job == null)
            {
                return(new NotFoundResult());
            }

            var phase = Mapper.Map <JobPhase>(message);

            WorkshopDbContext.Add(phase);
            await WorkshopDbContext.SaveChangesAsync(cancellationToken);

            return(new OkObjectResult(new CreateJobPhaseForJobResponse
            {
                JobId = job.Id,
                Id = phase.Id
            }));
        }
예제 #6
0
 public async Task SaveDbAsync()
 {
     await _dbContext.SaveChangesAsync();
 }