/// <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(); }
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); } } }
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); } } }
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(); } }