public async Task CreateCheckoutAsync(CreateCheckoutUseCase useCase) { var existingOrder = await _orderRepository.GetAsync(useCase.OrderId); if (existingOrder != null) { var createCheckoutDto = new CreateCheckoutDto(useCase.OrderId); await _clientAdapter.PostAsync(HttpClientConfig.ClientNames.Checkout, HttpClientConfig.EndpointPrefixes.Checkout, createCheckoutDto); } }
public CheckoutDto CreateCheckout(CreateCheckoutDto data, StaffMemberDto staffMemberDto, JobDto jobDto) { Checkout checkout = new Checkout(Mapper.Map <StaffMember>(staffMemberDto), data.ShiftDate, Mapper.Map <Job>(jobDto)); if (_repository.CheckoutExists(data.ShiftDate, staffMemberDto.Id, data.LunchOrDinner)) { throw new InvalidOperationException("A checkout for this employee already exists for this day and shift."); } Mapper.Map(data, checkout); CheckoutEntity checkOutEntity = Mapper.Map <CheckoutEntity>(checkout); _repository.AddCheckOut(checkOutEntity); _repository.VerifyDatabaseSaveSuccess(); return(Mapper.Map <CheckoutDto>(checkOutEntity)); }
public IActionResult CreateCheckOut([FromBody] CreateCheckoutDto data) { //convert the date sent from the client into a DateTime format data.ShiftDate = Convert.ToDateTime(data.StringDate).Date; try { UtilityMethods.ValidateLunchOrDinnerSpecification(data.LunchOrDinner); StaffMemberDto staffMember = _staffCore.GetStaffMember(data.StaffMemberId); JobDto job = _jobCore.GetJobByTitle(data.JobWorkedTitle); CheckoutDto checkout = _checkoutsCore.CreateCheckout(data, staffMember, job); return(CreatedAtRoute("CreateCheckout", checkout)); } catch (Exception e) { if (e.InnerException is InvalidOperationException) { return(BadRequest(e.Message)); } _logger.LogError(e.Message); ModelState.AddModelError("Create Checkout Failure", e.Message); return(StatusCode(500, ModelState)); } }