Beispiel #1
0
        public StaffMemberDto GetStaffMember(int staffId)
        {
            if (!StaffMemberExists(staffId))
            {
                throw new KeyNotFoundException("no staff member with that ID was found.");
            }
            var            staffEntity = _repository.GetStaffMember(staffId);
            StaffMemberDto staffDto    = Mapper.Map <StaffMemberDto>(staffEntity);

            return(staffDto);
        }
Beispiel #2
0
        public bool ValidateStaffMember(StaffMemberDto sm)
        {
            ValidationResult results            = Validator.Validate(sm);
            bool             validationSucceded = results.IsValid;

            if (!validationSucceded)
            {
                return(false);
            }

            return(true);
        }
Beispiel #3
0
        public CheckoutDto GetCheckoutByDate(GetCheckoutByDateDto data, StaffMemberDto staffMemberDto)
        {
            DateTime       shiftDate      = Convert.ToDateTime(data.StringDate).Date;
            CheckoutEntity checkoutEntity = _repository.GetCheckOutForStaffMemberForSpecificDate(shiftDate, staffMemberDto.Id, data.LunchOrDinner);

            if (checkoutEntity == null)
            {
                throw new KeyNotFoundException("No checkout for the provided staffmember was found for the given parameters.");
            }

            CheckoutDto checkoutDto = Mapper.Map <CheckoutDto>(checkoutEntity);

            return(checkoutDto);
        }
Beispiel #4
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));
        }
Beispiel #5
0
        public StaffMemberDto AddStaffMember(StaffMemberDto sm)
        {
            if (!ValidateStaffMember(sm))
            {
                return(null);
            }

            StaffMemberEntity staffEntity = Mapper.Map <StaffMemberEntity>(sm);

            _repository.AddStaffMember(staffEntity);

            UtilityMethods.VerifyDatabaseSaveSuccess(_repository);

            StaffMemberDto savedStaffMember = Mapper.Map <StaffMemberDto>(staffEntity);

            return(savedStaffMember);
        }
Beispiel #6
0
        public IActionResult AddStaffMember([FromBody] AddStaffMemberDto sm)
        {
            StaffMemberDto staffMemberDto = Mapper.Map <StaffMemberDto>(sm);

            try
            {
                StaffMemberDto savedStaffMember = _staffCore.AddStaffMember(staffMemberDto);

                if (savedStaffMember == null)
                {
                    return(BadRequest(ModelState));
                }
                return(Ok(savedStaffMember));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "An error occured while trying to add a staff member");
                return(StatusCode(500, errorMsg));
            }
        }
        public IActionResult GetCheckoutByDate([FromBody] GetCheckoutByDateDto data)
        {
            try
            {
                StaffMemberDto staffDto = _staffCore.GetStaffMember(data.StaffMemberId);
                CheckoutDto    checkout = _checkoutsCore.GetCheckoutByDate(data, staffDto);
                return(Ok(checkout));
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                ModelState.AddModelError("Checkout by Date Error: ", e.Message);
                if (e.InnerException is KeyNotFoundException)
                {
                    return(BadRequest(ModelState));
                }

                return(StatusCode(500, ModelState));
            }
        }
        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));
            }
        }