public List <SignatureDto> GetPossibleJumpSignatures(string mainToken, int originId, int destoId) { var res = new List <SignatureDto>(); var main = _characterService.GetMainCharacterByToken(mainToken); var maskId = main.MaskType == MaskType.Alliance && main.Pilot.Corporation.AllianceId != null ? main.Pilot.Corporation.Alliance.MaskId : main.Pilot.Corporation.MaskId; var originSystem = _solarSystemService.GetSystemById(originId); var destoSystem = _solarSystemService.GetSystemById(destoId); var originSigs = originSystem.Signatures.Where(x => x.MaskId == maskId).Select(x => x).ToList(); var directConnection = originSigs.FirstOrDefault(x => x.Destination?.SystemId == destoId); if (directConnection != null) { res.Add(_mapper.Map <SignatureDto>(directConnection)); return(res); } var destoTypeMatchSigs = originSigs.Where(x => x.DestinationId == null && x.WormholeType?.LeadsToId == destoSystem.SystemTypeId).ToList(); if (destoTypeMatchSigs.Count > 0) { res.AddRange(_mapper.Map <List <SignatureDto> >(destoTypeMatchSigs)); return(res); } var originWormholes = originSigs.Where(x => x.SignatureType == SignatureType.Wormhole && x.DestinationId == null).ToList(); if (originWormholes.Count == 0) { originWormholes = originSigs.Where(x => x.SignatureType == SignatureType.Unknown && x.DestinationId == null).ToList(); } res.AddRange(_mapper.Map <List <SignatureDto> >(originWormholes)); return(res); }
public SolarSystemDto GetSolarSystemById(string mainToken, int systemId) { var main = _characterService.GetMainCharacterByToken(mainToken); var maskId = main.MaskType == MaskType.Alliance && main.Pilot.Corporation.AllianceId != null ? main.Pilot.Corporation.Alliance.MaskId : main.Pilot.Corporation.MaskId; var system = _solarSystemService.GetSystemById(systemId); var res = _mapper.Map <SolarSystemDto>(system); res.Signatures = _mapper.Map <List <SignatureDto> >(system.Signatures.Where(x => x.MaskId == maskId)); res.Pilots = _mapper.Map <List <ActivePilotDto> >(system.Pilots.Where(x => x.MainCharacter.MaskType == MaskType.Corp ? (x.MainCharacter.Pilot.Corporation.MaskId == maskId) : x.MainCharacter.Pilot.Corporation.AllianceId != null && x.MainCharacter.Pilot.Corporation.Alliance.MaskId == maskId)); res.Notes = _mapper.Map <List <SolarSystemNoteDto> >(system.Notes.Where(x => x.MaskId == maskId)); res.Tags = _mapper.Map <List <SolarSystemTagDto> >(system.Tags.Where(x => x.MaskId == maskId)); res.Structures = _mapper.Map <List <SolarSystemStructureDto> >(system.Structures.Where(x => x.MaskId == maskId)); res.IsFavorite = main.FavoriteSystems.Any(x => x.SolarSystemId == systemId); res.Dscans = system.Dscans.Where(x => x.MaskId == maskId).OrderByDescending(x => x.CreationDate).Select(x => new DscanDto { Id = x.Id, SolarSystemId = x.SolarSystemId, DscanShipGroups = x.DscanShips.GroupBy(s => s.ShipType.ItemGroup.Name).Select(s => new DscanShipGroupDto { GroupName = s.Key, GroupCount = s.Count(), ShipTypes = s.GroupBy(r => r.ShipType.Name).ToDictionary(r => r.Key, r => r.Count()) }).ToList(), CreationDate = x.CreationDate }).ToList(); res.Dscans.ForEach(d => d.DscanShipGroups = d.DscanShipGroups.OrderByDescending(x => x.GroupCount).ToList()); return(res); }
public MapDto GetMapForRootId(string mainToken, int systemId, string customName, int maxGateLevel) { var main = _characterService.GetMainCharacterByToken(mainToken); var maskId = main.MaskType == MaskType.Alliance && main.Pilot.Corporation.AllianceId != null ? main.Pilot.Corporation.Alliance.MaskId : main.Pilot.Corporation.MaskId; var system = _solarSystemService.GetSystemById(systemId); var res = Map(system, customName, maskId, maxGateLevel); return(res); }