Example #1
0
        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);
            }
        }
Example #2
0
        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));
            }
        }