コード例 #1
0
        public void GetTitles(ApiInfo liveAPI)
        {
            var corp      = ((CorporationKey)EveXml.CreateApiKey(Convert.ToInt32(Properties.Settings.Default.CorpAPI), Properties.Settings.Default.VCode).Init().GetActualKey()).Corporation;
            var titles    = corp.GetMemberTracking().Result.Members.Where(member => member.CharacterName == UserName).FirstOrDefault().Title.Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries);
            var titleList = new List <Title>();

            foreach (var title in titles)
            {
                titleList.Add(new Title()
                {
                    UserId = Id, TitleName = title
                });
            }
            Titles = titleList;
            if ((GetToonId(IDType.Corporation, liveAPI.ApiKey, liveAPI.VerificationCode) == GetToonId(IDType.Corporation, Convert.ToInt32(Properties.Settings.Default.CorpAPI), Properties.Settings.Default.VCode))
                &&
                (!this.Titles.Any(title => title.TitleName == "CEO"))
                )
            {
                Titles.Add(new Title()
                {
                    UserId = this.Id, TitleName = "CEO"
                });
            }
        }
コード例 #2
0
        public List <Character> GetDetails()
        {
            CharacterKey key   = EveXml.CreateCharacterKey(ApiKey, VerificationCode);
            var          chars = key.Characters.ToList();

            //var charList = key.GetCharacterList();
            return(chars);
        }
コード例 #3
0
        public long GetCorpOrAllianceId(IDType type, int apiKey, string vcode)
        {
            long result = -1;

            try
            {
                var newkey = EveXml.CreateApiKey(apiKey, vcode).Init();
                if ((newkey.IsValidKey()) && newkey.KeyType != (ApiKeyType.Corporation))
                {
                    var       cKey = (CharacterKey)newkey.GetActualKey();
                    Character toon = null;

                    try
                    {
                        //var things = cKey.Characters;
                        toon = cKey.Characters.Single(c => c.CharacterName.ToUpper() == this.UserName.ToUpper());
                    }
                    catch (Exception ex) { }

                    if (toon != null)
                    {
                        if (type == IDType.Corporation)
                        {
                            result = toon.CorporationId;
                        }
                        else if (type == IDType.Alliance)
                        {
                            result = toon.AllianceId;
                        }
                    }
                }
                else if ((newkey.IsValidKey()) && newkey.KeyType == (ApiKeyType.Corporation))
                {
                    var         cKey = (CorporationKey)newkey.GetActualKey();
                    Corporation corp = cKey.Corporation;
                    if (corp != null)
                    {
                        if (type == IDType.Corporation)
                        {
                            result = corp.CorporationId;
                        }
                        else if (type == IDType.Alliance)
                        {
                            result = corp.AllianceId;
                        }
                    }
                }
            }
            catch (Exception ex) { }

            return(result);
        }
コード例 #4
0
        public void GetDetails(bool JustDoIt = false)
        {
            bool unloadApis = false;

            if (ApiKeys.Count == 0)
            {
                unloadApis = LoadApiKeys();
            }
            ApiInfo liveAPI = new ApiInfo();

            if ((MemberSince == null) || (Avatar == null) || (JustDoIt))
            {
                foreach (ApiInfo info in ApiKeys)
                {
                    try
                    {
                        var newkey = EveXml.CreateApiKey(info.ApiKey, info.VerificationCode).Init();
                        if ((newkey.IsValidKey()) && newkey.KeyType != (ApiKeyType.Corporation))
                        {
                            var       cKey = (CharacterKey)newkey.GetActualKey();
                            Character toon = null;

                            try
                            {
                                toon = cKey.Characters.Single(c => c.CharacterName == UserName);
                            }
                            catch (Exception ex) { }

                            if (toon != null)
                            {
                                liveAPI = info;

                                MemberSince = toon.GetCharacterInfo().Result.CorporationDate;

                                //var tempAvatar = ImageServer.DownloadCharacterImage(toon.CharacterId, ImageServer.ImageSize.Size128px);
                                //using (var stream = new MemoryStream())
                                //{
                                //    tempAvatar.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                                //    Avatar = string.Format("data:image/png;base64,{0}", Convert.ToBase64String(stream.ToArray()));
                                //}
                                //tempAvatar.Dispose();

                                Avatar = GetAvatar(toon.CharacterId, ImageServer.ImageSize.Size128px);

                                break;
                            }
                        }
                    }
                    catch (Exception ex)
                    { }
                }
                if (MemberType == IDType.Corporation.ToString())
                {
                    GetTitles(liveAPI);
                }
            }
            if (unloadApis)
            {
                UnloadApiKeys();
            }
        }
コード例 #5
0
        public bool ValidateStandings(string checkName, long checkCorpId, long checkAllianceId, int apiKey, string vcode)
        {
            bool          result    = false;
            List <double> standings = new List <double>();

            try
            {
                var newkey = EveXml.CreateApiKey(apiKey, vcode).Init();
                var cKey   = (CorporationKey)newkey.GetActualKey();

                List <long> list = new List <long>();
                list.Add(checkCorpId);
                if (checkAllianceId > 0)
                {
                    list.Add(checkAllianceId);
                }

                var api = new EveApi("R3MUS Recruitment", Convert.ToInt64(apiKey), vcode);

                Dictionary <long, string> dict = api.ConvertIDsToNames(list);

                string checkCorpName     = dict[checkCorpId];
                string checkAllianceName = string.Empty;
                if (dict.Count == 2)
                {
                    checkAllianceName = dict[checkAllianceId];
                }

                var cList = cKey.Corporation.GetContactList().Result;

                var contactList = cList.CorporationContacts.Concat(cList.AllianceContacts);

                var filteredContactList = contactList.Where
                                              (c =>
                                              (c.ContactName == checkName) || (c.ContactName == checkCorpName) || (c.ContactName == checkAllianceName)
                                              );

                foreach (var contact in filteredContactList)
                {
                    standings.Add(contact.Standing);
                    result = (contact.Standing == 10);
                    if (result)
                    {
                        break;
                    }
                }
            }
            catch (Exception ex)
            { }

            if (result)
            {
                MemberType = IDType.Plus10.ToString();
                foreach (var value in Properties.Settings.Default.SharedCommsCorpIDs)
                {
                    if (value.Contains(checkCorpId.ToString()))
                    {
                        MemberType = IDType.SharedComms.ToString();
                        CorpId     = checkCorpId;
                        CorpTicker = value.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries)[0];
                    }
                }
            }
            else
            {
                if ((standings.Count == 0) || (standings.Min() >= 0.0))
                {
                    MemberType = IDType.Guest.ToString();
                }
            }

            return(result);
        }