public override void ProcessCommand()
        {
            try
            {
                bool process =
                    ServerSettings.AniDB_Username.Equals("jonbaby", StringComparison.InvariantCultureIgnoreCase) ||
                    ServerSettings.AniDB_Username.Equals("jmediamanager", StringComparison.InvariantCultureIgnoreCase);

                if (!process)
                {
                    return;
                }

                AnimeIDTitle thisTitle = new AnimeIDTitle();
                thisTitle.AnimeIDTitleId = 0;
                thisTitle.MainTitle      = MainTitle;
                thisTitle.AnimeID        = AnimeID;
                thisTitle.Titles         = Titles;

                AzureWebAPI.Send_AnimeTitle(thisTitle);
            }
            catch (Exception ex)
            {
                logger.Error("Error processing CommandRequest_Azure_SendAnimeTitle: {0} - {1}", AnimeID, ex.ToString());
                return;
            }
        }
        public override void ProcessCommand()
        {
            logger.Info("Processing CommandRequest_GetAniDBTitles");


            try
            {
                bool process =
                    ServerSettings.AniDB_Username.Equals("jonbaby", StringComparison.InvariantCultureIgnoreCase) ||
                    ServerSettings.AniDB_Username.Equals("jmediamanager", StringComparison.InvariantCultureIgnoreCase);

                if (!process)
                {
                    return;
                }

                string url = Constants.AniDBTitlesURL;
                logger.Trace("Get AniDB Titles: {0}", url);

                Stream        s     = Utils.DownloadWebBinary(url);
                int           bytes = 2048;
                byte[]        data  = new byte[2048];
                StringBuilder b     = new StringBuilder();
                UTF8Encoding  enc   = new UTF8Encoding();

                ICSharpCode.SharpZipLib.GZip.GZipInputStream zis = new ICSharpCode.SharpZipLib.GZip.GZipInputStream(s);

                while ((bytes = zis.Read(data, 0, data.Length)) > 0)
                {
                    b.Append(enc.GetString(data, 0, bytes));
                }

                zis.Close();



                string[] lines = b.ToString().Split('\n');
                Dictionary <int, AnimeIDTitle> titles = new Dictionary <int, AnimeIDTitle>();
                foreach (string line in lines)
                {
                    if (line.Trim().Length == 0 || line.Trim().Substring(0, 1) == "#")
                    {
                        continue;
                    }

                    string[] fields = line.Split('|');

                    int animeID = 0;
                    int.TryParse(fields[0], out animeID);
                    if (animeID == 0)
                    {
                        continue;
                    }

                    string titleType = fields[1].Trim().ToLower();
                    //string language = fields[2].Trim().ToLower();
                    string titleValue = fields[3].Trim();


                    AnimeIDTitle thisTitle = null;
                    if (titles.ContainsKey(animeID))
                    {
                        thisTitle = titles[animeID];
                    }
                    else
                    {
                        thisTitle = new AnimeIDTitle();
                        thisTitle.AnimeIDTitleId = 0;
                        thisTitle.MainTitle      = titleValue;
                        thisTitle.AnimeID        = animeID;
                        titles[animeID]          = thisTitle;
                    }

                    if (!string.IsNullOrEmpty(thisTitle.Titles))
                    {
                        thisTitle.Titles += "|";
                    }

                    if (titleType.Equals("1"))
                    {
                        thisTitle.MainTitle = titleValue;
                    }

                    thisTitle.Titles += titleValue;
                }

                foreach (AnimeIDTitle aniTitle in titles.Values)
                {
                    //AzureWebAPI.Send_AnimeTitle(aniTitle);
                    CommandRequest_Azure_SendAnimeTitle cmdAzure =
                        new CommandRequest_Azure_SendAnimeTitle(aniTitle.AnimeID,
                                                                aniTitle.MainTitle, aniTitle.Titles);
                    cmdAzure.Save();
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error processing CommandRequest_GetAniDBTitles: {0}", ex.ToString());
                return;
            }
        }