Пример #1
0
        /// <summary> Display guild roster. </summary>
        private void DoRoster()
        {
            // Ensure we have all the data we need
            if (!IsAllDataAvailable())
            {
                ShowError("Guild data has not yet been successfully retrieved.");
                return;
            }

            var vm   = new RosterViewmodel(guild, Members, gameData.Units);
            var view = new RosterView(vm)
            {
                Owner = parent
            };

            view.ShowDialog();
        }
Пример #2
0
        public int Update_RosterView(int employeeid, int raceid, RosterView item)
        {
            using (var context = new RaceContext())
            {
                RaceDetail newitem    = new RaceDetail();
                Invoice    newinvoice = new Invoice();
                if (item.CarID != 0 && !(from x in context.Cars
                                         where x.CarClass.CertificationLevel == (from y in context.RaceDetails
                                                                                 where y.RaceDetailID == item.RaceDetailID
                                                                                 select y.Race.CertificationLevel).FirstOrDefault()
                                         select x.CarID).Contains((int)item.CarID))
                {
                    errors.Add("CarID must have proper certification level.");
                }
                if (item.Refunded)
                {
                    if (string.IsNullOrEmpty(item.RefundReason))
                    {
                        errors.Add("Refunds require a refund reason.");
                    }
                    else
                    {
                        newitem = new RaceDetail
                        {
                            RaceDetailID = item.RaceDetailID,
                            RaceID       = raceid,
                            MemberID     = (from x in context.Members
                                            where x.FirstName + " " + x.LastName == item.Name
                                            select x.MemberID).FirstOrDefault(),
                            RaceFee      = 0,
                            CarID        = null,
                            RentalFee    = 0,
                            Place        = null,
                            Refund       = true,
                            Comment      = item.Comment,
                            RefundReason = item.RefundReason
                        };

                        decimal subtotal = item.RaceFee;
                        newinvoice = new Invoice
                        {
                            InvoiceDate = DateTime.Now.Date,
                            EmployeeID  = employeeid,
                            SubTotal    = subtotal,
                            GST         = subtotal * (decimal)0.05,
                            Total       = subtotal * (decimal)1.05
                        };
                        context.Invoices.Add(newinvoice);
                    }
                }
                else
                {
                    newitem = (from x in context.RaceDetails
                               where x.RaceDetailID == item.RaceDetailID
                               select x).FirstOrDefault();
                    newitem.CarID     = item.CarID == 0 ? null : item.CarID;
                    newitem.RentalFee = item.CarID == 0 ? 0 : (from x in context.CarClasses
                                                               where x.CarClassID == (from y in context.Cars
                                                                                      where y.CarID == item.CarID
                                                                                      select y.CarClassID).FirstOrDefault()
                                                               select x.RaceRentalFee).FirstOrDefault();
                    newitem.Refund       = false;
                    newitem.Comment      = item.Comment;
                    newitem.RefundReason = item.RefundReason;
                }

                if (errors.Count == 0)
                {
                    context.Entry(newitem).State = System.Data.Entity.EntityState.Modified;
                    return(context.SaveChanges());
                }
                else
                {
                    throw new BusinessRuleException("Update Validation Error", errors);
                }
            }
        }
Пример #3
0
        public int Insert_RosterView(int employeeid, int raceid, RosterView item)
        {
            using (var context = new RaceContext())
            {
                RaceDetail newitem    = new RaceDetail();
                Invoice    newinvoice = new Invoice();
                if ((from x in context.RaceDetails
                     where x.RaceID == raceid &&
                     x.Refund == false
                     select x).Count() >= (from x in context.Races
                                           where x.RaceID == raceid
                                           select x.NumberOfCars).FirstOrDefault())
                {
                    errors.Add("Race contestant limit has already been reached.");
                }
                if (item.Name == "0")
                {
                    errors.Add("Please select a driver.");
                }
                List <int> members = (from x in context.RaceDetails
                                      where x.RaceID == raceid &&
                                      x.Refund == false
                                      select x.MemberID).ToList();
                if (members.Contains(int.Parse(item.Name)))
                {
                    errors.Add("Member cannot be entered in a race twice.");
                }
                string certif = (from y in context.Races
                                 where y.RaceID == raceid
                                 select y.CertificationLevel).FirstOrDefault();
                if (item.CarID != 0 && !(from x in context.Cars
                                         where x.CarClass.CertificationLevel == certif
                                         select x.CarID).Contains((int)item.CarID))
                {
                    errors.Add("CarID must have proper certification level.");
                }

                if (errors.Count == 0)
                {
                    newitem = new RaceDetail
                    {
                        RaceID   = raceid,
                        MemberID = int.Parse(item.Name),
                        RaceFee  = (decimal)(from x in context.RaceDetails
                                             where x.RaceID == raceid &&
                                             x.RaceFee != 0
                                             select x.RaceFee).FirstOrDefault(),
                        CarID     = item.CarID == 0 ? null : item.CarID,
                        RentalFee = item.CarID == 0 ? 0 : (from x in context.CarClasses
                                                           where x.CarClassID == (from y in context.Cars
                                                                                  where y.CarID == item.CarID
                                                                                  select y.CarClassID).FirstOrDefault()
                                                           select x.RaceRentalFee).FirstOrDefault(),
                        Place        = item.Placement,
                        Refund       = false,
                        Comment      = item.Comment,
                        RefundReason = item.RefundReason
                    };
                    decimal subtotal = (from x in context.RaceDetails
                                        where x.RaceDetailID == item.RaceDetailID
                                        select x.Invoice.SubTotal).FirstOrDefault();
                    newinvoice = new Invoice
                    {
                        InvoiceDate = DateTime.Now.Date,
                        EmployeeID  = employeeid,
                        SubTotal    = subtotal,
                        GST         = subtotal * (decimal)0.05,
                        Total       = subtotal * (decimal)1.05
                    };

                    context.RaceDetails.Add(newitem);
                    context.Invoices.Add(newinvoice);

                    context.SaveChanges();
                    return(newitem.RaceDetailID);
                }
                else
                {
                    throw new BusinessRuleException("Insert Validation Error", errors);
                }
            }
        }
Пример #4
0
 public void ShowShipsAndUpgrades()
 {
     UpdateSquadCost("SquadBuilderPanel");
     RosterView.GenerateShipWithUpgradesPanels();
 }
        /// <summary>
        /// For Roster specific View
        /// </summary>
        /// <param name="rosterId"></param>
        /// <returns></returns>
        public async Task <RosterView> GetRosterAsync(Guid rosterId)
        {
            var seasonInfo = await _seasonInfoRepository.GetCurrentSeasonAsync();

            var alternateAccountsTask = _alternateAccountRepository.ReadAllAsync();
            var rosterTask            = _teamRosterRepository.GetByTeamIdAsync(rosterId);
            var captainTask           = _teamCaptainRepository.GetCaptainByRosterId(rosterId);
            var playersSummoner       = (await _teamPlayerRepository.ReadAllForRosterAsync(rosterId)).ToList();
            var summonersTask         = _summonerInfoRepository.GetAllForSummonerIdsAsync(playersSummoner.Select(x => x.SummonerId));
            var matchDetails          = await _matchDetailRepository.GetMatchDetailsForPlayerAsync(playersSummoner.Select(x => x.SummonerId));

            var schedule = (await GetTeamSchedule(rosterId)).ToList();

            matchDetails = matchDetails.Where(x => x.Key.SeasonId == seasonInfo.Id).ToDictionary(x => x.Key, x => x.Value);
            var scheduleIds = schedule.Select(x => x.ScheduleId).ToList();

            var statIds = matchDetails.Values.SelectMany(x => x.Where(z => z.SeasonInfoId == seasonInfo.Id && scheduleIds.Contains(z.TeamScheduleId)).Select(y => y.PlayerStatsId));

            var mappedStats = await SetupPlayerStatsViews(statIds, schedule, matchDetails);

            var alternateAccounts = (await alternateAccountsTask).ToList();
            var summoners         = (await summonersTask).ToList();

            var summonerViews = _summonerMapper.MapDetailed(summoners, alternateAccounts, mappedStats).ToList();

            var divisions = (await _divisionRepository.GetAllForSeasonAsync(seasonInfo.Id)).ToList();
            var captain   = await captainTask;
            var roster    = await rosterTask;

            foreach (var teamPlayerEntity in playersSummoner)
            {
                var player = summoners.First(x => x.Id == teamPlayerEntity.SummonerId);

                var isSub        = teamPlayerEntity.IsSub ?? false;
                var summonerView = summonerViews.First(x => x.SummonerName == player.SummonerName);
                summonerView.IsSub = isSub;
            }

            var division = divisions.First(x =>
                                           x.LowerLimit <= roster.TeamTierScore && x.UpperLimit >= roster.TeamTierScore);
            var rosterView = new RosterView
            {
                RosterId      = roster.Id,
                Captain       = summoners.FirstOrDefault(x => x.Id == captain?.SummonerId)?.SummonerName,
                TeamName      = roster.TeamName,
                Wins          = roster.Wins ?? 0,
                Loses         = roster.Loses ?? 0,
                Players       = summonerViews,
                TeamTierScore = roster.TeamTierScore.GetValueOrDefault(),
                Division      = new DivisionView
                {
                    DivisionName     = division.Name,
                    DivisionMinScore = division.LowerLimit,
                    DivisionId       = division.Id
                },
                Schedule = schedule
            };

            var directory = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot\\logos");
            var path      = Directory.GetFiles(directory).FirstOrDefault(x => x.Contains(rosterId.ToString()));

            if (File.Exists(path))
            {
                var byteData = await File.ReadAllBytesAsync(path);

                var base64 = Convert.ToBase64String(byteData);
                var type   = GetContentType(path);
                var imgSrc = string.Format($"data:{type};base64,{base64}");
                rosterView.FileSource = imgSrc;
            }
            rosterView.Cleanup();

            return(rosterView);
        }
        /// <summary>
        /// For Admin usage only
        /// </summary>
        /// <returns></returns>
        public async Task <IEnumerable <RosterView> > GetAllRosters(SeasonInfoEntity seasonInfo = null)
        {
            var list = new List <RosterView>();

            if (seasonInfo == null)
            {
                seasonInfo = await _seasonInfoRepository.GetCurrentSeasonAsync();
            }
            var rostersTask           = _teamRosterRepository.GetAllTeamsAsync(seasonInfo.Id);
            var captainsTask          = _teamCaptainRepository.GetAllTeamCaptainsAsync();
            var alternateAccountsTask = _alternateAccountRepository.ReadAllAsync();
            var allPlayersTask        = _teamPlayerRepository.ReadAllForSeasonAsync(seasonInfo.Id);

            var rosters           = await rostersTask;
            var captains          = (await captainsTask).ToList();
            var alternateAccounts = (await alternateAccountsTask).ToList();
            var allPlayers        = (await allPlayersTask).ToList();

            foreach (var roster in rosters)
            {
                var players = allPlayers.Where(x => x.TeamRosterId == roster.Id).ToList();
                var captain = captains.FirstOrDefault(x => x.TeamRosterId == roster.Id);

                var summoners =
                    (await _summonerInfoRepository.GetAllForSummonerIdsAsync(players.Select(x => x.SummonerId))).ToList();

                var alts          = alternateAccounts.Where(x => summoners.Select(y => y.Id).ToList().Contains(x.SummonerId));
                var summonerViews = _summonerMapper.MapDetailed(summoners, alts, new List <PlayerStatsView>()).ToList();
                foreach (var teamPlayerEntity in players)
                {
                    var player = summoners.First(x => x.Id == teamPlayerEntity.SummonerId);

                    var isSub        = teamPlayerEntity.IsSub ?? false;
                    var summonerView = summonerViews.First(x => x.SummonerName == player.SummonerName);
                    summonerView.IsSub = isSub;
                }

                var rosterView = new RosterView
                {
                    RosterId      = roster.Id,
                    Captain       = summoners.FirstOrDefault(x => x.Id == captain?.SummonerId)?.SummonerName,
                    TeamName      = roster.TeamName,
                    Wins          = roster.Wins ?? 0,
                    Loses         = roster.Loses ?? 0,
                    Points        = roster.Points ?? 0,
                    Players       = summonerViews,
                    TeamTierScore = roster.TeamTierScore.GetValueOrDefault()
                };

                var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/logos", roster.Id.ToString());
                if (File.Exists(path))
                {
                    var byteData = await File.ReadAllBytesAsync(path);

                    var base64 = Convert.ToBase64String(byteData);
                    var type   = GetContentType(path);
                    var imgSrc = String.Format($"data:{type};base64,{base64}");
                    rosterView.FileSource = imgSrc;
                }
                rosterView.Cleanup();
                list.Add(rosterView);
            }

            return(list);
        }
        protected void RosterLV_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
            int row = int.Parse(e.CommandArgument.ToString());

            if (e.CommandName.ToString() == "EditContestant")
            {
                foreach (ListViewItem item in RosterLV.Items)
                {
                    (item.FindControl("EditView") as Panel).Visible = false;
                    (item.FindControl("ItemView") as Panel).Visible = true;
                }
                (RosterLV.Items[row].FindControl("EditView") as Panel).Visible = true;
                (RosterLV.Items[row].FindControl("ItemView") as Panel).Visible = false;
            }
            if (e.CommandName.ToString() == "UpdateContestant")
            {
                MessageUserControl.TryRun(() =>
                {
                    RaceDetailController rdsysmgr = new RaceDetailController();
                    RosterView newitem            = new RosterView
                    {
                        RaceDetailID = int.Parse((RosterLV.Items[row].FindControl("ERaceDetailIDLabel") as Label).Text),
                        Name         = (RosterLV.Items[row].FindControl("ENameLabel") as Label).Text,
                        RaceFee      = 0,//decimal.Parse((RosterLV.Items[row].FindControl("ERaceFeeLabel") as Label).Text),
                        CarID        = int.Parse((RosterLV.Items[row].FindControl("ECarDDL") as DropDownList).SelectedValue),
                        RentalFee    = 0,
                        Placement    = string.IsNullOrEmpty((RosterLV.Items[row].FindControl("PlacementLabel") as Label).Text) ? 0 : int.Parse((RosterLV.Items[row].FindControl("PlacementLabel") as Label).Text),
                        Refunded     = (RosterLV.Items[row].FindControl("ERefundedCheckbox") as CheckBox).Checked,
                        Comment      = (RosterLV.Items[row].FindControl("ECommentTextBox") as TextBox).Text,
                        RefundReason = (RosterLV.Items[row].FindControl("EReasonTextBox") as TextBox).Text
                    };
                    rdsysmgr.Update_RosterView(int.Parse(EmployeeDDL.SelectedValue), int.Parse(RaceID.Text), newitem);
                }, "Success", "Successfully updated contestant.");

                RefreshRoster();
            }
            if (e.CommandName.ToString() == "CancelContestant")
            {
                RefreshRoster();
            }
            if (e.CommandName.ToString() == "InsertContestant")
            {
                MessageUserControl.TryRun(() =>
                {
                    RaceDetailController rdsysmgr = new RaceDetailController();
                    RosterView newitem            = new RosterView
                    {
                        Name         = (RosterLV.InsertItem.FindControl("IDriverDDL") as DropDownList).SelectedValue,
                        RaceFee      = decimal.Parse((RosterLV.Items[0].FindControl("ERaceFeeLabel") as Label).Text),
                        CarID        = int.Parse((RosterLV.InsertItem.FindControl("ICarDDL") as DropDownList).SelectedValue),
                        RentalFee    = 0,
                        Placement    = null,
                        Refunded     = false,
                        Comment      = null,
                        RefundReason = null
                    };
                    rdsysmgr.Insert_RosterView(int.Parse(EmployeeDDL.SelectedValue), int.Parse(RaceID.Text), newitem);
                }, "Success", "Successfully inserted contestant.");
                RefreshRoster();
            }
        }