Beispiel #1
0
        private static MessagePayload HyperFormatMessage(EveAI.Live.Utility.Contract contract, string IssuerName)
        {
            string        type;
            List <string> messageLines = new List <string>();
            var           message      = new MessagePayload();

            //messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine1, contract.DateIssued.ToString("yyyy-MM-dd hh:mm:ss")));
            messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine2, IssuerName));
            messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine3, contract.Reward.ToString()));

            var    startStation     = contract.StartStation;
            var    endStation       = contract.EndStation;
            string startStationName = string.Empty;
            string endStationName   = string.Empty;

            if (startStation == null)
            {
                startStationName = Api.GetStation(contract.StartStationID).stationName;
            }
            else
            {
                startStationName = contract.StartStation.Name;
            }
            if (endStation == null)
            {
                endStationName = Api.GetStation(contract.EndStationID).stationName;
            }
            else
            {
                endStationName = contract.EndStation.Name;
            }

            try
            {
                messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine4, startStationName, endStationName)); //, contract.StartStation.Name, contract.EndStation.Name));
            }
            catch (Exception ex) { }
            messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine5, contract.Volume.ToString()));

            var colour = string.Empty;

            if (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.Outstanding)
            {
                colour = "#FF99C2";
            }
            else
            {
                colour = "#A6D785";
            }

            message.Attachments.Add(new MessagePayloadAttachment()
            {
                Text       = String.Join("\n", messageLines.ToArray()),
                Title      = string.Format(Properties.Settings.Default.MessageFormatLine1, contract.DateIssued.ToString("yyyy-MM-dd hh:mm:ss")),
                ThumbUrl   = "http://www.r3mus.org/Images/logo.png",
                AuthorName = Properties.Settings.Default.BotName,
                Colour     = colour
            });
            return(message);
        }
Beispiel #2
0
        //private static MessagePayload HyperFormatMessage(EveAI.Live.Utility.Contract contract, string IssuerName)
        //{
        //    MessagePayload message = new MessagePayload();
        //    message.Attachments = new List<MessagePayloadAttachment>();

        //    string type;
        //    List<string> messageLines = new List<string>();

        //    messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine1, contract.DateIssued.ToString("yyyy-MM-dd hh:mm:ss")));
        //    messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine2, IssuerName));
        //    messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine3, contract.Reward.ToString()));

        //    var startStation = contract.StartStation;
        //    var endStation = contract.EndStation;
        //    string startStationName = string.Empty;
        //    string endStationName = string.Empty;


        //    if (startStation == null)
        //    {
        //        startStationName = Api.GetStation(contract.StartStationID).stationName;
        //    }
        //    else
        //    {
        //        startStationName = contract.StartStation.Name;
        //    }
        //    if (endStation == null)
        //    {
        //        endStationName = Api.GetStation(contract.EndStationID).stationName;
        //    }
        //    else
        //    {
        //        endStationName = contract.EndStation.Name;
        //    }

        //    try
        //    {
        //        messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine4, startStationName, endStationName)); //, contract.StartStation.Name, contract.EndStation.Name));
        //    }
        //    catch (Exception ex) { }
        //    messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine5, contract.Volume.ToString()));

        //    //message = String.Join("\n", messageLines.ToArray());

        //    message.Attachments.Add(new MessagePayloadAttachment()
        //    {
        //        Text = String.Join("\n", messageLines.ToArray()),
        //        TitleLink = string.Format(Properties.Settings.Default.StationURL, Api.GetStation(contract.EndStationID).),
        //        Title = "",
        //        ThumbUrl = string.Format(Properties.Settings.Default.StationURL, JKON.EveWho.Api.GetCharacterID(IssuerName), 64.ToString()),
        //    });

        //    return message;
        //}

        private static string FormatMessage(EveAI.Live.Utility.Contract contract, string IssuerName)
        {
            string        type;
            List <string> messageLines = new List <string>();
            string        message      = string.Empty;

            messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine1, contract.DateIssued.ToString("yyyy-MM-dd hh:mm:ss")));
            messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine2, IssuerName));
            messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine3, contract.Reward.ToString()));

            var    startStation     = contract.StartStation;
            var    endStation       = contract.EndStation;
            string startStationName = string.Empty;
            string endStationName   = string.Empty;


            if (startStation == null)
            {
                startStationName = Api.GetStation(contract.StartStationID).stationName;
            }
            else
            {
                startStationName = contract.StartStation.Name;
            }
            if (endStation == null)
            {
                endStationName = Api.GetStation(contract.EndStationID).stationName;
            }
            else
            {
                endStationName = contract.EndStation.Name;
            }

            try
            {
                messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine4, startStationName, endStationName)); //, contract.StartStation.Name, contract.EndStation.Name));
            }
            catch (Exception ex) { }
            messageLines.Add(string.Format(Properties.Settings.Default.MessageFormatLine5, contract.Volume.ToString()));

            message = String.Join("\n", messageLines.ToArray());
            return(message);
        }
        public ActionResult ContractStatus()
        {
            EveApi api;
            List <EveAI.Live.Utility.Contract> Contracts = new List <EveAI.Live.Utility.Contract>();
            Dictionary <long, EveCharacter>    Names     = new Dictionary <long, EveCharacter>();
            List <long> IDs = new List <long>();

            DateTime backDate = DateTime.Now.AddDays(-7).Date;

            try
            {
                api = new EveAI.Live.EveApi("Clyde en Marland's Contract Notifier", (long)Properties.Settings.Default.LogisticsCorpAPI, Properties.Settings.Default.LogisticsVCode);

                Contracts = api.GetCorporationContracts().ToList().Where(contract =>
                                                                         (contract.Type == EveAI.Live.Utility.Contract.ContractType.Courier)
                                                                         &&
                                                                         (contract.Status != EveAI.Live.Utility.Contract.ContractStatus.Deleted)
                                                                         &&
                                                                         ((contract.DateIssued >= backDate)
                                                                          ||
                                                                          (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.Outstanding)
                                                                          ||
                                                                          (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.InProgress))).ToList();

                if (!User.IsInRole("Logistics"))
                {
                    try
                    {
                        var user = UserManager.FindById(User.Identity.GetUserId());
                        user.LoadApiKeys();

                        var apiKeys = user.ApiKeys.GroupBy(apiKey => apiKey.ApiKey).Select(apiKey => apiKey.First()).ToList();
                        var toons   = new List <AccountCharacter>();

                        apiKeys.ForEach(apiKey => toons.AddRange(JKON.EveWho.EveWho.GetCharacters(apiKey.ApiKey, apiKey.VerificationCode)));

                        Contracts = Contracts.Where(contract => toons.Any(toon => toon.CharacterID.Equals(contract.IssuerID))).ToList();
                    }
                    catch (Exception ex)
                    {
                        ViewBag.Message(ex.Message);
                        return(RedirectToAction("Index", "LoggedInHome"));
                    }
                }

                IDs = Contracts.Select(contract => contract.IssuerID).ToList();

                Contracts.ForEach(contract =>
                {
                    if (contract.StartStation == null)
                    {
                        var startStation      = Api.GetStation(contract.StartStationID);
                        contract.StartStation = new EveAI.SpaceStation.Station()
                        {
                            Name = startStation.stationName
                        };
                    }
                    if (contract.EndStation == null)
                    {
                        var endStation      = Api.GetStation(contract.EndStationID);
                        contract.EndStation = new EveAI.SpaceStation.Station()
                        {
                            Name = endStation.stationName
                        };
                    }
                });

                Contracts.Select(contract => contract.IssuerID).ToList().ForEach(id =>
                {
                    if (!Names.ContainsKey(id))
                    {
                        Names.Add(id, JKON.EveWho.Api.GetCharacter(id));
                    }
                });
                Contracts.Select(contract => contract.AcceptorID).ToList().ForEach(id =>
                {
                    if (!Names.ContainsKey(id))
                    {
                        Names.Add(id, JKON.EveWho.Api.GetCharacter(id));
                    }
                });

                if ((DateTime.Now.Month == 12) && (DateTime.Now.Day > 17) && (DateTime.Now.Day < 25))
                {
                    var id      = JKON.EveWho.Api.GetCharacterID(User.Identity.Name);
                    var toon1   = JKON.EveWho.Api.GetCharacter(id);
                    var toon2   = JKON.EveWho.Api.GetCorpMembers(Convert.ToInt64(Properties.Settings.Default.CorpAPI), Properties.Settings.Default.VCode).Where(member => member.Name == User.Identity.Name).FirstOrDefault();
                    var station = new Station()
                    {
                        Name = toon2.Location
                    };

                    Names.Add(id, toon1);
                    Names.Add(-1, new EveCharacter()
                    {
                        result = new JKON.EveWho.EveCharacter.Models.result()
                        {
                            characterID = -1, characterName = "Hauled By Reindeer (corp)"
                        }
                    });
                    Names.Add(-2, new EveCharacter()
                    {
                        result = new JKON.EveWho.EveCharacter.Models.result()
                        {
                            characterID = -2, characterName = "Santa Claus"
                        }
                    });

                    var contract = new EveAI.Live.Utility.Contract()
                    {
                        StartStation = new EveAI.SpaceStation.Station()
                        {
                            Name        = "Lapland VI - Santas Workshop",
                            SolarSystem = new EveAI.Map.SolarSystem()
                            {
                                Name = "North Pole"
                            }
                        },
                        EndStation   = station,
                        DateIssued   = new DateTime(2015, 12, 15),
                        DateAccepted = new DateTime(2015, 12, 17),
                        AcceptorID   = -1,
                        IssuerID     = -2,
                        Status       = GetStatus(),
                        Volume       = 10000,
                        Title        = string.Format("Christmas Presents for {0}", toon2.Name)
                    };

                    if (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.Outstanding)
                    {
                        Contracts.Insert(0, contract);
                    }
                    else if (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.InProgress)
                    {
                        var index = Contracts.Where(c => c.Status == EveAI.Live.Utility.Contract.ContractStatus.Outstanding).Count();
                        Contracts.Insert(index, contract);
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(View(new LogisticsContractsViewModel()
            {
                DisplayContracts = Contracts, CharacterInfos = Names
            }));
        }
        public ActionResult ContractStatus()
        {
            EveApi api;
            List<EveAI.Live.Utility.Contract> Contracts = new List<EveAI.Live.Utility.Contract>();
            Dictionary<long, EveCharacter> Names = new Dictionary<long, EveCharacter>();
            List<long> IDs = new List<long>();

            DateTime backDate = DateTime.Now.AddDays(-7).Date;

            try
            {
                api = new EveAI.Live.EveApi("Clyde en Marland's Contract Notifier", (long)Properties.Settings.Default.LogisticsCorpAPI, Properties.Settings.Default.LogisticsVCode);

                Contracts = api.GetCorporationContracts().ToList().Where(contract =>
                    (contract.Type == EveAI.Live.Utility.Contract.ContractType.Courier)
                    &&
                    (contract.Status != EveAI.Live.Utility.Contract.ContractStatus.Deleted)
                    &&
                    ((contract.DateIssued >= backDate)
                    ||
                    (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.Outstanding)
                    ||
                    (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.InProgress))).ToList();

                if(!User.IsInRole("Logistics"))
                {
                    try
                    {
                        var user = UserManager.FindById(User.Identity.GetUserId());
                        user.LoadApiKeys();

                        var apiKeys = user.ApiKeys.GroupBy(apiKey => apiKey.ApiKey).Select(apiKey => apiKey.First()).ToList();
                        var toons = new List<AccountCharacter>();

                        apiKeys.ForEach(apiKey => toons.AddRange(JKON.EveWho.EveWho.GetCharacters(apiKey.ApiKey, apiKey.VerificationCode)));

                        Contracts = Contracts.Where(contract => toons.Any(toon => toon.CharacterID.Equals(contract.IssuerID))).ToList();
                    }
                    catch(Exception ex)
                    {
                        ViewBag.Message(ex.Message);
                        return RedirectToAction("Index", "LoggedInHome");
                    }
                }

                IDs = Contracts.Select(contract => contract.IssuerID).ToList();

                Contracts.ForEach(contract =>
                {
                    if(contract.StartStation == null) {
                        var startStation = Api.GetStation(contract.StartStationID);
                        contract.StartStation = new EveAI.SpaceStation.Station() { Name = startStation.stationName };
                    }
                    if (contract.EndStation == null)
                    {
                        var endStation = Api.GetStation(contract.EndStationID);
                        contract.EndStation = new EveAI.SpaceStation.Station() { Name = endStation.stationName };
                    }
                });

                Contracts.Select(contract => contract.IssuerID).ToList().ForEach(id =>
                        {
                            if (!Names.ContainsKey(id))
                            {
                                Names.Add(id, JKON.EveWho.Api.GetCharacter(id));
                            }
                        });
                Contracts.Select(contract => contract.AcceptorID).ToList().ForEach(id =>
                {
                    if (!Names.ContainsKey(id))
                    {
                        Names.Add(id, JKON.EveWho.Api.GetCharacter(id));
                    }
                });

                if((DateTime.Now.Month == 12) && (DateTime.Now.Day > 17) && (DateTime.Now.Day < 25))
                {

                    var id = JKON.EveWho.Api.GetCharacterID(User.Identity.Name);
                    var toon1 = JKON.EveWho.Api.GetCharacter(id);
                    var toon2 = JKON.EveWho.Api.GetCorpMembers(Convert.ToInt64(Properties.Settings.Default.CorpAPI), Properties.Settings.Default.VCode).Where(member => member.Name == User.Identity.Name).FirstOrDefault();
                    var station = new Station()
                    {
                        Name = toon2.Location
                    };

                    Names.Add(id, toon1);
                    Names.Add(-1, new EveCharacter() { result = new JKON.EveWho.EveCharacter.Models.result() { characterID = -1, characterName = "Hauled By Reindeer (corp)" } });
                    Names.Add(-2, new EveCharacter() { result = new JKON.EveWho.EveCharacter.Models.result() { characterID = -2, characterName = "Santa Claus" } });

                    var contract = new EveAI.Live.Utility.Contract()
                    {
                        StartStation = new EveAI.SpaceStation.Station()
                        {
                            Name = "Lapland VI - Santas Workshop",
                            SolarSystem = new EveAI.Map.SolarSystem() { Name = "North Pole" }
                        },
                        EndStation = station,
                        DateIssued = new DateTime(2015, 12, 15),
                        DateAccepted = new DateTime(2015, 12, 17),
                        AcceptorID = -1,
                        IssuerID = -2,
                        Status = GetStatus(),
                        Volume = 10000,
                        Title = string.Format("Christmas Presents for {0}", toon2.Name)
                    };

                    if (contract.Status == EveAI.Live.Utility.Contract.ContractStatus.Outstanding)
                    {
                        Contracts.Insert(0, contract);
                    }
                    else if(contract.Status == EveAI.Live.Utility.Contract.ContractStatus.InProgress)
                    {
                        var index = Contracts.Where(c => c.Status == EveAI.Live.Utility.Contract.ContractStatus.Outstanding).Count();
                        Contracts.Insert(index, contract);
                    }
                }
            }
            catch(Exception ex)
            {
            }

            return View(new LogisticsContractsViewModel() { DisplayContracts = Contracts, CharacterInfos = Names });
        }