Example #1
0
        public void Test2()
        {
            var system = new SolarSystemDto {
                Id = 1, Name = "SystemName"
            };
            var shipItem = new ItemDto {
                Id = 1, Name = "VictimShip"
            };

            Save(system);
            Save(shipItem);

            var kill = new ParsedKillResult {
                Header = new ParsedKillHeader {
                    AllianceName    = "VictimAlliance",
                    CorporationName = "VictimCorp",
                    DamageTaken     = 100,
                    FactionName     = "FactionName",
                    ShipName        = shipItem.Name,
                    SystemName      = system.Name,
                    SystemSecurity  = 9000,
                    Timestamp       = DateTime.Now,
                    VictimName      = "VictimPilot"
                }
            };

            var ks = Resolve <IKillService>();

            ks.CreateKill(kill);

            kill.Header.AllianceName = "SecondAlliance";
            kill.Header.VictimName   = "VictimPilot";

            ks.CreateKill(kill);
        }
        public SolarSystemDto UpdateSolarSystemSignatures(string mainToken, SolarSystemDto dto)
        {
            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(dto.Id);
            var dtoSigIds    = dto.Signatures.Select(x => x.Id).ToHashSet();
            var systemSigIds = system.Signatures.Where(x => x.MaskId == maskId).Select(x => x.Id).ToHashSet();

            //to delete
            foreach (var toDeleteId in systemSigIds.Where(x => !dtoSigIds.Contains(x)).ToList())
            {
                var toDelete = _signatureService.GetBySignatureId(toDeleteId);
                if (toDelete.DestinationId != null)
                {
                    var destoSig = _signatureService.GetBySignatureId(toDelete.DestinationId.Value);
                    destoSig.DestinationId = null;
                    toDelete.DestinationId = null;
                    _signatureService.Update(destoSig);
                    _signatureService.Update(toDelete, commit: true);
                    _signatureService.Delete(destoSig.Id);
                }
                _signatureService.Delete(toDelete.Id, commit: true);
            }

            //to update or add
            foreach (var updateSig in dto.Signatures)
            {
                var systemSig = _signatureService.GetBySignatureId(updateSig.Id);
                if (systemSig == null)
                {
                    //create new sig
                    systemSig = new Signature
                    {
                        SignatureId   = updateSig.SignatureId,
                        ExpiryDate    = updateSig.ExpiryDate,
                        Name          = updateSig.Name,
                        SignatureType = updateSig.SignatureType,
                        MaskId        = maskId,
                        SystemId      = dto.Id
                    };
                    system.Signatures.Add(systemSig);
                }
                else
                {
                    systemSig.SignatureId   = updateSig.SignatureId;
                    systemSig.ExpiryDate    = updateSig.ExpiryDate;
                    systemSig.Name          = updateSig.Name;
                    systemSig.SignatureType = updateSig.SignatureType;
                }
                _solarSystemService.UpdateSystem(system);
                _signatureService.WormholeSigUpdate(updateSig, systemSig, maskId);
            }

            _solarSystemService.UpdateSystem(system);

            return(GetSolarSystemById(mainToken, dto.Id));
        }
        public static SolarSystemDto CreateSolarSystem(int x, int y, int z)
        {
            var rand  = new Random(Calculate.CalculateProceruralSeed(Settings, x, y, z));
            var value = rand.Next() % _modulo;

            var solarSystem = new SolarSystemDto
            {
                CordX = x,
                CordY = y,
                CordZ = z
            };

            solarSystem.Star    = CreateStar(value);
            solarSystem.Planets = CreatePlanets(value, solarSystem.Star.Temperature);

            return(solarSystem);
        }
Example #4
0
        private static void ImportSolarSystemToDatabase(SolarSystemDto solarSystemDto)
        {
            if (solarSystemDto?.Name == null)
            {
                throw new ArgumentNullException("Name cannot be null!");
            }

            SolarSystem newSolarSystem = new SolarSystem()
            {
                Name = solarSystemDto.Name
            };

            using (var db = new MassDefectDatabaseContext())
            {
                db.SolarSystems.Add(newSolarSystem);
                db.SaveChanges();
            }
        }