コード例 #1
0
        internal static bool CreateContract(int id, int volume, decimal price, string contractType, bool materialIncluded, bool blueprintIncluded, string description, bool enablePartition)
        {
            var users = GetUsers();
            var user  = users.FirstOrDefault(x => x.GetAccessToken() != null);

            if (user == null)
            {
                return(false);
            }

            var blueprint = _eoiDataBlueprints.FirstOrDefault(x => x.Id == id);

            if (blueprint == null)
            {
                return(false);
            }

            var corporationWebContractType = CorporationWebContractTypes.Buy;

            if (contractType == ContractType.Sell)
            {
                corporationWebContractType = CorporationWebContractTypes.Sell;
            }

            var success = CorporationWebInterface.CreateContract(user.Name, id, volume, price, corporationWebContractType, materialIncluded, blueprintIncluded, description, enablePartition);

            if (success)
            {
                SynchronizeCorporationContracts();
                return(true);
            }

            return(false);
        }
コード例 #2
0
        public EoiDataUser(FileSystemDataUser user)
        {
            _fileSystemUser = user;

            if (_fileSystemUser.TokenResponse != null)
            {
                var token = WebDataInterface.RefreshAccessToken(_fileSystemUser.TokenResponse.refresh_token);
                if (token != null)
                {
                    if (this.Id == 0)
                    {
                        Authenticate(token);
                    }

                    _fileSystemUser.TokenResponse = token;
                    FileSystemDataInterface.ExportUsers();
                }
            }

            if (_fileSystemUser != null && _fileSystemUser.TokenResponse != null)
            {
                CorporationWebInterface.RegisterUser(_fileSystemUser.Name);
            }

            this.Name = user.Name;
        }
コード例 #3
0
        private static void InitializeContracts()
        {
            _eoiDataContracts = new List <EoiDataContract>();
            var users = GetUsers();
            var user  = users.FirstOrDefault(x => x.GetAccessToken() != null);

            if (user != null)
            {
                var contracts = CorporationWebInterface.GetContracts(user.Name);
                foreach (var contract in contracts)
                {
                    _eoiDataContracts.Add(new EoiDataContract(contract));
                }
            }
        }
コード例 #4
0
        internal static bool SynchronizeCorporationContracts()
        {
            var updated = false;

            var users = GetUsers();
            var user  = users.FirstOrDefault(x => x.GetAccessToken() != null);

            if (user != null)
            {
                _eoiDataContracts.ForEach(x => x.Synchronized = false);
                var corpContracts = CorporationWebInterface.GetContracts(user.Name);

                foreach (var corpContract in corpContracts)
                {
                    EoiDataContract eoiDataContract = _eoiDataContracts.FirstOrDefault(x => x.Id == corpContract.Id);
                    if (eoiDataContract == null)
                    {
                        eoiDataContract = new EoiDataContract(corpContract);
                        eoiDataContract.Synchronized = true;
                        _eoiDataContracts.Add(eoiDataContract);
                        EoiInterface.InvokeDispatcherAddContract(eoiDataContract.GetEoiContract());
                        updated = true;
                    }
                    else
                    {
                        if (eoiDataContract.Synchronize(corpContract))
                        {
                            updated = true;
                        }
                    }
                }

                var notSynchronizedContracts = _eoiDataContracts.Where(x => !x.Synchronized).ToList();
                foreach (var contract in notSynchronizedContracts)
                {
                    EoiInterface.InvokeDispatcherRemoveContract(contract.GetEoiContract());
                    contract.Dispose();
                    _eoiDataContracts.Remove(contract);
                }
            }

            if (updated)
            {
                EoiInterface.InvokeDispatcherContractsPropertyChanged();
            }

            return(updated);
        }
コード例 #5
0
        internal static void Finish(EoiContract eoiContract)
        {
            var contract = _eoiDataContracts.FirstOrDefault(x => Equals(x.GetEoiContract(), eoiContract));

            if (contract != null)
            {
                var users = GetUsers();
                var user  = users.FirstOrDefault(x => x.GetAccessToken() != null);
                if (user != null)
                {
                    var success = CorporationWebInterface.FinishContract(user.Name, contract.Id);
                    if (success)
                    {
                        SynchronizeCorporationContracts();
                    }
                }
            }
        }
コード例 #6
0
        internal static bool AcceptContract(EoiContract eoiContract, int selectedVolume)
        {
            var contract = _eoiDataContracts.FirstOrDefault(x => Equals(x.GetEoiContract(), eoiContract));

            if (contract != null)
            {
                var users = GetUsers();
                var user  = users.FirstOrDefault(x => x.GetAccessToken() != null);
                if (user != null)
                {
                    var success = CorporationWebInterface.AcceptContract(user.Name, contract.Id, selectedVolume);
                    if (success)
                    {
                        SynchronizeCorporationContracts();
                        return(true);
                    }
                }
            }

            return(false);
        }
コード例 #7
0
        internal void VerifyUser(RawEsiVerify verifyResult, RawAccessTokenResponse token)
        {
            _fileSystemUser.TokenResponse = token;
            _fileSystemUser.Name          = verifyResult.CharacterName;
            _fileSystemUser.Id            = verifyResult.CharacterID;

            FileSystemDataInterface.ExportUsers();

            this.Id   = verifyResult.CharacterID;
            this.Name = verifyResult.CharacterName;

            if (_eoiUser != null)
            {
                _eoiUser.Name          = verifyResult.CharacterName;
                _eoiUser.IsDefault     = false;
                _eoiUser.Authenticated = true;
                _eoiUser.InvokePropertyChanged();
            }

            CorporationWebInterface.RegisterUser(_fileSystemUser.Name);
        }
コード例 #8
0
        internal static bool SynchronizeBlueprints()
        {
            var updated = false;

            if (SettingsInterface.GlobalSettings.EnableEsiBlueprintsUpdates)
            {
                BackgroundWorker.Status = new BackgroundWorkerStatus("Synchronisiere Eve Online Blueprints", -1);

                var users = GetUsers();

                if (users.Any(x => x.GetAccessToken() != null))
                {
                    EsiDataInterface.ClearBlueprints();

                    foreach (var user in users)
                    {
                        var token = user.GetAccessToken();
                        if (token != null && user.Id != 0)
                        {
                            EsiDataInterface.UpdateBlueprints(token, user.Id);
                        }
                    }

                    var blueprints = EsiDataInterface.GetBlueprints();

                    foreach (var blueprint in _eoiDataBlueprints)
                    {
                        var esiDataBlueprint = blueprints.FirstOrDefault(x => x.Id == blueprint.Id);
                        if (esiDataBlueprint != null)
                        {
                            if (blueprint.Synchronize(esiDataBlueprint))
                            {
                                updated = true;
                            }
                        }
                        else
                        {
                            if (blueprint.SynchronizedReset())
                            {
                                updated = true;
                            }
                        }
                    }

                    foreach (var blueprint in _eoiDataBlueprints)
                    {
                        blueprint.UpdateInventable();
                    }
                }

                if (SettingsInterface.GlobalSettings.EnableCorporationBlueprintsUpdates)
                {
                    BackgroundWorker.Status = new BackgroundWorkerStatus("Synchronisiere Corporation Blueprints", -1);
                    var user = users.FirstOrDefault(x => x.GetAccessToken() != null);
                    if (user != null)
                    {
                        var eoiDataBlueprints = GetBlueprints();
                        foreach (var blueprint in eoiDataBlueprints)
                        {
                            var bp = blueprint.GetCorporationBlueprint();
                            if (bp != null)
                            {
                                var success = CorporationWebInterface.SetBlueprint(user.Name, bp);
                                if (!success)
                                {
                                }
                            }
                        }

                        var corpBlueprints = CorporationWebInterface.GetBlueprints(user.Name, user.Name);
                        foreach (var corpBp in corpBlueprints)
                        {
                            var eoiDataBlueprint = eoiDataBlueprints.FirstOrDefault(x => x.Id == corpBp.Id);
                            if (eoiDataBlueprint != null && eoiDataBlueprint.GetCorporationBlueprint() == null)
                            {
                                // Blueprint on Server that should not be there -> Delete
                                CorporationWebInterface.DeleteBlueprint(user.Name, corpBp.Id);
                            }
                        }

                        corpBlueprints = CorporationWebInterface.GetBlueprints(user.Name);
                        _eoiDataBlueprints.Where(x => x.CorporationOwned).ToList().ForEach(x => x.UnsetCorporationBlueprint());
                        foreach (var bp in corpBlueprints)
                        {
                            var eoiDataBlueprint = _eoiDataBlueprints.FirstOrDefault(x => x.Id == bp.Id);
                            if (eoiDataBlueprint != null)
                            {
                                if (eoiDataBlueprint.SetCorporationBlueprint(bp))
                                {
                                    updated = true;
                                }
                            }
                        }
                    }
                }
            }

            return(updated);
        }