Beispiel #1
0
    /// <summary>
    /// Retreiving data when ManageContracts is oppened in STANDARDUSER
    /// </summary>
    public void RetreiveDataForSelectedConract()
    {
        FirebaseDatabase.DefaultInstance
        .GetReference("USERS").Child(LoginAndRegisterManager.Instance.CustomMasterUserID)
        .GetValueAsync().ContinueWith(task =>
        {
            if (task.IsFaulted)
            {
                // Handle the error...
            }
            else if (task.IsCompleted)
            {
                DataSnapshot snapshot = task.Result;
                Contracts             = new AllContracts();
                string res            = snapshot.GetRawJsonValue();
                Contracts             = JsonUtility.FromJson <AllContracts>(res);

                if (Contracts != null)
                {
                    areThereActiveContracts = true;
                    //MasterUserManager.Instance.MasterContractID = 0;
                    //PlayerPrefs.SetInt("mstrcontractcounter", MasterUserManager.Instance.MasterContractID);
                    //MasterUserManager.Instance.MasterContractID = PlayerPrefs.GetInt("mstrcontractcounter", MasterUserManager.Instance.MasterContractID);
                    if (Contracts.GAMESPACE.CONTRACT0 != null)
                    {
                        ContractsForManaging[0].SingleContract.ContractDescription = Contracts.GAMESPACE.CONTRACT0.ContractDescription;
                        ContractsForManaging[0].SingleContract.ContractID          = Contracts.GAMESPACE.CONTRACT0.ContractID;
                        ContractsForManaging[0].SingleContract.isContractStarted   = Contracts.GAMESPACE.CONTRACT0.isContractStarted;
                    }
                    if (Contracts.GAMESPACE.CONTRACT1 != null)

                    {
                        ContractsForManaging[1].SingleContract.ContractDescription = Contracts.GAMESPACE.CONTRACT1.ContractDescription;
                        ContractsForManaging[1].SingleContract.ContractID          = Contracts.GAMESPACE.CONTRACT1.ContractID;
                        ContractsForManaging[1].SingleContract.isContractStarted   = Contracts.GAMESPACE.CONTRACT1.isContractStarted;
                    }
                    if (Contracts.GAMESPACE.CONTRACT2 != null)
                    {
                        ContractsForManaging[2].SingleContract.ContractDescription = Contracts.GAMESPACE.CONTRACT2.ContractDescription;
                        ContractsForManaging[2].SingleContract.ContractID          = Contracts.GAMESPACE.CONTRACT2.ContractID;
                        ContractsForManaging[2].SingleContract.isContractStarted   = Contracts.GAMESPACE.CONTRACT2.isContractStarted;
                    }
                    if (Contracts.GAMESPACE.CONTRACT3 != null)
                    {
                        ContractsForManaging[3].SingleContract.ContractDescription = Contracts.GAMESPACE.CONTRACT3.ContractDescription;
                        ContractsForManaging[3].SingleContract.ContractID          = Contracts.GAMESPACE.CONTRACT3.ContractID;
                        ContractsForManaging[3].SingleContract.isContractStarted   = Contracts.GAMESPACE.CONTRACT3.isContractStarted;
                    }
                }
                else
                {
                    Debug.Log("nema DOGOVORI");
                    areThereActiveContracts = false;
                    ContractsForManaging[0].SingleContract.ContractDescription = "";
                    ContractsForManaging[0].SingleContract.ContractID          = 0;
                    ContractsForManaging[0].SingleContract.isContractStarted   = false;


                    ContractsForManaging[1].SingleContract.ContractDescription = "";
                    ContractsForManaging[1].SingleContract.ContractID          = 0;
                    ContractsForManaging[1].SingleContract.isContractStarted   = false;


                    ContractsForManaging[2].SingleContract.ContractDescription = "";
                    ContractsForManaging[2].SingleContract.ContractID          = 0;
                    ContractsForManaging[2].SingleContract.isContractStarted   = false;


                    ContractsForManaging[3].SingleContract.ContractDescription = "";
                    ContractsForManaging[3].SingleContract.ContractID          = 0;
                    ContractsForManaging[3].SingleContract.isContractStarted   = false;
                }
            }
        });
    }
Beispiel #2
0
        public Character(string refreshToken)
        {
            RefreshToken = refreshToken;
            updateAuthToken();

            // character ID
            HttpWebRequest web = (HttpWebRequest)WebRequest.CreateHttp("https://login.eveonline.com/oauth/verify");

            web.Method = "GET";
            web.Headers.Add("Authorization", "Bearer " + AuthToken);
            web.ContentLength = 0;

            var response = web.GetResponse();

            using (var sr = new StreamReader(response.GetResponseStream()))
            {
                string  text = sr.ReadToEnd();
                JObject res  = JObject.Parse(text);
                this.CharacterID   = int.Parse((string)res["CharacterID"]);
                this.CharacterName = (string)res["CharacterName"];
            }
            JToken exp = JObject.Parse(esiCharacter("fatigue"))["jump_fatigue_expire_date"];

            if (exp == null)
            {
                JumpFatigue = new TimeSpan(0);
            }
            else
            {
                DateTime expire = DateTime.Parse((string)exp);
                JumpFatigue = expire.Subtract(DateTime.Now);

                if (JumpFatigue < TimeSpan.Zero)
                {
                    JumpFatigue = TimeSpan.Zero;
                }
            }

            if (JumpFatigue.TotalMilliseconds < 0)
            {
                JumpFatigue = new TimeSpan(0);
            }

            ISK = (int)double.Parse(esiCharacter("wallet"));

            PictureURL = "https://imageserver.eveonline.com/Character/" + CharacterID + "_128.jpg";

            // industry jobs
            //TODO check once I have some jobs running
            string indyJobs = esiCharacter("industry/jobs");
            JArray jobs     = JArray.Parse(indyJobs);

            foreach (JObject obj in jobs)
            {
                IndustryJobs.Add(obj.ToObject <IndustryJob>());
            }

            string contractsString = esiCharacter("contracts");
            JArray contracts       = JArray.Parse(contractsString);

            foreach (JObject obj in contracts)
            {
                Contract c = obj.ToObject <Contract>();
                AllContracts.Add(c);
                if (c.Type == ContractType.Courier && c.Status != ContractStatus.Completed)
                {
                    UnfinishedCouriers.Add(c);
                }

                if (c.Type == ContractType.ItemExchange && c.AssigneeID == CharacterID && c.Status != ContractStatus.Completed)
                {
                    OutstandingItemExchangesToMe.Add(c);
                }

                if (c.Status == ContractStatus.Completed && c.DateCompleted >= DateTime.Now.AddDays(-1))
                {
                    RecentlyCompleted.Add(c);
                }
            }

            Training         = true;
            Attributes       = JObject.Parse(esiCharacter("attributes")).ToObject <Attributes>();
            SkillQueue       = new List <TrainingSkill>();
            ExtractionPoints = new List <DateTime>();

            TotalSP = (int)JObject.Parse(esiCharacter("skills"))["total_sp"];

            JArray queue = JArray.Parse(esiCharacter("skillqueue"));

            foreach (JObject obj in queue)
            {
                try
                {
                    string start = (string)obj["start_date"];
                    if (start == null || start == "")
                    {
                        break;
                    }
                }
                catch (Exception e)
                {
                    Training = false;
                    break;
                }

                TrainingSkill ts = new TrainingSkill(obj);
                if (ts.RemainingSP >= 0)
                {
                    SkillQueue.Add(ts);
                }
            }

            int total = TotalSP - 5000000;

            foreach (TrainingSkill skill in SkillQueue)
            {
                if (total + skill.RemainingSP > 500000)
                {
                    ExtractionPoints.Add(skill.StartDate.AddHours(skill.HoursToMakeSP(500000 - total)));
                    total = skill.RemainingSP - (500000 - total);
                }
                else
                {
                    total += skill.RemainingSP;
                }
            }

            if (SkillQueue.Count == 0 || SkillQueue[0].StartDate == null)
            {
                Training = false;
            }

            if (Training)
            {
                CurrentTrain = SkillQueue[0];
            }
            else
            {
                CurrentTrain = null;
            }

            KnownCharacters.Add(this.CharacterID, this);
        }