コード例 #1
0
ファイル: TeamController.cs プロジェクト: SirGrantt/TipTapApi
        public IActionResult ResetCheckout([FromBody] ResetTeamCheckoutDto data)
        {
            try
            {
                if (!serverTeamsCore.ServerTeamExists(data.ServerTeamId))
                {
                    return(BadRequest("No Server Team with that Id exists"));
                }

                UtilityMethods.ValidateLunchOrDinnerSpecification(data.LunchOrDinner);

                ServerTeamDto team = serverTeamsCore.GetServerTeamById(data.ServerTeamId);

                if (team.CheckoutHasBeenRun == false)
                {
                    return(NoContent());
                }

                data.ShiftDate = Convert.ToDateTime(data.StringDate);
                List <StaffMemberDto> teammates = serverTeamsCore.GetStaffMembersOnServerTeam(data.ServerTeamId);

                serverTeamsCore.DeleteServerTeamCheckout(data.ServerTeamId);
                earningsCore.ResetEarningsForServerTeam(teammates, data.ShiftDate, data.LunchOrDinner);
                return(Ok());
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message);
                ModelState.AddModelError("Reset Checkout Error", e.Message);
                return(StatusCode(500, ModelState));
            }
        }
コード例 #2
0
ファイル: TeamController.cs プロジェクト: SirGrantt/TipTapApi
        public IActionResult RunServerTeamCheckout([FromBody] RunServerTeamCheckoutDto data)
        {
            try
            {
                if (!serverTeamsCore.ServerTeamExists(data.ServerTeamId))
                {
                    ModelState.AddModelError("Team ID Not Found", "No team with that ID was found");
                    return(BadRequest(ModelState));
                }

                UtilityMethods.ValidateLunchOrDinnerSpecification(data.LunchOrDinner);
                data.FormattedDate = Convert.ToDateTime(data.StringDate);

                ServerTeamDto         team      = serverTeamsCore.GetServerTeamById(data.ServerTeamId);
                List <StaffMemberDto> teammates = serverTeamsCore.GetStaffMembersOnServerTeam(data.ServerTeamId);

                //need to reset earnings for the staff memebers if the checkout is being updated
                earningsCore.ResetEarningsForServerTeam(teammates, data.FormattedDate, data.LunchOrDinner);


                List <CheckoutEntity> checkouts  = checkoutsCore.GetCheckoutEntitiesForATeam(data.ServerTeamId).ToList();
                EarningDto            earningDto = serverTeamsCore.RunServerTeamCheckout(data, checkouts);
                TipOutDto             tipOutDto  = serverTeamsCore.GetServerTeamTipOut(data.ServerTeamId);

                //The earnings get added to servers here to seperate earnings work into its own section
                List <EarningDto> earnings = earningsCore.AddServerEarning(teammates, earningDto);

                ServerTipOutEarningDto tipoutAndEarning = new ServerTipOutEarningDto
                {
                    TeamTipOut     = tipOutDto,
                    ServerEarnings = earnings
                };

                return(CreatedAtRoute("RunCheckout", tipoutAndEarning));
            }
            catch (Exception e)
            {
                if (e.InnerException is InvalidOperationException)
                {
                    ModelState.AddModelError("Invalid Operation", e.Message);
                    return(BadRequest(ModelState));
                }
                else if (e.InnerException is KeyNotFoundException)
                {
                    ModelState.AddModelError("Key Not Found", e.Message);
                    return(BadRequest(ModelState));
                }
                ModelState.AddModelError("Run CheckoutError", e.Message);
                return(StatusCode(500, ModelState));
            }
        }
コード例 #3
0
        public ServerTeamDto AddServerTeam(CreateServerTeamDto data)
        {
            TeamEntity team = new TeamEntity
            {
                ShiftDate     = Convert.ToDateTime(data.StringDate),
                LunchOrDinner = data.LunchOrDinner,
                TeamType      = "Server"
            };

            teamRepository.AddTeam(team);
            UtilityMethods.VerifyDatabaseSaveSuccess(teamRepository);

            ServerTeamDto teamDto = Mapper.Map <ServerTeamDto>(team);

            return(teamDto);
        }
コード例 #4
0
ファイル: TeamController.cs プロジェクト: SirGrantt/TipTapApi
        public IActionResult AddServerTeam([FromBody] CreateServerTeamDto data)
        {
            try
            {
                data.ShiftDate = Convert.ToDateTime(data.StringDate);
                UtilityMethods.ValidateLunchOrDinnerSpecification(data.LunchOrDinner);

                ServerTeamDto team = serverTeamsCore.AddServerTeam(data);
                return(CreatedAtRoute("CreateServerTeam", team));
            }
            catch (Exception e)
            {
                if (e.InnerException is InvalidOperationException)
                {
                    return(BadRequest(e.Message));
                }
                _logger.LogError(e.Message);
                ModelState.AddModelError("Create Server Team:", e.Message);
                return(StatusCode(500, ModelState));
            }
        }
コード例 #5
0
        public List <ServerTeamGroupedCheckoutsDto> FormatServerTeamGroupCheckouts(ServerTeamDto s, IEnumerable <CheckoutEntity> entities, List <CheckoutOverviewDto> checkouts, List <ServerTeamDto> serverTeams, List <EarningDto> shiftEarnings)
        {
            List <ServerTeamGroupedCheckoutsDto> pageData = new List <ServerTeamGroupedCheckoutsDto>();

            //Grab the first entity to get a related earning for the team
            CheckoutEntity checkout = entities.ElementAt(0);

            if (entities.Count() == 1)
            {
                //Mark the teams that have only one server so they can be presented as a solo team
                ServerTeamGroupedCheckoutsDto soloTeam = new ServerTeamGroupedCheckoutsDto
                {
                    CheckoutHasBeenRun = s.CheckoutHasBeenRun,
                    IsSoloTeam         = true,
                    TeamId             = s.Id,
                    TeamEarning        = shiftEarnings.FirstOrDefault(e => e.StaffMemberId == checkout.StaffMemberId),
                };
                soloTeam.TeamCheckouts.Add(Mapper.Map <CheckoutOverviewDto>(checkout));
                pageData.Add(soloTeam);
            }
            else
            {
                ServerTeamGroupedCheckoutsDto team = new ServerTeamGroupedCheckoutsDto
                {
                    CheckoutHasBeenRun = s.CheckoutHasBeenRun,
                    IsSoloTeam         = false,
                    TeamId             = s.Id,
                    TeamEarning        = shiftEarnings.FirstOrDefault(e => e.StaffMemberId == checkout.StaffMemberId)
                };

                foreach (CheckoutEntity c in entities)
                {
                    team.TeamCheckouts.Add(Mapper.Map <CheckoutOverviewDto>(c));
                }
                pageData.Add(team);
            }

            return(pageData);
        }
コード例 #6
0
        public ServerTeamDto GetServerTeamById(int serverTeamId)
        {
            ServerTeamDto team = Mapper.Map <ServerTeamDto>(teamRepository.GetTeamById(serverTeamId));

            return(team);
        }