示例#1
0
        public TeamGroupedCheckoutsDto FormatBarCheckouts(BarTeam barTeam, List <CheckoutOverviewDto> checkouts, List <EarningDto> earnings)
        {
            TeamGroupedCheckoutsDto barCheckouts = new TeamGroupedCheckoutsDto
            {
                TeamId             = barTeam.Id,
                CheckoutHasBeenRun = barTeam.CheckoutHasBeenRun,
            };

            foreach (CheckoutOverviewDto c in checkouts)
            {
                if (c.JobWorkedTitle.ToUpper() == "BARTENDER")
                {
                    barCheckouts.TeamCheckouts.Add(c);
                }
            }

            if (barCheckouts.CheckoutHasBeenRun)
            {
                foreach (EarningDto e in earnings)
                {
                    if (e.JobWorked.ToUpper() == "BARTENDER")
                    {
                        barCheckouts.TeamEarnings.Add(e);
                    }
                }
            }

            return(barCheckouts);
        }
示例#2
0
        public List <Earnings> RunBarTeamCheckout(DateTime shiftDate, string lunchOrDinner, int barBackCount)
        {
            TeamEntity            barTeam   = _teamRepository.GetBarTeamForShift(shiftDate, lunchOrDinner);
            BarTeam               team      = Mapper.Map <BarTeam>(barTeam);
            List <CheckoutEntity> checkouts = _checkoutRepository.GetCheckoutsForATeam(team.Id).ToList();

            foreach (CheckoutEntity c in checkouts)
            {
                Checkout chkout = Mapper.Map <Checkout>(c);
                team.Checkouts.Add(chkout);
            }
            List <TipOutEntity> serverTipOuts = _teamRepository.GetTipOuts(shiftDate, lunchOrDinner, "server");
            decimal             serverTips    = 0;

            foreach (TipOutEntity t in serverTipOuts)
            {
                serverTips += t.BarTipOut;
            }

            if (team.CheckoutHasBeenRun == true)
            {
                _teamRepository.DeleteTipOut(team.Id);
            }

            List <Earnings> teamEarnings = team.RunBarCheckout(serverTips, barBackCount);
            TipOutEntity    tipoutEntity = Mapper.Map <TipOutEntity>(team.TipOut);

            tipoutEntity.Team = barTeam;
            _teamRepository.AddTipOut(tipoutEntity);
            return(teamEarnings);
        }
示例#3
0
        public BarTeam GetBarTeamForShift(DateTime shiftDate, string lunchOrDinner)
        {
            TeamEntity barTeamEntity = _teamRepository.GetBarTeamForShift(shiftDate, lunchOrDinner);
            BarTeam    barTeam       = Mapper.Map <BarTeam>(barTeamEntity);

            return(barTeam);
        }
示例#4
0
        public TestingBarEarningCalculator()
        {
            ShiftDate = DateTime.Now;
            Bartender = new Job()
            {
                Id    = 2,
                Title = "bartender"
            };
            Team = new BarTeam(ShiftDate, "dinner")
            {
                CheckoutHasBeenRun = false
            };
            StaffMember1 = new StaffMember()
            {
                FirstName = "Grant",
                LastName  = "Elmer",
                Id        = 1,
                Status    = "acitve"
            };

            StaffMember2 = new StaffMember()
            {
                FirstName = "James",
                LastName  = "Brooks",
                Id        = 2,
                Status    = "active"
            };
        }
示例#5
0
        public IActionResult GetCheckoutsForShift([FromBody] GetCheckoutsForShiftDto data)
        {
            try
            {
                data.ShiftDate = Convert.ToDateTime(data.StringDate).Date;
                UtilityMethods.ValidateLunchOrDinnerSpecification(data.LunchOrDinner);

                List <CheckoutOverviewDto> checkouts      = _checkoutsCore.GetCheckoutsForShift(data.ShiftDate, data.LunchOrDinner).ToList();
                List <ServerTeamDto>       serverTeams    = _serverTeamCore.GetServerTeamsForShift(data.ShiftDate, data.LunchOrDinner, "Server");
                BarTeam                     barTeam       = _barCore.GetBarTeamForShift(data.ShiftDate, data.LunchOrDinner);
                List <EarningDto>           shiftEarnings = _earningsCore.GetEarningsForShift(data.ShiftDate, data.LunchOrDinner);
                CheckoutPagePresentationDto pageData      = _checkoutsCore.FormatPageData(checkouts, serverTeams, shiftEarnings, barTeam);
                return(Ok(pageData));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("Get Checkouts Error", e.Message);
                if (e is InvalidOperationException)
                {
                    return(BadRequest(ModelState));
                }
                _logger.LogError(e.Message);
                return(StatusCode(500, ModelState));
            }
        }
        public override void Enter()
        {
            FactionManager.NeutralUnitCount = 0;

            MaxTimer = 500;

            do
            {
                if (WaveManager.CurrentTeamCount != -1)
                {
                    BarTeam TopBar = OverTeamBar.BarTeams[0];
                    TopBar.ListTargetPosition = FactionManager.TeamCount - 1;
                    for (int i = 1; i < OverTeamBar.BarTeams.Count; i++)
                    {
                        OverTeamBar.BarTeams[i - 1] = OverTeamBar.BarTeams[i];
                        OverTeamBar.BarTeams[i].ListTargetPosition--;
                    }
                    OverTeamBar.BarTeams[OverTeamBar.BarTeams.Count - 1] = TopBar;
                }
                WaveManager.ActiveTeam = OverTeamBar.BarTeams[0].Team;
            }while (FactionManager.TeamDead.ContainsKey(WaveManager.ActiveTeam) && FactionManager.TeamDead[WaveManager.ActiveTeam]);

            WaveManager.CurrentTeamCount++;

            if (!FactionManager.TeamStreak.ContainsKey(WaveManager.ActiveTeam))
            {
                FactionManager.TeamStreak.Add(WaveManager.ActiveTeam, 0);
            }
            else
            {
                FactionManager.TeamStreak[WaveManager.ActiveTeam]++;
            }

            if (WaveManager.CurrentTeamCount > FactionManager.TeamCount - 1)
            {
                WaveManager.CurrentTeamCount  = 0;
                WaveManager.CurrentWaveEvent += WaveManager.GameSpeed;

                if (WaveManager.CurrentWaveEvent > 1)
                {
                    WaveManager.NewWave(GameManager.GetLevel().getCurrentScene());
                    WaveManager.CurrentWaveEvent = 0;
                }
            }

            Timer    = 0;
            MaxTimer = 2000;

            PathFindingManager.Rebuild();

            base.Enter();
        }
示例#7
0
        public CheckoutPagePresentationDto FormatPageData(List <CheckoutOverviewDto> checkouts, List <ServerTeamDto> serverTeams, List <EarningDto> shiftEarnings, BarTeam barTeam)
        {
            CheckoutPagePresentationDto pageData = new CheckoutPagePresentationDto();

            //Here the teams that have had their checkouts run are assembled into groups for presentation
            foreach (ServerTeamDto s in serverTeams)
            {
                IEnumerable <CheckoutEntity> entities = _repository.GetCheckoutsForATeam(s.Id);
                if (entities.Count() > 0)
                {
                    List <ServerTeamGroupedCheckoutsDto> groupedCheckouts = groupFormatter.FormatServerTeamGroupCheckouts(s, entities, checkouts, serverTeams, shiftEarnings);

                    foreach (ServerTeamGroupedCheckoutsDto t in groupedCheckouts)
                    {
                        pageData.TeamCheckouts.Add(t);
                    }
                }
            }

            //Here is where the distinctions need to be made between bar checkouts, patio,
            //and the server teamed/unrun checkouts
            // *IMPORTANT* - bar checkouts are not saved nor grouped by the teamcheckouts relationship. This is because
            // even though server checkouts can't be grouped by job worked due to the splitting of tips between select people,
            // Bartenders all split up the money based on hours on the same team. So pulling them based on date and job worked
            // is possible because they all go together.
            pageData.BarCheckouts = groupFormatter.FormatBarCheckouts(barTeam, checkouts, shiftEarnings);

            //Now to grab all the checkouts that havent been run and then return the whole dataset
            pageData.NotRunCheckouts = groupFormatter.FormatUnrunServerCheckouts(checkouts, pageData.TeamCheckouts);

            return(pageData);
        }
示例#8
0
        public void Test1()
        {
            // When given a list of checkouts and earnings, the group formatted should be able to return the
            // correct earnings for bartenders
            DateTime            shiftDate = DateTime.Now;
            CheckoutOverviewDto checkout1 = new CheckoutOverviewDto("Grant Elmer", "Bartender")
            {
                Sales         = 1200,
                ShiftDate     = shiftDate,
                BarSales      = 300,
                CashTips      = 0,
                CcTips        = 230,
                StaffMemberId = 1,
                Hours         = 6.5m,
                Id            = 2,
                LunchOrDinner = "dinner",
            };
            CheckoutOverviewDto checkout2 = new CheckoutOverviewDto("Alyson Elmer", "Server")
            {
                Sales         = 1200,
                ShiftDate     = shiftDate,
                BarSales      = 300,
                CashTips      = 0,
                CcTips        = 230,
                StaffMemberId = 1,
                Hours         = 6.5m,
                Id            = 2,
                LunchOrDinner = "dinner",
            };
            CheckoutOverviewDto checkout3 = new CheckoutOverviewDto("James Brooks", "Bartender")
            {
                Sales         = 1200,
                ShiftDate     = shiftDate,
                BarSales      = 300,
                CashTips      = 0,
                CcTips        = 230,
                StaffMemberId = 1,
                Hours         = 6.5m,
                Id            = 3,
                LunchOrDinner = "dinner",
            };
            List <CheckoutOverviewDto> checkouts = new List <CheckoutOverviewDto>()
            {
                checkout1,
                checkout2,
                checkout3
            };
            EarningDto earning1 = new EarningDto
            {
                CcTips              = 100,
                JobWorked           = "Bartender",
                Id                  = 3,
                StaffMemberId       = 1,
                LunchOrDinner       = "Dinner",
                ShiftDate           = shiftDate,
                CashTips            = 0,
                TotalTipsForPayroll = 100,
            };
            EarningDto earning2 = new EarningDto
            {
                CcTips              = 100,
                JobWorked           = "Server",
                Id                  = 6,
                StaffMemberId       = 2,
                LunchOrDinner       = "Dinner",
                ShiftDate           = shiftDate,
                CashTips            = 0,
                TotalTipsForPayroll = 100,
            };
            EarningDto earning3 = new EarningDto
            {
                CcTips              = 100,
                JobWorked           = "Bartender",
                Id                  = 9,
                StaffMemberId       = 3,
                LunchOrDinner       = "Dinner",
                ShiftDate           = shiftDate,
                CashTips            = 0,
                TotalTipsForPayroll = 100,
            };
            List <EarningDto> earnings = new List <EarningDto>()
            {
                earning1,
                earning2,
                earning3
            };
            BarTeam barTeam = new BarTeam(shiftDate, "dinner")
            {
                CheckoutHasBeenRun = true
            };

            TeamGroupedCheckoutsDto barData = groupFormatter.FormatBarCheckouts(barTeam, checkouts, earnings);

            Assert.Contains(earning1, barData.TeamEarnings);
            Assert.Contains(checkout3, barData.TeamCheckouts);
        }
示例#9
0
        public override void Update(GameTime gameTime)
        {
            if (RandomCounter > 0)
            {
                if (OverTeamBar.SizeBonus < 1)
                {
                    OverTeamBar.SizeBonus = Math.Min(1, OverTeamBar.SizeBonus + SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f);
                    OverTeamBar.Alpha     = Math.Min(1, OverTeamBar.Alpha + SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f);
                    OverMap.SizeMult      = Math.Max(0, OverMap.SizeMult - SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f);
                }
                else
                {
                    Timer += gameTime.ElapsedGameTime.Milliseconds * Shuffles;
                    if (Timer > MaxTimer)
                    {
                        int SwapPos = Rand.r.Next(RandomCounter + 1);

                        Teams[RandomCounter].ListTargetPosition = SwapPos;
                        Teams[SwapPos].ListTargetPosition       = RandomCounter;

                        BarTeam Temp = Teams[SwapPos];
                        Teams[SwapPos]       = Teams[RandomCounter];
                        Teams[RandomCounter] = Temp;

                        Teams[SwapPos].PositionChangeSpeed       = 0.01f * Shuffles;
                        Teams[RandomCounter].PositionChangeSpeed = 0.01f * Shuffles;

                        RandomCounter--;
                        if (RandomCounter == 0)
                        {
                            SoundManager.PlaySound("Open", 1, 0, 0);
                        }
                        else
                        {
                            SoundManager.PlaySound("Arive", 1, 0, 0);
                        }


                        Timer -= MaxTimer;

                        if (RandomCounter == 0 && Shuffles > 1)
                        {
                            RandomCounter = TeamCount - 1;
                            Shuffles--;
                        }
                    }
                }
            }
            else
            {
                Timer += gameTime.ElapsedGameTime.Milliseconds;
                if (Timer > MaxTimer)
                {
                    OverMap.SizeMult       = Math.Min(1, OverMap.SizeMult + SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f);
                    OverTeamBar.SizeBonus -= gameTime.ElapsedGameTime.Milliseconds * SizeBonusChange * 60 / 1000f;
                    if (OverTeamBar.SizeBonus < 0)
                    {
                        OverTeamBar.SizeBonus = 0;
                        OverMap.SizeMult      = 1;
                        WaveManager.SetState(WaveStartState.self);
                    }
                }
            }
            base.Update(gameTime);
        }