private bool checkChangePatrolConnectionTypeIsPossible() { Structs.PatrolConnectionTypeEnum newPatrolConnectionType = (Structs.PatrolConnectionTypeEnum)DDPatrolConnectionType.SelectedIndex; Structs.Patrol[] patrols = CommonCode.GetPatrols(); string listOfPatrolsThatFailedCheck = ""; foreach (Structs.Patrol patrol in patrols) { if (!CommonCode.CheckChangePatrolConnectionTypeIsPossible(patrol, newPatrolConnectionType)) { listOfPatrolsThatFailedCheck += patrol.PatrolId.ToString() + ","; } } if (listOfPatrolsThatFailedCheck.Length > 0) { listOfPatrolsThatFailedCheck = listOfPatrolsThatFailedCheck.Substring(0, listOfPatrolsThatFailedCheck.Length - 1); MessageBox.Show("Du kan inte ändra hur patruller kopplas samman " + "eftersom befintliga patruller inte uppfyller det nya kravet. " + "Patruller med detta problem är:\r\n" + listOfPatrolsThatFailedCheck, "Kan inte spara ändrad tävling", MessageBoxButtons.OK); return(false); } else { return(true); } }
internal bool CheckChangePatrolConnectionTypeIsPossible( Structs.Patrol patrol, Structs.PatrolConnectionTypeEnum newPatrolConnectionType) { Structs.Competitor[] competitors = myInterface.GetCompetitors(patrol); if (competitors.Length == 0) { return(true); // Since there are no competitors, patrol is changeable } Structs.Weapon weapon = myInterface.GetWeapon(competitors[0].WeaponId); Structs.PatrolClass patrolClass = myInterface.ConvertWeaponsClassToPatrolClass( weapon.WClass, newPatrolConnectionType); foreach (Structs.Competitor competitor in competitors) { weapon = myInterface.GetWeapon(competitor.WeaponId); if (patrolClass != myInterface.ConvertWeaponsClassToPatrolClass( weapon.WClass, newPatrolConnectionType)) { return(false); } } return(true); }
internal void ChangePatrolConnectionType( Structs.PatrolConnectionTypeEnum newPatrolConnectionType) { Structs.Patrol[] patrols = myInterface.GetPatrols(); foreach (Structs.Patrol patrol in patrols) { if (!CheckChangePatrolConnectionTypeIsPossible(patrol, newPatrolConnectionType)) { throw new ApplicationException("Trying to change a patrolconnectiontype which isn't possiblen on PatrolId " + patrol.PatrolId); } } foreach (Structs.Patrol patrol in patrols) { ChangePatrolConnectionType(newPatrolConnectionType, patrol); } }
private void ChangePatrolConnectionType( Structs.PatrolConnectionTypeEnum newPatrolConnectionType, Structs.Patrol patrol) { Structs.Competitor[] competitors = myInterface.GetCompetitors(patrol); if (competitors.Length == 0) { return; } Structs.Weapon weapon = myInterface.GetWeapon(competitors[0].WeaponId); Structs.PatrolClass patrolClass = myInterface.ConvertWeaponsClassToPatrolClass( weapon.WClass, newPatrolConnectionType); if (patrolClass != patrol.PClass) { patrol.PClass = patrolClass; myInterface.UpdatePatrol(patrol); } }
static internal Structs.PatrolClass ConvertWeaponsClassToPatrolClass( Structs.WeaponClass weapon, Structs.PatrolConnectionTypeEnum type) { Structs.PatrolClass returnClass = Structs.PatrolClass.Okänd; switch (type) { case Structs.PatrolConnectionTypeEnum.Disparate: { switch (weapon) { case Structs.WeaponClass.Unknown: returnClass = Structs.PatrolClass.Okänd; break; case Structs.WeaponClass.A1: returnClass = Structs.PatrolClass.A; break; case Structs.WeaponClass.A2: returnClass = Structs.PatrolClass.A; break; case Structs.WeaponClass.A3: returnClass = Structs.PatrolClass.A; break; case Structs.WeaponClass.B: returnClass = Structs.PatrolClass.B; break; case Structs.WeaponClass.C: returnClass = Structs.PatrolClass.C; break; case Structs.WeaponClass.R: returnClass = Structs.PatrolClass.R; break; case Structs.WeaponClass.M: returnClass = Structs.PatrolClass.M; break; } break; } case Structs.PatrolConnectionTypeEnum.AR_BC: { switch (weapon) { case Structs.WeaponClass.Unknown: returnClass = Structs.PatrolClass.Okänd; break; case Structs.WeaponClass.A1: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.A2: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.A3: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.B: returnClass = Structs.PatrolClass.BC; break; case Structs.WeaponClass.C: returnClass = Structs.PatrolClass.BC; break; case Structs.WeaponClass.R: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.M: returnClass = Structs.PatrolClass.M; break; } break; } case Structs.PatrolConnectionTypeEnum.AR_B_C_M: { switch (weapon) { case Structs.WeaponClass.Unknown: returnClass = Structs.PatrolClass.Okänd; break; case Structs.WeaponClass.A1: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.A2: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.A3: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.B: returnClass = Structs.PatrolClass.B; break; case Structs.WeaponClass.C: returnClass = Structs.PatrolClass.C; break; case Structs.WeaponClass.R: returnClass = Structs.PatrolClass.AR; break; case Structs.WeaponClass.M: returnClass = Structs.PatrolClass.M; break; } break; } case Structs.PatrolConnectionTypeEnum.ABCRM: { switch (weapon) { case Structs.WeaponClass.Unknown: returnClass = Structs.PatrolClass.Okänd; break; case Structs.WeaponClass.A1: returnClass = Structs.PatrolClass.ABCRM; break; case Structs.WeaponClass.A2: returnClass = Structs.PatrolClass.ABCRM; break; case Structs.WeaponClass.A3: returnClass = Structs.PatrolClass.ABCRM; break; case Structs.WeaponClass.B: returnClass = Structs.PatrolClass.ABCRM; break; case Structs.WeaponClass.C: returnClass = Structs.PatrolClass.ABCRM; break; case Structs.WeaponClass.R: returnClass = Structs.PatrolClass.ABCRM; break; case Structs.WeaponClass.M: returnClass = Structs.PatrolClass.ABCRM; break; } break; } default: { throw new NotImplementedException(type.ToString()); } } return(returnClass); }