public static Event ParseEvent(HtmlNode node, int quarter) { HtmlNodeCollection nodes = node.SelectNodes("td"); if (nodes.Count < 2) { return(null); } float eventTime = EventTime(nodes[0].InnerText); EventTeam team = GetEventTeam(nodes); HtmlNode detailsNode = team == EventTeam.Home ? nodes[5] : nodes[1]; HtmlNodeCollection urlNodes; string text = GetTextAndRemoveUrlNodes(node, out urlNodes); EventType type = GetEventType(text); Event matchEvent = GetEvent(text, urlNodes, type); matchEvent.SetEventDetails(team, type, quarter, eventTime); return(matchEvent); }
/// <summary> /// Возвращает одежду игрока для эвента /// </summary> internal static List <ClothesModel> GetEventClothes(EventTeam team, bool isMale) { var head = new ClothesModel { Slot = 0, Variation = isMale ? 20 : 22, Texture = isMale ? 5 : 3, IsClothes = false }; var top = new ClothesModel { Slot = 11, Undershirt = isMale ? 57 : 3, IsClothes = true }; if (team == EventTeam.Red) { top.Variation = isMale ? 14 : 169; top.Texture = isMale ? 9 : 2; top.Torso = isMale ? 0 : 15; } else { top.Variation = isMale ? 14 : 195; top.Texture = isMale ? 0 : 8; top.Torso = isMale ? 0 : 4; } var legs = new ClothesModel { Slot = 4, Variation = isMale ? 43 : 4, IsClothes = true }; var feets = new ClothesModel { Slot = 6, Variation = isMale ? 12 : 4, IsClothes = true }; return(new List <ClothesModel> { head, top, legs, feets }); }
public void SetEventDetails(EventTeam team, EventType type, int quarter, float timeRemaining) { Team = team; Type = type; Quarter = quarter; TimeRemaining = timeRemaining; }
public string Execute(string[] inputArgs) { string eventName = inputArgs[0]; string teamName = inputArgs[1]; if (String.IsNullOrWhiteSpace(teamName) || String.IsNullOrWhiteSpace(eventName)) { throw new InvalidOperationException("Invalid data."); } AuthenticationManager.Authorize(); using (var db = new TeamBuilderContext()) { var currEvent = db.Events .Include(x => x.Creator) .FirstOrDefault(x => x.Name == eventName); var team = db.Teams .FirstOrDefault(x => x.Name == teamName); var loggedUser = AuthenticationManager.GetCurrentUser(); if (currEvent == null) { throw new ArgumentException($"Event {eventName} not found!"); } if (team == null) { throw new ArgumentException($"Team {teamName} not found!"); } if (loggedUser.UserId != currEvent.CreatorId) { throw new InvalidOperationException("Not allowed!"); } bool alreadyAdded = db.EventTeams .Any(x => x.EventId == currEvent.EventId && x.TeamId == team.TeamId); if (alreadyAdded) { throw new ArgumentException($"Cannot add same team twice!"); } var eventTeam = new EventTeam() { EventId = currEvent.EventId, TeamId = team.TeamId }; currEvent.ParticipatingEventTeams.Add(eventTeam); db.SaveChanges(); } return($"Team {teamName} added for {eventName}!"); }
public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath, EventTeam item) { var cell = tableView.DequeueReusableCell("EventTeamsCell", indexPath) as EventTeamsCell; cell.SetData(item); cell.SelectionStyle = UITableViewCellSelectionStyle.None; return(cell); }
public string Execute(string[] inputArgs) { Check.CheckLength(2, inputArgs); AuthenticationManager.Authorize(); string eventName = inputArgs[0]; if (!CommandHelper.IsEventExisting(eventName)) { throw new ArgumentException(string.Format(Constants.ErrorMessages.EventNotFound, eventName)); } string teamName = inputArgs[1]; if (!CommandHelper.IsTeamExisting(teamName)) { throw new ArgumentException(string.Format(Constants.ErrorMessages.TeamNotFound, teamName)); } User currentUser = AuthenticationManager.GetCurrentUser(); if (!CommandHelper.IsUserCreatorOfEvent(eventName, currentUser)) { throw new InvalidOperationException(Constants.ErrorMessages.NotAllowed); } using (var context = new TeamBuilderContext()) { Event @event = context.Events .Where(e => e.Name == eventName) .OrderByDescending(et => et.StartDate) .First(); Team team = context.Teams .Single(t => t.Name == teamName); bool eventTeamExist = context.EventTeams .Any(et => et.EventId == @event.Id && et.TeamId == team.Id); if (eventTeamExist) { throw new InvalidOperationException(Constants.ErrorMessages.CannotAddSameTeamTwice); } var eventTeam = new EventTeam { Event = @event, Team = team }; context.EventTeams.Add(eventTeam); context.SaveChanges(); } return($"Team {teamName} added for {eventName}!"); }
/// <summary> /// Перемещает игроков на эвент /// </summary> private void MovePlayersToEvent(IReadOnlyList <Client> teamMembers, EventTeam team) { for (var i = 0; i < teamMembers.Count; i++) { var member = teamMembers[i]; API.removeAllPlayerWeapons(member); SetEventData(member, team, i); } }
/// <summary> /// Устанавливает параметры игрока перед эвентом /// </summary> protected override void SetEventData(Client player, EventTeam team, int index) { var isPrisoner = team == EventTeam.Red; var position = isPrisoner ? PrisonRiotData.PrisonersPositions[index] : PrisonRiotData.OfficersPositions[index]; API.setEntityPosition(player, position); API.setEntityDimension(player, EVENT_DIMENSION); API.setPlayerSkin(player, PrisonRiotData.GetSkin(isPrisoner)); API.givePlayerWeapon(player, PrisonRiotData.GetWeapon(isPrisoner), 0, true); }
public Task <int> SaveEventTeamAsync(EventTeam item) { // note: the caller must let this resolve before item.Id is first // available, using either "await" or "int x = ...().Result;" if (item.Uuid == null) { item.Uuid = Guid.NewGuid().ToString(); } return(_database.InsertOrReplaceAsync(item)); }
public HttpResponseMessage PostEventTeam(EventTeam item) { item.Id = null; // clear for autoincrement item = repository.Add(item); var response = Request.CreateResponse(HttpStatusCode.Created, item); string uri = Url.Link("DefaultApi", new { uuid = item.Uuid }); response.Headers.Location = new Uri(uri); return(response); }
/// <summary> /// Очистить ресурсы /// </summary> private static void Dispose() { _members.Clear(); _redTeam.Clear(); _blueTeam.Clear(); ClientEventHandler.Remove(ClientEvent.EVENT_PARTICIPATION); ClientEventHandler.Remove(ClientEvent.START_EVENT); Winners = EventTeam.None; API.shared.deleteColShape(_eventZone); }
public EventTeam GetEventTeam(string uuid) { EventTeam item = repository.GetByUuid(uuid); if (item == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return(item); }
/// <summary> /// Устанавливает параметры игрока перед эвентом /// </summary> protected override void SetEventData(Client player, EventTeam team, int index) { var position = team == EventTeam.Red ? CountryBreakdownData.RedTeamPositions[index] : CountryBreakdownData.BlueTeamPositions[index]; API.setEntityPosition(player, position); API.setEntityDimension(player, EVENT_DIMENSION); API.givePlayerWeapon(player, CountryBreakdownData.GetWeapon(), 300, true); var clothes = CountryBreakdownData.GetEventClothes(team, PlayerInfoManager.IsMale(player)); GtaCharacter.SetClothes(player, clothes); }
/// <summary> /// Устанавливает параметры игрока перед эвентом /// </summary> protected override void SetEventData(Client player, EventTeam team, int index) { var position = team == EventTeam.Red ? SniperBattleData.RedTeamPositions[index] : SniperBattleData.BlueTeamPositions[index]; API.setEntityPosition(player, position); API.setEntityDimension(player, EVENT_DIMENSION); API.givePlayerWeapon(player, WeaponHash.HeavySniper, 50, true); var clothes = SniperBattleData.GetEventClothes(team, PlayerInfoManager.IsMale(player)); GtaCharacter.SetClothes(player, clothes); }
/// <summary> /// Обработчик смерти игрока /// </summary> protected void OnPlayerDeath(Client player, NetHandle enityKiller) { player.setData(PlayerData.WAS_KILLED, true); var killer = GetKiller(player, enityKiller); SendKillMessage(player, killer); if ((Winners = GetWinnerTeam()) != EventTeam.None) { Task.Run(() => Finish()); } }
public string Execute(string[] args) { Check.CheckLength(2, args); AuthenticationManager.Authorize(); string eventName = args[0]; string teamName = args[1]; if (!CommandHelper.IsEventExisting(eventName)) { throw new ArgumentException(string.Format(Constants.ErrorMessages.EventNotFound, eventName)); } else if (!CommandHelper.IsTeamExisting(teamName)) { throw new ArgumentException(string.Format(Constants.ErrorMessages.TeamNotFound, teamName)); } User currentUser = AuthenticationManager.GetCurrentUser(); if (!CommandHelper.IsUserCreatorOfEvent(eventName, currentUser)) { throw new InvalidOperationException(Constants.ErrorMessages.NotAllowed); } else if (CommandHelper.TeamIsMemberOfEvent(eventName, teamName)) { throw new InvalidOperationException(Constants.ErrorMessages.CannotAddSameTeamTwice); } using (var context = new TeamBuilderContext()) { Team team = context.Teams .Include(t => t.UserTeams) .FirstOrDefault(t => t.Name == teamName); Event ev = context.Events .Include(e => e.ParticipatingEventTeams) .FirstOrDefault(e => e.Name == eventName); var eventTeam = new EventTeam { Team = team, TeamId = team.Id, Event = ev, EventId = ev.Id }; team.Events.Add(eventTeam); ev.ParticipatingEventTeams.Add(eventTeam); context.Entry(eventTeam).State = EntityState.Added; context.SaveChanges(); } return($"Team {teamName} added for {eventName}!"); }
public void SetData(EventTeam item) { lblSchool.Text = item.SchoolName; lblSport.Text = item.SportName; lblScore.Text = item.Score; imageTask?.Cancel(item.ProfileUrl); if (!string.IsNullOrEmpty(item.ProfileUrl)) { imageTask = new ImageLoaderHelper(item.ProfileUrl, imgProfile, "DefaultProfile"); } }
public string Excecute(string[] inputArgs) { string eventName = inputArgs[0]; string teamName = inputArgs[1]; using (var db = new TeamBuilderContext()) { var eve = db.Events.Include(e => e.Creator) .SingleOrDefault(e => e.Name == eventName); var team = db.Teams.SingleOrDefault(t => t.Name == teamName); if (eve == null) { throw new ArgumentException($"Event {eventName} not found!"); } if (team == null) { throw new ArgumentException($"Team {teamName} not found!"); } User currentUser = Session.User; if (eve.Creator.Username != currentUser.Username) { throw new InvalidOperationException($"Not allowed!"); } if (db.EventTeams.Any(et => et.Event == eve && et.Team == team)) { throw new InvalidOperationException($"Cannot add same team twice!"); } if (Session.User == null) { throw new InvalidOperationException($"You should login first!"); } EventTeam eventTeam = new EventTeam() { Team = team, Event = eve }; db.EventTeams.Add(eventTeam); db.SaveChanges(); return($"Team {teamName} added for {eventName}!"); } }
public void AddTeamTo(string eventName, Team newTeam) { Event ev = this.ByName(eventName); EventTeam newEventTeam = new EventTeam { EventId = ev.Id, TeamId = newTeam.Id, }; this.context.EventTeams.Add(newEventTeam); this.context.SaveChanges(); }
public void PutEventTeam(string uuid, EventTeam item) { EventTeam oldItem = repository.GetByUuid(uuid); // only update if new .Changed is greater if (oldItem != null && oldItem.Changed < item.Changed) { item.Uuid = uuid; if (!repository.Update(item)) { throw new HttpResponseException(HttpStatusCode.NotFound); } } }
//• AddTeamTo <eventName> <teamName> public string Execute(string[] inputArgs) { Check.CheckLength(2, inputArgs); var eventName = inputArgs[0]; var teamName = inputArgs[1]; if (!CommandHelper.IsTeamExisting(teamName)) { throw new ArgumentException(string.Format(Constants.ErrorMessages.TeamNotFound, teamName)); } if (!CommandHelper.IsEventExisting(eventName)) { throw new ArgumentException(string.Format(Constants.ErrorMessages.EventNotFound, eventName)); } var user = AuthenticationManager.GetCurrentUser(); using (var context = new TeamBuilderContext()) { var team = context.Teams.FirstOrDefault(e => e.Name == teamName); var eventObj = context.Events.FirstOrDefault(e => e.Name == eventName); if (user.Id != eventObj.CreatorId) { throw new InvalidOperationException(Constants.ErrorMessages.NotAllowed); } if (context.EventTeams.Any(x => x.EventId == eventObj.Id && x.TeamId == team.Id)) { throw new InvalidOperationException(Constants.ErrorMessages.CannotAddSameTeamTwice); } var teamEvent = new EventTeam() { TeamId = team.Id, EventId = eventObj.Id }; context.EventTeams.Add(teamEvent); context.SaveChanges(); } return($"Team {teamName} added for {eventName}!"); }
public static IDictionary <Skill, double> GetTotalsPerSkill(this EventTeam team) { var result = new Dictionary <Skill, double>(); var skills = team.Users.SelectMany(u => u.UserSkills.Select(s => s.Skill)).Distinct(); foreach (var skill in skills) { double total = 0; foreach (var user in team.Users) { total += user.UserSkills.Where(s => s.Skill == skill).FirstOrDefault().Ratings.Average(r => r.Mark); } result.Add(skill, total); } return(result); }
/// <summary> /// Возвращает одежду игрока для эвента /// </summary> internal static List <ClothesModel> GetEventClothes(EventTeam team, bool isMale) { var top = new ClothesModel { Slot = 11, Undershirt = isMale ? 57 : 3, Torso = 0, IsClothes = true }; if (team == EventTeam.Red) { top.Variation = isMale ? 1 : 0; top.Texture = isMale ? 4 : 5; } else { top.Variation = isMale ? 47 : 0; top.Texture = isMale ? 0 : 6; } return(new List <ClothesModel> { top }); }
public static void AddTeamToEvent(string teamName, string eventName) { using (TeamBuilderContext context = new TeamBuilderContext()) { Event @event = GetEventByName(eventName); Team team = GetTeamByTeamName(teamName); EventTeam eventTeam = new EventTeam() { EventId = @event.Id, TeamId = team.Id, }; @event.ParticipatingEventTeams.Add(eventTeam); team.EventTeams.Add(eventTeam); context.EventsTeams.Add(eventTeam); context.SaveChanges(); } }
private static void AddTeamTo(string eventName, string teamName) { using (var db = new TeamBuilderContext()) { var events = db .Events .Where(e => e.Name == eventName) .ToList(); var eventId = default(int); if (events.Count > 1) { DateTime?latestDate = events .Max(e => e.StartDate); eventId = events .Single(e => e.StartDate == latestDate) .Id; } if (events.Count == 1) { eventId = events.First().Id; } var teamId = db .Teams .First(t => t.Name == teamName) .Id; var currentTeamEvent = new EventTeam() { EventId = eventId, TeamId = teamId }; db.EventTeams.Add(currentTeamEvent); db.SaveChanges(); } }
public void AddTeamToEvent(string eventName, string teamName, User currentUser) { Event @event = this.dbContext .Events .OrderByDescending(e => e.StartDate) .FirstOrDefault(e => e.Name == eventName); if (@event == null) { throw new ArgumentException(string.Format(Constants.ErrorMessages.EventNotFound, eventName)); } Team team = this.dbContext .Teams .FirstOrDefault(t => t.Name == teamName); if (team == null) { throw new ArgumentException(string.Format(Constants.ErrorMessages.TeamNotFound, teamName)); } if (CommandHelper.IsUserCreatorOfTeam(this.dbContext, teamName, currentUser)) { throw new InvalidOperationException(Constants.ErrorMessages.NotAllowed); } EventTeam eventTeam = this.dbContext .EventTeams .FirstOrDefault(et => et.TeamId == team.Id && et.EventId == @event.Id); if (eventTeam != null) { throw new InvalidOperationException(Constants.ErrorMessages.CannotAddSameTeamTwice); } EventTeam newEventTeam = new EventTeam(@event.Id, team.Id); this.dbContext.EventTeams.Add(newEventTeam); this.dbContext.SaveChanges(); }
public void GetTotalsPerSkill_Flow_IDictionarySkillDouble() { var skill = new Skill { Id = 1 }; var mark = 7.0; var dict = new Dictionary <Skill, double> { { skill, mark } }; var eventTeam = new EventTeam { Users = new List <User> { new User { Id = 1, UserSkills = new List <UserSkill> { new UserSkill { Skill = skill, Ratings = new List <Rating> { new Rating { Mark = mark } } } } } } }; var result = EventTeamExtension.GetTotalsPerSkill(eventTeam); Assert.AreEqual(dict.First(), result.First()); }
View GetView(EventTeam item, int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { view = LayoutInflater.Inflate(Resource.Layout.EventTeamItem, null); } view.FindViewById <TextView>(Resource.Id.lblSchool).Text = item.SchoolName; view.FindViewById <TextView>(Resource.Id.lblSport).Text = item.SportName; view.FindViewById <TextView>(Resource.Id.lblScore).Text = item.Score; var profileImageView = view.FindViewById <ImageViewAsync>(Resource.Id.imgProfile); profileImageView.Tag?.CancelPendingTask(item.ProfileUrl); var task = ImageService.Instance.LoadUrl(item.ProfileUrl) .Retry(3, 300) .LoadingPlaceholder(Resource.Drawable.DefProfPic.ToString(), ImageSource.CompiledResource) .Into(profileImageView); profileImageView.Tag = new ImageLoaderHelper(task); return(view); }
//AddTeamTo <eventName> <teamName> internal static string Execute(string[] data) { Check.CheckLength(2, data); var currentUser = AuthenticationManager.GetCurrentUser(); var eventName = data[0]; var teamName = data[1]; bool isUserCreatorOfEvent = CommandHelper.IsUserCreatorOfEvent(eventName, currentUser); bool teamExists = CommandHelper.IsTeamExisting(teamName); bool eventExists = CommandHelper.IsEventExisting(eventName); if (!eventExists) { throw new ArgumentException(string.Format(Constants.ErrorMessages.EventNotFound, eventName)); } if (!teamExists) { throw new ArgumentException(string.Format(Constants.ErrorMessages.TeamNotFound, teamName)); } if (!isUserCreatorOfEvent) { throw new InvalidOperationException(Constants.ErrorMessages.NotAllowed); } using (var context = new TeamBuilderContext()) { var @event = context.Events .Where(e => e.Name == eventName) .OrderByDescending(e => e.StartDate) .First(); var team = context.Teams.Single(t => t.Name == teamName); var eventTeam = new EventTeam { Event = @event, Team = team }; bool isTeamAddedToEvent = context.Events.Any(e => e.ParticipatingEventTeams.Any(et => et.Team == team)); if (isTeamAddedToEvent) { throw new InvalidOperationException(Constants.ErrorMessages.CannotAddSameTeamTwice); } context.Events .Where(e => e.Name == eventName) .OrderByDescending(e => e.StartDate) .First() .ParticipatingEventTeams.Add(eventTeam); context.SaveChanges(); return($"Team {teamName} added for {eventName}!"); } }
public void RateUser_Flow_ViewResult() { //Arange var mainUser = new User { Id = 1, FirstName = "Unit", LastName = "Test", UserName = "******", }; var users = new List <User>() { mainUser }.AsQueryable(); var mainSkill = new Skill { Description = "Unit test skill description", Id = 1, Name = "Unit test skill" }; var skills = new List <Skill>() { mainSkill }.AsQueryable(); var mainGroup = new Group { Id = 1, Category = "Unit Category", CreatedOn = DateTime.Now, GroupName = "Unit Group", GroupCreator = mainUser.Id, Users = users.ToList(), Skills = skills.ToList() }; var groups = new List <Group>() { mainGroup }.AsQueryable(); var mainEvent = new Event { Id = 1, CreatedOn = DateTime.Now, EventName = "Unit Event", EventCreator = mainUser, Skills = skills.ToList(), Group = mainGroup, }; var mainTeam = new EventTeam { Event = mainEvent }; var teams = new List <EventTeam>() { mainTeam }.AsQueryable(); mainEvent.Teams = teams.ToList(); var events = new List <Event>() { mainEvent }.AsQueryable(); var mockContext = new Mock <Context>(); var mockGroups = MockHelper.MockDbSet(groups); mockContext.SetupGet(c => c.Groups).Returns(mockGroups.Object); var mockUsers = MockHelper.MockDbSet(users); mockContext.SetupGet(c => c.Users).Returns(mockUsers.Object); var mockEvents = MockHelper.MockDbSet(events); mockContext.SetupGet(c => c.Events).Returns(mockEvents.Object); var mockSkills = MockHelper.MockDbSet(skills); mockContext.SetupGet(c => c.Skills).Returns(mockSkills.Object); var mockTeams = MockHelper.MockDbSet(teams); mockContext.SetupGet(c => c.EventTeams).Returns(mockTeams.Object); var controller = new GroupController(mockContext.Object); // Act ViewResult resultGroup = controller.RateUser(mainGroup.Id) as ViewResult; ViewResult resultUser = controller.RateUser(0, mainUser.Id) as ViewResult; ViewResult resultTeam = controller.RateUser(0, 0, mainTeam.Id) as ViewResult; // Assert Assert.IsNotNull(resultGroup); Assert.IsNotNull(resultUser); Assert.IsNotNull(resultTeam); }