예제 #1
0
        public async Task <APIResponse> CreateJob(BaseJobModel model)
        {
            if (string.IsNullOrEmpty(model.Engineer))
            {
                return(new APIResponse(Errors.Job_EngineerField_Invalid));
            }

            if (model.Customer == null)
            {
                return(new APIResponse(Errors.Job_CustomerField_Invalid));
            }

            if (model.Customer.CustomerId == 0)
            {
                return(new APIResponse(Errors.Id_Invalid));
            }

            if (model.When.Date < DateTime.Now.Date)
            {
                return(new APIResponse(Errors.Date_Invalid));
            }

            var entity = new Job()
            {
                Engineer   = model.Engineer,
                When       = model.When,
                CustomerId = model.Customer.CustomerId
            };
            var result = await _repository.CreateJob(entity);

            return(new APIResponse(Errors.Success, (int)HttpStatusCode.OK)
            {
                Result = result
            });
        }
예제 #2
0
        public JobModel CreateJob(BaseJobModel model)
        {
            var addedJob = context.Jobs.Add(model.ToDbModel());

            context.SaveChanges();

            return(GetJob(addedJob.Entity.JobId));
        }
예제 #3
0
 public static Job ToDbModel(this BaseJobModel model)
 {
     return(new Job
     {
         Engineer = model.Engineer,
         When = model.When,
         CustomerId = model.CustomerId
     });
 }
예제 #4
0
        public async Task <IActionResult> Create(BaseJobModel model)
        {
            var newJob = await _jobService.CreateJob(model);

            if (newJob.Code != (int)Errors.Success)
            {
                return(Error(newJob.ErrorEnum));
            }

            return(Ok(newJob));
        }
예제 #5
0
        public IActionResult Create(BaseJobModel model)
        {
            if (model.When.Date < DateTime.Now.Date)
            {
                return(BadRequest("Date cannot be in the past"));
            }

            var job = jobService.CreateJob(model);

            return(Created($"job/{job.JobId}", job));
        }
예제 #6
0
        public async Task <IActionResult> CreateAsync(BaseJobModel model)
        {
            if (model.When.Date < DateTime.Now.Date)
            {
                return(BadRequest("Date cannot be in the past"));
            }

            var job = await _jobService.CreateJobAsync(model);

            return(Created($"job/{job.JobId}", job));
        }
예제 #7
0
        public IActionResult Create(BaseJobModel model)
        {
            //not one to amend existing code that is outside the scope of the requirement but I would use FluentValidation here
            if (model.When.Date < DateTime.Now.Date)
            {
                return(BadRequest("Date cannot be in the past"));
            }

            var job = jobService.CreateJob(model);

            return(Created($"job/{job.JobId}", job));
        }
예제 #8
0
        public JobModel CreateJob(BaseJobModel model)
        {
            var addedJob = context.Jobs.Add(new Job
            {
                Engineer   = model.Engineer,
                When       = model.When,
                CustomerId = model.Customer.CustomerId
            });

            context.SaveChanges();

            return(GetJob(addedJob.Entity.JobId));
        }
예제 #9
0
        public JobModel CreateJob(BaseJobModel model)
        {
            var selectedCustomer = context.Customers.Find(model.CustomerId);

            var addedJob = context.Jobs.Add(new Job
            {
                Engineer = model.Engineer,
                When     = model.When,
                Customer = selectedCustomer
            });

            context.SaveChanges();

            return(MapEntityToModel(addedJob.Entity));
        }
예제 #10
0
        public JobModel CreateJob(BaseJobModel model)
        {
            var addedJob = context.Jobs.Add(new Job
            {
                Engineer = model.Engineer,
                When     = model.When
            });

            context.SaveChanges();

            return(new JobModel
            {
                JobId = addedJob.Entity.JobId,
                Engineer = addedJob.Entity.Engineer,
                When = addedJob.Entity.When
            });
        }
예제 #11
0
        public void CreateJob_Should_Create_A_Job()
        {
            //Arrange
            var model = new BaseJobModel
            {
                Engineer   = "Tim",
                When       = DateTime.Now,
                CustomerId = 3
            };

            //Act
            var job = _sut.CreateJob(model);

            //Assert
            Assert.IsInstanceOf <JobModel>(job);
            Assert.AreEqual("Tim", job.Engineer);
            Assert.AreEqual(3, _context.Jobs.Count());
        }
예제 #12
0
        public JobModel CreateJob(BaseJobModel model)
        {
            var addedJob = context.Jobs.Add(new Job
            {
                CustomerId = Convert.ToInt32(model.Customer),
                Engineer   = model.Engineer,
                When       = model.When
            });

            context.SaveChanges();

            return(new JobModel
            {
                JobId = addedJob.Entity.JobId,
                Engineer = addedJob.Entity.Engineer,
                When = addedJob.Entity.When
            });
        }
예제 #13
0
        public async Task <JobModel> CreateJobAsync(BaseJobModel model)
        {
            var addedJob = await _context.Jobs.AddAsync(new Job
            {
                Engineer   = model.Engineer,
                CustomerId = model.Customer.Id,
                When       = model.When
            });

            await _context.SaveChangesAsync();

            return(new JobModel
            {
                JobId = addedJob.Entity.JobId,
                Engineer = addedJob.Entity.Engineer,
                Customer = model.Customer,
                When = addedJob.Entity.When
            });
        }
예제 #14
0
        public JobModel CreateJob(BaseJobModel model)
        {
            var addedJob = context.Jobs.Add(new Job
            {
                Engineer   = model.Engineer,
                When       = model.When,
                CustomerId = model.CustomerId
            });

            context.SaveChanges();

            return(context.Jobs.Where(x => x.JobId == addedJob.Entity.JobId).Select(x => new JobModel
            {
                JobId = x.JobId,
                Engineer = x.Engineer,
                When = x.When,
                Customer = x.Customer.ToModel()
            }).SingleOrDefault());
        }
예제 #15
0
        public JobModel CreateJob([FromBody] BaseJobModel model)
        {
            var addedJob = context.Jobs.Add(new Job
            {
                Engineer   = model.Engineer,
                When       = model.When,
                CustomerId = string.IsNullOrEmpty(model.CustomerId) ? (int?)null : int.Parse(model.CustomerId)
            });

            context.SaveChanges();

            return(new JobModel
            {
                JobId = addedJob.Entity.JobId,
                Engineer = addedJob.Entity.Engineer,
                When = addedJob.Entity.When,
                CustomerId = addedJob.Entity.CustomerId
            });
        }
예제 #16
0
        public IActionResult Create(BaseJobModel model)
        {
            if (model.When.Date < DateTime.Now.Date)
            {
                return(BadRequest("Date cannot be in the past"));
            }

            try
            {
                var job = jobService.CreateJob(model);

                return(Created($"job/{job.JobId}", job));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(500, ex.Message));
            }
        }