예제 #1
0
        public void DeleteGame(AowGameType theGameType, string fileName)
        {
            if (!theGameType.Equals(AowGameType.Unknown))
            {
                AowGame theGame = GetGameByType(theGameType);

                if (theGame != null && theGame.IsInstalled)
                {
                    DirectoryInfo[] theFolders    = new DirectoryInfo[] { theGame.EmailIn, theGame.EmailOut, theGame.Save };
                    string          searchPattern = GetSearchPattern(fileName);

                    foreach (DirectoryInfo folder in theFolders)
                    {
                        FileInfo[] matchingFiles = GetAllGameFiles(fileName, folder, searchPattern);
                        if (matchingFiles.Length > 0)
                        {
                            foreach (FileInfo file in matchingFiles)
                            {
                                if (File.Exists(file.FullName))
                                {
                                    File.Delete(file.FullName);
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                //If it's an unknown game just delete
                ClearCheckEmailFolder(fileName);
            }
        }
예제 #2
0
        private DirectoryInfo GetSaveFolder(AowGame theGame, EmailSaveFolder saveFolder)
        {
            DirectoryInfo returnVal = theGame.EmailIn;

            if (saveFolder.Equals(EmailSaveFolder.Save))
            {
                returnVal = theGame.Save;
            }

            return(returnVal);
        }
예제 #3
0
        public bool IsInstalled(AowGameType theGameType)
        {
            bool returnVal = false;

            AowGame theGame = GetGameByType(theGameType);

            if (theGame != null)
            {
                returnVal = theGame.IsInstalled;
            }

            return(returnVal);
        }
예제 #4
0
        public void ArchiveEndedGame(AowGameType theGameType, string fileName, string endedFolderName)
        {
            if (!theGameType.Equals(AowGameType.Unknown))
            {
                AowGame theGame = GetGameByType(theGameType);

                if (theGame != null && theGame.IsInstalled)
                {
                    DirectoryInfo[] theFolders    = new DirectoryInfo[] { theGame.EmailIn, theGame.EmailOut, theGame.Save };
                    string          searchPattern = GetSearchPattern(fileName);

                    foreach (DirectoryInfo folder in theFolders)
                    {
                        FileInfo[] matchingFiles = GetAllGameFiles(fileName, folder, searchPattern);
                        if (matchingFiles.Length > 0)
                        {
                            string endedFolderPath = Path.Combine(folder.FullName, endedFolderName);

                            if (!Directory.Exists(endedFolderPath))
                            {
                                Directory.CreateDirectory(endedFolderPath);
                            }

                            DirectoryInfo theEndedFolder = new DirectoryInfo(endedFolderPath);

                            foreach (FileInfo file in matchingFiles)
                            {
                                string newFileName = Path.Combine(theEndedFolder.FullName, file.Name);
                                try
                                {
                                    if (File.Exists(newFileName))
                                    {
                                        File.Delete(newFileName);
                                    }
                                    //This is in a Try Catch incase it tries to move a non virtualized file in virtualization mode (UAC on)
                                    File.Move(file.FullName, newFileName);
                                }
                                catch
                                { }
                            }
                        }
                    }
                }
            }
            else
            {
                //If it's an unknown game just delete
                ClearCheckEmailFolder(fileName);
            }
        }
예제 #5
0
        public void CopyToEmailOut(MimeData theAttachment, AowGame theGame)
        {
            if (theAttachment != null && theGame != null)
            {
                string fileName = theAttachment.FileName;

                if (!string.IsNullOrEmpty(fileName))
                {
                    string destPath = Path.Combine(theGame.EmailOut.FullName, fileName);

                    if (File.Exists(destPath))
                    {
                        File.Delete(destPath);
                    }

                    theAttachment.Save(destPath);
                }
            }
        }
예제 #6
0
        public void StoreDownloadFile(ASGFileInfo theAsgFile, EmailSaveFolder saveFolder)
        {
            bool success = false;

            AowGame theGame = GetGameByType(theAsgFile.GameType);

            if (theGame != null && theAsgFile.IsValid)
            {
                DirectoryInfo saveFolderInfo = GetSaveFolder(theGame, saveFolder);
                if (saveFolderInfo != null)
                {
                    theAsgFile.SaveToFolder(saveFolderInfo.FullName);
                    success = true;
                }
            }

            if (success)
            {
                RaiseOnGameSaved(
                    theAsgFile.GameType,
                    theAsgFile.FileNameTrue,
                    theAsgFile.GameTitle,
                    theAsgFile.MapTitle,
                    theAsgFile.TurnNumber.ToString());
            }
            else
            {
                theAsgFile.SaveToFolder(_checkEmailFolder);
                RaiseOnGameSaved(AowGameType.Unknown, theAsgFile.FileName);
            }

            //OLD CODE

            /*
             * switch (theAsgFile.FileType)
             * {
             *  case ASGFileType.Aow1:
             *      if (IsInstalled(AowGameType.Aow1))
             *      {
             *          theGame = GetGameByType(AowGameType.Aow1);
             *          theAsgFile.SaveToFolder(GetSaveFolder(theGame, saveFolder).FullName);
             *      }
             *      break;
             *  case ASGFileType.Aow2Sm:
             *      bool aow2 = IsInstalled(AowGameType.Aow2);
             *      bool aowSm = IsInstalled(AowGameType.AowSm);
             *
             *      if (aow2 && !aowSm)
             *      {
             *          theGame = GetGameByType(AowGameType.Aow2);
             *          theAsgFile.SaveToFolder(GetSaveFolder(theGame, saveFolder).FullName);
             *      }
             *      else if (!aow2 && aowSm)
             *      {
             *          theGame = GetGameByType(AowGameType.AowSm);
             *          theAsgFile.SaveToFolder(GetSaveFolder(theGame, saveFolder).FullName);
             *      }
             *      else if (aow2 && aowSm)
             *      {
             *          theGame = GetGameByFile(theAsgFile.FileName);
             *
             *          if (theGame != null)
             *          {
             *              theAsgFile.SaveToFolder(GetSaveFolder(theGame, saveFolder).FullName);
             *          }
             *          else
             *          {
             *              theAsgFile.SaveToFolder(_checkEmailFolder);
             *          }
             *      }
             *      break;
             * }
             */
        }