├── .gitignore ├── FAP.Application ├── ApplicationCore.cs ├── ApplicationModule.cs ├── Controllers │ ├── BrowserController.cs │ ├── CompareController.cs │ ├── ConnectionController.cs │ ├── ConversationController.cs │ ├── DownloadQueueController.cs │ ├── InterfaceController.cs │ ├── PopupWindowController.cs │ ├── SearchController.cs │ ├── SettingsController.cs │ ├── SharesController.cs │ └── WatchdogController.cs ├── FAP.Application.csproj ├── Properties │ └── AssemblyInfo.cs ├── ViewModel │ ├── BrowserViewModel.cs │ ├── CompareViewModel.cs │ ├── ConversationViewModel.cs │ ├── DownloadQueueViewModel.cs │ ├── InterfaceSelectionViewModel.cs │ ├── MainWindowViewModel.cs │ ├── MessageBoxViewModel.cs │ ├── PopUpWindowTab.cs │ ├── PopupWindowViewModel.cs │ ├── QueryViewModel.cs │ ├── SearchViewModel.cs │ ├── SettingsViewModel.cs │ ├── SharesViewModel.cs │ ├── TrayIconViewModel.cs │ ├── UserInfoViewModel.cs │ └── WebViewModel.cs ├── Views │ ├── IBrowserView.cs │ ├── ICompareView.cs │ ├── IConverstationView.cs │ ├── IDownloadQueue.cs │ ├── IInterfaceSelectionView.cs │ ├── ILogView.cs │ ├── IMainWindow.cs │ ├── IMessageBoxView.cs │ ├── IPopupWindow.cs │ ├── IQuery.cs │ ├── ISearchView.cs │ ├── ISettingsView.cs │ ├── ISharesView.cs │ ├── ITrayIconView.cs │ ├── IUserInfo.cs │ └── IWebPanel.cs └── packages.config ├── FAP.Domain ├── DomainModule.cs ├── Entities │ ├── BaseEntity.cs │ ├── CompareNode.cs │ ├── Conversation.cs │ ├── DownloadQueue.cs │ ├── DownloadRequest.cs │ ├── FileSystem │ │ ├── BrowsingFile.cs │ │ ├── Directory.cs │ │ └── File.cs │ ├── ITransferWorker.cs │ ├── Legacy │ │ └── Model.cs │ ├── Model.cs │ ├── Network.cs │ ├── NetworkInterface.cs │ ├── Node.cs │ ├── Overlord.cs │ ├── SearchResult.cs │ ├── ServerUploadToken.cs │ ├── Share.cs │ ├── TransferLog.cs │ └── TransferSession.cs ├── Enums.cs ├── FAP.Domain.csproj ├── Handlers │ ├── FAPClientHandler.cs │ ├── FAPFileUploader.cs │ ├── FAPServerHandler.cs │ ├── HTTPFileUploader.cs │ ├── HTTPHandler.cs │ └── IFAPHandler.cs ├── Net │ ├── Client.cs │ ├── ClientStream.cs │ ├── DetectedNode.cs │ ├── LANPeerFinderService.cs │ ├── LanPeer.cs │ ├── NetworkSpeedMeasurement.cs │ └── Uplink.cs ├── Properties │ └── AssemblyInfo.cs ├── Services │ ├── BonjourAnnouncerService.cs │ ├── BufferService.cs │ ├── DownloadWorkerService.cs │ ├── Listener.cs │ ├── LogService.cs │ ├── OverlordManagerService.cs │ ├── ServerUploadLimiterService.cs │ ├── ShareInfoService.cs │ ├── TemplateEngine.cs │ └── UpdateCheckerService.cs ├── Verbs │ ├── BaseVerb.cs │ ├── BrowseVerb.cs │ ├── ChatVerb.cs │ ├── CompareVerb.cs │ ├── ConnectVerb.cs │ ├── ConversationVerb.cs │ ├── IVerb.cs │ ├── InfoVerb.cs │ ├── LocalDownload.cs │ ├── Multicast │ │ ├── HelloVerb.cs │ │ └── WhoVerb.cs │ ├── SearchVerb.cs │ └── UpdateVerb.cs ├── Web.Resources │ ├── css │ │ └── fap.css │ ├── favicon.ico │ ├── images │ │ ├── back_disabled.jpg │ │ ├── back_enabled.jpg │ │ ├── fap.png │ │ ├── folder.png │ │ ├── forward_disabled.jpg │ │ ├── forward_enabled.jpg │ │ ├── sort_asc.png │ │ ├── sort_asc_disabled.png │ │ ├── sort_both.png │ │ ├── sort_desc.png │ │ └── sort_desc_disabled.png │ ├── js │ │ ├── jquery-1.5.2.min.js │ │ └── jquery.dataTables.min.js │ └── template.html └── packages.config ├── FAP.Foundation ├── AsyncControllerBase.cs ├── AsyncOperation.cs ├── BackgroundSafeObservable.cs ├── BaseEntity.cs ├── FAP.Foundation.csproj ├── FilteredObservableCollection.cs ├── IconHelper.cs ├── MemoryBuffer.cs ├── Networking │ ├── AsyncSocket.cs │ ├── AsyncSocketSession.cs │ └── NetworkBufferManager.cs ├── ObservableCollectionEx.cs ├── Properties │ └── AssemblyInfo.cs ├── RegexEx.cs ├── RegistryHelper.cs ├── RegistryServices │ └── RegisterProtocolService.cs ├── SafeDictionary.cs ├── SafeFilteredObservingCollection.cs ├── SafeObservable.cs ├── SafeObservedCollection.cs ├── SafeObservingCollection.cs ├── SambaShare.cs ├── Services │ ├── IDService.cs │ └── SingleInstanceService.cs ├── SimpleCrypt.cs ├── Sorting │ ├── MergeSort.cs │ ├── QuickSort.cs │ └── TreeSort.cs ├── StreamTokenizer.cs ├── SystemInfo.cs ├── TreeViewItemViewModel.cs ├── Utility.cs ├── WMI_Prototypes │ ├── Win32_BIOS.cs │ ├── Win32_BaseBoard.cs │ ├── Win32_LogicalDisk.cs │ ├── Win32_NetworkAdapter.cs │ ├── Win32_PhysicalMemory.cs │ ├── Win32_Processor.cs │ ├── Win32_SoundDevice.cs │ └── Win32_VideoController.cs └── packages.config ├── FAP.Network ├── Base32Encoder.cs ├── Entities │ └── NetworkRequest.cs ├── FAP.Network.csproj ├── Multiplexor.cs ├── NetworkModule.cs ├── Properties │ └── AssemblyInfo.cs ├── Server │ └── NodeServer.cs ├── Services │ ├── MulticastClientService.cs │ ├── MulticastCommon.cs │ └── MulticastServerService.cs └── packages.config ├── Fap.sln ├── Installer ├── FAP.isl ├── FAP.isproj ├── FAP.sln └── SFX │ ├── 7zsd.sfx │ ├── Create SFX.bat │ └── config.txt ├── Licences ├── Autofac License.txt ├── FAP Licence.txt ├── HTTP Server Licence.txt ├── Icon Licence.txt ├── Json.NET Licence.txt ├── LinqToWmi Licence.txt ├── Messagebox Licence.txt ├── Odyssey Licence.txt ├── StringTemplate Licence.txt ├── Wpf Application Framework Licence.txt └── protoc-license.txt ├── Readme.md ├── UI ├── Client.Console │ ├── Client.Console.csproj │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── app.config ├── Client.WPF │ ├── App.xaml │ ├── App.xaml.cs │ ├── BinaryImageConverter.cs │ ├── Converters.cs │ ├── FAPconverters.cs │ ├── Fap.Presentation.csproj │ ├── FlashWindow.cs │ ├── FolderItem.cs │ ├── GUIModule.cs │ ├── GridViewSort.cs │ ├── Helper.cs │ ├── Images │ │ ├── Chart Bar.png │ │ ├── Cog.png │ │ ├── Default_Avatar.png │ │ ├── Download.png │ │ ├── Drawer Closed.png │ │ ├── Folder Sync.png │ │ ├── Search.png │ │ ├── Upload.png │ │ ├── folder-yellow.ico │ │ ├── folder.png │ │ ├── newtab.ico │ │ ├── originals │ │ │ └── defaultavatar.png │ │ ├── splash screens │ │ │ ├── 1209850323723.jpg │ │ │ ├── 1242976218726.jpg │ │ │ ├── 1243840487105.jpg │ │ │ ├── 1253754897671.jpg │ │ │ ├── 1256029184403.jpg │ │ │ └── 1274249428281.jpg │ │ └── src.txt │ ├── InputWindow.xaml │ ├── InputWindow.xaml.cs │ ├── InterfaceSelection.xaml │ ├── InterfaceSelection.xaml.cs │ ├── ListBoxAutoScroll.cs │ ├── ListViewCustomComparer.cs │ ├── ListViewSorter.cs │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ ├── MessageBox.xaml │ ├── MessageBox.xaml.cs │ ├── NLog.config │ ├── Panels │ │ ├── BrowePanelFileImageConverter.cs │ │ ├── BrowsePanel.xaml │ │ ├── BrowsePanel.xaml.cs │ │ ├── ComparePanel.xaml │ │ ├── ComparePanel.xaml.cs │ │ ├── Conversation.xaml │ │ ├── Conversation.xaml.cs │ │ ├── DownloadQueue.xaml │ │ ├── DownloadQueue.xaml.cs │ │ ├── IsNullConverter.cs │ │ ├── LogPanel.xaml │ │ ├── LogPanel.xaml.cs │ │ ├── SearchPanel.xaml │ │ ├── SearchPanel.xaml.cs │ │ ├── SettingsPanel.xaml │ │ ├── SettingsPanel.xaml.cs │ │ ├── SharesPanel.xaml │ │ ├── SharesPanel.xaml.cs │ │ ├── UserInfoPanel.xaml │ │ ├── UserInfoPanel.xaml.cs │ │ ├── WebPanel.xaml │ │ └── WebPanel.xaml.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── Query.cs │ ├── Services │ │ └── IconService.cs │ ├── SessionTypeConverter.cs │ ├── SortableListView.cs │ ├── SpaceFormatter.cs │ ├── TabControl.cs │ ├── TabControlEx.cs │ ├── TabEventArgs.cs │ ├── TabItem.cs │ ├── TabPanel.cs │ ├── TabWindow.xaml │ ├── TabWindow.xaml.cs │ ├── Themes │ │ └── Generic.xaml │ ├── TrayIcon.cs │ ├── Web.Help │ │ ├── css │ │ │ ├── ie.css │ │ │ ├── print.css │ │ │ └── screen.css │ │ ├── help.html │ │ └── images │ │ │ ├── Chart Bar.png │ │ │ ├── Cog.png │ │ │ ├── Drawer Closed.png │ │ │ ├── Folder Sync.png │ │ │ ├── Search.png │ │ │ ├── client.png │ │ │ └── web.png │ ├── Window1.xaml │ ├── Window1.xaml.cs │ ├── app.config │ ├── merge.bat │ └── packages.config └── Server.Console │ ├── InterfaceSelectionView.cs │ ├── MessageService.cs │ ├── NLog.config │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── Query.cs │ ├── Server.Console.csproj │ ├── SharesView.cs │ ├── app.config │ ├── folder-yellow.ico │ └── packages.config ├── Web └── updates.php └── libs ├── Autofac ├── Autofac License.txt ├── Autofac.Configuration.dll ├── Autofac.Integration.Wcf.dll ├── Autofac.Integration.Web.dll ├── Autofac.XML └── Autofac.dll ├── Bonjour └── Interop.Bonjour.dll ├── HttpServer ├── ArrayParameterCollection.cs ├── Authentication │ ├── AuthenticationProvider.cs │ ├── BasicAuthentication.cs │ ├── DigestAuthentication.cs │ ├── IAuthenticationProvider.cs │ ├── IAuthenticator.cs │ └── IUserProvider.cs ├── AuthenticationRequiredException.cs ├── BadRequestException.cs ├── BodyDecoders │ ├── BodyDecoderCollection.cs │ ├── DecodedData.cs │ ├── IBodyDecoder.cs │ ├── Mono │ │ ├── HttpMultiPart.cs │ │ └── StrUtils.cs │ ├── MultiPartDecoder.cs │ └── UrlDecoder.cs ├── ComponentAttribute.cs ├── ContentTypeHelper.cs ├── ErrorPageEventArgs.cs ├── ExceptionEventArgs.cs ├── ForbiddenException.cs ├── HTTPContextManager.cs ├── Headers │ ├── AuthorizationHeader.cs │ ├── CacheControl.cs │ ├── ConnectionHeader.cs │ ├── ContentTypeHeader.cs │ ├── CookieHeader.cs │ ├── DateHeader.cs │ ├── HeaderCollection.cs │ ├── HeaderFactory.cs │ ├── HeaderParameterCollection.cs │ ├── IHeader.cs │ ├── IHeaderCollection.cs │ ├── NumericHeader.cs │ ├── Parsers │ │ ├── AuthorizationParser.cs │ │ ├── ConnectionParser.cs │ │ ├── ContentTypeParser.cs │ │ ├── CookieParser.cs │ │ ├── DateParser.cs │ │ ├── IHeaderParser.cs │ │ ├── NumericHeaderParser.cs │ │ ├── ParserForAttribute.cs │ │ └── StringParser.cs │ └── StringHeader.cs ├── Helpers │ └── PropertyAssigner.cs ├── HttpContext.cs ├── HttpException.cs ├── HttpFactory.cs ├── HttpFile.cs ├── HttpFileCollection.cs ├── HttpListener.cs ├── HttpServer.csproj ├── HttpServer.csproj.user ├── IHttpContext.cs ├── IHttpFactory.cs ├── IHttpListener.cs ├── IMessage.cs ├── IParameterCollection.cs ├── IRequest.cs ├── IResponse.cs ├── IServiceResolver.cs ├── InternalServerException.cs ├── Logging │ ├── ConsoleLogFactory.cs │ ├── ConsoleLogger.cs │ ├── ILogFactory.cs │ ├── ILogFilter.cs │ ├── ILogger.cs │ ├── LogFactory.cs │ ├── LogFilter.cs │ ├── LogLevel.cs │ ├── NullLogFactory.cs │ └── NullLogWriter.cs ├── Messages │ ├── FactoryRequestEventArgs.cs │ ├── MessageFactory.cs │ ├── MessageFactoryContext.cs │ ├── Parser │ │ ├── BodyEventArgs.cs │ │ ├── FactoryResponseEventArgs.cs │ │ ├── HeaderEventArgs.cs │ │ ├── HttpParser.cs │ │ ├── ParserException.cs │ │ ├── RequestEventArgs.cs │ │ ├── RequestLineEventArgs.cs │ │ └── ResponseLineEventArgs.cs │ ├── Request.cs │ ├── RequestCookie.cs │ ├── RequestCookiesCollection.cs │ ├── Response.cs │ ├── ResponseCookie.cs │ ├── ResponseCookieCollection.cs │ └── ResponseWriter.cs ├── Method.cs ├── Modules │ ├── FileModule.cs │ └── IModule.cs ├── NotFoundException.cs ├── ParameterCollection.cs ├── ProcessingResult.cs ├── Properties │ └── AssemblyInfo.cs ├── RequestContext.cs ├── RequestEventArgs.cs ├── Resources │ ├── EmbeddedResourceLoader.cs │ ├── FileResources.cs │ ├── IResourceLoader.cs │ ├── IResourceProvider.cs │ ├── Resource.cs │ └── ResourceProvider.cs ├── Routing │ ├── IRouter.cs │ ├── RegExRouter.cs │ └── SimpleRouter.cs ├── SecureHttpContext.cs ├── SecureHttpListener.cs ├── Server.cs ├── Sessions │ ├── ISessionProvider.cs │ ├── ISessionStore.cs │ ├── Session.cs │ ├── SessionFileStore.cs │ └── SessionProvider.cs ├── SimpleServer.cs ├── SocketFilterEventArgs.cs ├── Tools │ ├── BufferReader.cs │ ├── ITextReader.cs │ ├── ObjectPool.cs │ ├── Properties │ │ ├── CachedProperty.cs │ │ ├── EmitHelper.cs │ │ ├── EmitReflector.cs │ │ └── PropertyProvider.cs │ ├── Session.cs │ ├── SessionProvider.cs │ ├── StringReader.cs │ └── UrlParser.cs ├── Transports │ ├── ClientCertificate.cs │ └── ResusableNetworkStream.cs ├── app.config └── httpserver.snk ├── Json.NET ├── Newtonsoft.Json.Net35.dll ├── Newtonsoft.Json.Net35.pdb └── Newtonsoft.Json.Net35.xml ├── LinqToWmi ├── LinqToWmi.ClassGenerator │ ├── ArgumentParser │ │ ├── ArgumentAttribute.cs │ │ ├── ArgumentParseException.cs │ │ └── ArgumentParser.cs │ ├── Arguments.cs │ ├── Builder │ │ ├── CimTypeConverter.cs │ │ ├── WmiFileGenerator.cs │ │ └── WmiObjectQuery.cs │ ├── LinqToWmi.ClassGenerator.csproj │ ├── LinqToWmi.ClassGenerator.csproj.user │ ├── Program.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── LinqToWmi.Core │ ├── LinqToWmi.Core.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Visitor │ │ ├── AbstractVisitor.cs │ │ ├── IVisitor.cs │ │ └── VistorContext.cs │ └── WMI │ │ ├── IWmiQuery.cs │ │ ├── Visitors │ │ ├── BinaryVisitor.cs │ │ ├── ConstantVisitor.cs │ │ ├── MemberVisitor.cs │ │ ├── MethodCallVisitor.cs │ │ └── UnaryVisitor.cs │ │ ├── WmiContext.cs │ │ ├── WmiExtensionMethods.cs │ │ ├── WmiMapper.cs │ │ ├── WmiObjectEnumerator.cs │ │ ├── WmiObjectTypeAttribute.cs │ │ ├── WmiQuery.cs │ │ ├── WmiQueryBuilder.cs │ │ └── WmiQueryUtility.cs └── LinqToWmi.Tests │ ├── LinqToWmi.Tests.csproj │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── Prototypes │ ├── Win32_ComputerSystem.cs │ ├── Win32_LogicalDisk.cs │ ├── Win32_NTLogEvent.cs │ ├── Win32_PerfFormattedData_PerfOS_Memory.cs │ ├── Win32_Process.cs │ ├── Win32_Processor2.cs │ └── Win32_UserAccount.cs ├── Messagebox └── BlogsPrajeesh.BlogSpot.WPFControls.dll ├── Odyssey ├── BreadcrumbBar │ ├── ApplyPropertiesEventArgs.cs │ ├── BreadcrumbBar.cs │ ├── BreadcrumbButton.cs │ ├── BreadcrumbItem.cs │ ├── BreadcrumbItemEventArgs.cs │ ├── ImageButton.cs │ └── PathConversionEventArgs.cs ├── ChangeLog.txt ├── Common │ ├── AeroChrome.cs │ ├── AnimationDecorator.cs │ ├── EmptyStringVisibilityConverter.cs │ ├── IKeyTipControl.cs │ ├── PopupHelper.cs │ ├── SkinId.cs │ ├── SkinManager.cs │ └── Skins.cs ├── Controls │ ├── ClickableTreeView.cs │ ├── ClickableTreeViewItem.cs │ ├── DropDownButton.cs │ ├── OdcButton.cs │ └── OdcTextBox.cs ├── Effects │ ├── GrayscaleEffect.cs │ ├── GrayscaleEffect.fx │ └── GrayscaleEffect.ps ├── ExplorerBar │ ├── ExplorerBar.cs │ ├── OdcExpander.cs │ └── OdcExpanderHeader.cs ├── Odyssey.csproj ├── Odyssey.csproj.vspscc ├── OutlookBar │ ├── ExpandPosition.cs │ ├── OutlookBar.cs │ ├── OutlookSection.cs │ └── OverflowMenuCreatedEventArgs.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Ribbon │ ├── Classes │ │ ├── BoolConverter.cs │ │ ├── IRibbonSize.cs │ │ ├── ImageRenderOptions.cs │ │ ├── NativeMethods.cs │ │ ├── QAItemPlacement.cs │ │ ├── QAPlacement.cs │ │ ├── RibbonBarAlignment.cs │ │ ├── RibbonGalleryColumns.cs │ │ ├── RibbonGalleryColumnsCollectionConverter.cs │ │ ├── RibbonGroupReductionOrderConverter.cs │ │ ├── RibbonOption.cs │ │ ├── RibbonReductionCollectionConverter.cs │ │ ├── RibbonSize.cs │ │ ├── RibbonSizeCollection.cs │ │ ├── RibbonWindowCornerMode.cs │ │ ├── RoundedCornerConverter.cs │ │ ├── RoundedCornerResizeConverter.cs │ │ ├── TwoLineConverter.cs │ │ └── TwoLineTextConverter.cs │ ├── Controls │ │ ├── InternalGroupPanel.cs │ │ ├── KeyTip.cs │ │ ├── RibbonApplicationMenu.cs │ │ ├── RibbonApplicationMenuItem.cs │ │ ├── RibbonBar.Commands.cs │ │ ├── RibbonBar.Handlers.cs │ │ ├── RibbonBar.cs │ │ ├── RibbonButton.cs │ │ ├── RibbonButtonGroup.cs │ │ ├── RibbonButtonStyle.cs │ │ ├── RibbonChrome.cs │ │ ├── RibbonComboBox.cs │ │ ├── RibbonComboBoxItem.cs │ │ ├── RibbonContextualTabSet.cs │ │ ├── RibbonDropDownButton.cs │ │ ├── RibbonFlowGroup.cs │ │ ├── RibbonGallery.Commands.cs │ │ ├── RibbonGallery.cs │ │ ├── RibbonGroup.Commands.cs │ │ ├── RibbonGroup.Handlers.cs │ │ ├── RibbonGroup.cs │ │ ├── RibbonMenuItem.cs │ │ ├── RibbonQAToolBar.cs │ │ ├── RibbonQAToolbarPanel.cs │ │ ├── RibbonSeparator.cs │ │ ├── RibbonSplitButton.cs │ │ ├── RibbonTabItem.cs │ │ ├── RibbonTabItemPanel.cs │ │ ├── RibbonTabScroller.cs │ │ ├── RibbonTextBox.cs │ │ ├── RibbonThumbnail.cs │ │ ├── RibbonToggleButton.cs │ │ ├── RibbonToolTip.cs │ │ ├── RibbonWindow.Commands.cs │ │ ├── RibbonWindow.cs │ │ └── RibbonWrapPanel.cs │ ├── EventArgs │ │ └── SelectedTabIndexChangedEvent.cs │ └── Interfaces │ │ ├── IRibbonButton.cs │ │ ├── IRibbonControl.cs │ │ ├── IRibbonGallery.cs │ │ ├── IRibbonLargeControl.cs │ │ └── IRibbonStretch.cs ├── Skins │ ├── BlackSkin.xaml │ ├── BlueSkin.xaml │ ├── OutlookBar │ │ ├── OutlookBlackSkin.xaml │ │ ├── OutlookBlueSkin.xaml │ │ ├── OutlookSilverSkin.xaml │ │ └── Win7Skin.xaml │ ├── Ribbon │ │ ├── OfficeBlackSkin.xaml │ │ ├── OfficeBlueSkin.xaml │ │ ├── OfficeSilverSkin.xaml │ │ ├── VistaSkin.xaml │ │ └── Window7Skin.xaml │ ├── SilverSkin.xaml │ ├── VistaSkin.xaml │ └── Win7Skin.xaml ├── Themes │ ├── Aero.NormalColor.xaml │ ├── BreadcrumbBar │ │ ├── AeroChrome.xaml │ │ ├── BreadcrumbButton.xaml │ │ ├── BreadcrumbItem.xaml │ │ ├── Brushes.xaml │ │ ├── ButtonTemplates.xaml │ │ ├── Generic.xaml │ │ ├── OdcTextBox.xaml │ │ └── ProgressBar.xaml │ ├── Classic.xaml │ ├── Controls │ │ ├── DropDownButton.xaml │ │ └── OdcTextBox.xaml │ ├── Expander │ │ ├── Aero.NormalColor.ExpandHeader.xaml │ │ ├── Aero.NormalColor.xaml │ │ ├── Classic.ExpandHeader.xaml │ │ ├── Classic.xaml │ │ ├── Generic.ExpandHeader.xaml │ │ ├── Generic.Expander.xaml │ │ ├── Generic.xaml │ │ ├── Luna.Homestead.xaml │ │ ├── Luna.Metallic.xaml │ │ └── Luna.NormalColor.xaml │ ├── Generic.xaml │ ├── Luna.Homestead.xaml │ ├── Luna.Metallic.xaml │ ├── Luna.NormalColor.xaml │ ├── OutlookBar │ │ ├── Generic.xaml │ │ ├── OutlookBar.xaml │ │ ├── OutlookSection.xaml │ │ └── ToggleButton.xaml │ ├── Ribbon │ │ ├── DefaultRibbonButtonBrushes.xaml │ │ ├── DefaultWindowButtonStyles.xaml │ │ ├── Generic.xaml │ │ ├── HighlightedBackgrounds.xaml │ │ ├── InternalRibbonButton.xaml │ │ ├── QuickAccessKey.xaml │ │ ├── RibbonAppMenuItem.xaml │ │ ├── RibbonApplicationButton.xaml │ │ ├── RibbonApplicationMenu.xaml │ │ ├── RibbonBar.xaml │ │ ├── RibbonButton.xaml │ │ ├── RibbonButtonGroup.xaml │ │ ├── RibbonChrome.xaml │ │ ├── RibbonComboBox.xaml │ │ ├── RibbonComboBoxItem.xaml │ │ ├── RibbonContextualTabSet.xaml │ │ ├── RibbonDropDownButton.xaml │ │ ├── RibbonFlowGroup.xaml │ │ ├── RibbonGallery.xaml │ │ ├── RibbonGroup.xaml │ │ ├── RibbonGroupBrushes.xaml │ │ ├── RibbonGroupDropDownButton.xaml │ │ ├── RibbonHLChromeStyle.xaml │ │ ├── RibbonImages.xaml │ │ ├── RibbonMenuItem.xaml │ │ ├── RibbonQAToolBar.xaml │ │ ├── RibbonSeparator.xaml │ │ ├── RibbonSplitButton.xaml │ │ ├── RibbonTabItem.xaml │ │ ├── RibbonTabScroller.xaml │ │ ├── RibbonTextBox.xaml │ │ ├── RibbonThumbnail.xaml │ │ ├── RibbonToggleButton.xaml │ │ ├── RibbonToolTip.xaml │ │ └── RibbonWindow.xaml │ └── TreeViewStyle.xaml └── app.config ├── StringTemplate ├── Antlr3.Runtime.Debug.dll ├── Antlr3.Runtime.dll └── Antlr3.StringTemplate.dll ├── WpfApplicationFramework ├── Code Snippets │ ├── Code Snippets.csproj │ ├── Readme.txt │ └── WAF Snippets │ │ ├── wafpropn.snippet │ │ ├── waftestclass.snippet │ │ ├── wafvalconv.snippet │ │ └── wafviewmodel.snippet ├── Documentation │ ├── Changelog.txt │ ├── Checklist.txt │ └── License.txt ├── LocalTestRun.testrunconfig ├── ManagedExtensibilityFramework │ └── System.ComponentModel.Composition.dll ├── WpfApplicationFramework.sln ├── WpfApplicationFramework.vsmdi └── WpfApplicationFramework │ ├── CodeAnalysisDictionary.xml │ ├── WpfApplicationFramework.Test │ ├── Applications │ │ ├── ApplicationInfoTest.cs │ │ ├── ControllerTest.cs │ │ ├── DelegateCommandTest.cs │ │ ├── Pop3SettingsViewModelTest.cs │ │ ├── Services │ │ │ ├── FileDialogResultTest.cs │ │ │ ├── FileDialogServiceExtensionsTest.cs │ │ │ └── FileTypeTest.cs │ │ ├── ViewExtensionsTest.cs │ │ └── ViewModelTest.cs │ ├── Foundation │ │ └── ModelTest.cs │ ├── Presentation │ │ └── Services │ │ │ ├── FileDialogServiceTest.cs │ │ │ └── MessageServiceTest.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── UnitTesting │ │ ├── AssertExceptionTest.cs │ │ ├── CanExecuteChangedEventTest.cs │ │ ├── ExpectedExceptionTest.cs │ │ └── PropertyChangedEventTest.cs │ └── WpfApplicationFramework.Test.csproj │ ├── WpfApplicationFramework.UnitTesting │ ├── AssertException.cs │ ├── AssertHelper.cs │ ├── GlobalSuppressions.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── WpfApplicationFramework.UnitTesting.csproj │ └── WpfApplicationFramework │ ├── Applications │ ├── ApplicationInfo.cs │ ├── CollectionChangedEventListener.cs │ ├── Controller.cs │ ├── DelegateCommand.cs │ ├── DispatcherHelper.cs │ ├── IView.cs │ ├── PropertyChangedEventListener.cs │ ├── Services │ │ ├── FileDialogResult.cs │ │ ├── FileDialogServiceExtensions.cs │ │ ├── FileType.cs │ │ ├── IFileDialogService.cs │ │ └── IMessageService.cs │ ├── ViewExtensions.cs │ ├── ViewModel.Generic.cs │ └── ViewModel.cs │ ├── Foundation │ └── Model.cs │ ├── GlobalSuppressions.cs │ ├── Presentation │ └── Services │ │ ├── FileDialogService.cs │ │ └── MessageService.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── WafConfiguration.cs │ └── WpfApplicationFramework.csproj └── protobuf-net └── protobuf-net.dll /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # This .gitignore file was automatically created by Microsoft(R) Visual Studio. 3 | ################################################################################ 4 | 5 | *\bin\* 6 | *\obj\* 7 | *\packages\* 8 | *.suo -------------------------------------------------------------------------------- /FAP.Application/ViewModel/UserInfoViewModel.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | using FAP.Application.Views; 22 | using FAP.Domain.Entities; 23 | 24 | namespace FAP.Application.ViewModels 25 | { 26 | public class UserInfoViewModel : ViewModel 27 | { 28 | public UserInfoViewModel(IUserInfo view) 29 | : base(view) 30 | { 31 | } 32 | 33 | public Node Node { set; get; } 34 | } 35 | } -------------------------------------------------------------------------------- /FAP.Application/ViewModel/WebViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Waf.Applications; 2 | using FAP.Application.Views; 3 | 4 | namespace FAP.Application.ViewModel 5 | { 6 | public class WebViewModel : ViewModel 7 | { 8 | public WebViewModel(IWebPanel view) 9 | : base(view) 10 | { 11 | } 12 | 13 | public string Location 14 | { 15 | set { ViewCore.Location = value; } 16 | get { return ViewCore.Location; } 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IBrowserView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface IBrowserView : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/ICompareView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface ICompareView : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IConverstationView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface IConverstationView : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IDownloadQueue.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface IDownloadQueue : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IInterfaceSelectionView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface IInterfaceSelectionView : IView 25 | { 26 | bool? ShowDialog(); 27 | void Close(); 28 | } 29 | } -------------------------------------------------------------------------------- /FAP.Application/Views/ILogView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface ILogView : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IMainWindow.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | using System.Windows.Threading; 22 | 23 | namespace FAP.Application.Views 24 | { 25 | public interface IMainWindow : IView 26 | { 27 | Dispatcher Dispatcher { get; } 28 | void Show(); 29 | void Close(); 30 | void Flash(); 31 | } 32 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IMessageBoxView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface IMessageBoxView : IView 25 | { 26 | bool? ShowDialog(); 27 | bool? ShowDialog(object parent); 28 | } 29 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IPopupWindow.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface IPopupWindow : IView 25 | { 26 | void FlashIfNotActive(); 27 | void Show(); 28 | void Close(); 29 | } 30 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IQuery.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | namespace FAP.Application.Views 21 | { 22 | public interface IQuery 23 | { 24 | bool SelectFolder(out string result); 25 | bool SelectFile(out string result); 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/ISearchView.cs: -------------------------------------------------------------------------------- 1 | using System.Waf.Applications; 2 | 3 | namespace FAP.Application.Views 4 | { 5 | public interface ISearchView : IView 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /FAP.Application/Views/ISettingsView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface ISettingsView : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/ISharesView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface ISharesView : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/ITrayIconView.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface ITrayIconView : IView 25 | { 26 | bool ShowIcon { set; get; } 27 | void Dispose(); 28 | } 29 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IUserInfo.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Waf.Applications; 21 | 22 | namespace FAP.Application.Views 23 | { 24 | public interface IUserInfo : IView 25 | { 26 | } 27 | } -------------------------------------------------------------------------------- /FAP.Application/Views/IWebPanel.cs: -------------------------------------------------------------------------------- 1 | using System.Waf.Applications; 2 | 3 | namespace FAP.Application.Views 4 | { 5 | public interface IWebPanel : IView 6 | { 7 | string Location { set; get; } 8 | } 9 | } -------------------------------------------------------------------------------- /FAP.Application/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /FAP.Domain/Entities/ITransferWorker.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | namespace FAP.Domain.Entities 21 | { 22 | public interface ITransferWorker 23 | { 24 | long Length { get; } 25 | bool IsComplete { get; } 26 | long Speed { get; } 27 | string Status { get; } 28 | long Position { get; } 29 | } 30 | } -------------------------------------------------------------------------------- /FAP.Domain/Entities/NetworkInterface.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Net; 21 | 22 | namespace FAP.Domain.Entities 23 | { 24 | public class NetInterface 25 | { 26 | public string Name { set; get; } 27 | 28 | public long Speed { set; get; } 29 | 30 | public string Description { set; get; } 31 | 32 | public IPAddress Address { set; get; } 33 | } 34 | } -------------------------------------------------------------------------------- /FAP.Domain/Handlers/IFAPHandler.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using HttpServer; 21 | 22 | namespace FAP.Domain.Handlers 23 | { 24 | public interface IFAPHandler 25 | { 26 | bool Handle(RequestEventArgs e); 27 | } 28 | } -------------------------------------------------------------------------------- /FAP.Domain/Net/DetectedNode.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System; 21 | 22 | namespace FAP.Domain.Net 23 | { 24 | public class DetectedNode 25 | { 26 | public string Address { set; get; } 27 | public string NetworkName { set; get; } 28 | public string NetworkID { set; get; } 29 | public string OverlordID { set; get; } 30 | public int Priority { set; get; } 31 | public DateTime LastAnnounce { set; get; } 32 | public int MaxUsers { set; get; } 33 | public int CurrentUsers { set; get; } 34 | } 35 | } -------------------------------------------------------------------------------- /FAP.Domain/Net/LanPeer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace FAP.Domain.Net 4 | { 5 | public class LanPeer 6 | { 7 | public DetectedNode Node { set; get; } 8 | public DateTime LastConnectionTime { set; get; } 9 | public DateTime LastUpdate { set; get; } 10 | } 11 | } -------------------------------------------------------------------------------- /FAP.Domain/Services/BonjourAnnouncerService.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | /*namespace FAP.Domain.Services 21 | { 22 | public class BonjourAnnouncerService 23 | { 24 | private Bonjour.DNSSDEventManager eventManager = null; 25 | 26 | public BonjourAnnouncerService() 27 | { 28 | eventManager = new Bonjour.DNSSDEventManager(); 29 | } 30 | } 31 | }*/ -------------------------------------------------------------------------------- /FAP.Domain/Services/TemplateEngine.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Antlr3.ST; 3 | 4 | namespace FAP.Domain.Services 5 | { 6 | public class TemplateEngineService 7 | { 8 | private static object sync = new object(); 9 | 10 | public static string Generate(string input, Dictionary data) 11 | { 12 | var template = new StringTemplate(input); 13 | 14 | foreach (var d in data) 15 | template.SetAttribute(d.Key, d.Value); 16 | 17 | string result = template.ToString(); 18 | ; 19 | template.Reset(); 20 | data.Clear(); 21 | template = null; 22 | return result; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /FAP.Domain/Services/UpdateCheckerService.cs: -------------------------------------------------------------------------------- 1 | using System.Net; 2 | using System.Threading; 3 | using FAP.Domain.Entities; 4 | 5 | namespace FAP.Domain.Services 6 | { 7 | public class UpdateCheckerService 8 | { 9 | private readonly Model model; 10 | 11 | public UpdateCheckerService(Model m) 12 | { 13 | model = m; 14 | } 15 | 16 | public void Run() 17 | { 18 | ThreadPool.QueueUserWorkItem(doCheck); 19 | } 20 | 21 | private void doCheck(object o) 22 | { 23 | try 24 | { 25 | var client = new WebClient(); 26 | string message = 27 | client.DownloadString("http://iownallyourbase.com/fap/updates.php?i=" + model.LocalNode.ID + "&v=" + 28 | Model.AppVersion); 29 | if (null != message) 30 | { 31 | foreach (string split in message.Split('\n')) 32 | model.Messages.Add(split); 33 | } 34 | } 35 | catch 36 | { 37 | model.Messages.Add("An error occured during client update check"); 38 | } 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /FAP.Domain/Verbs/ConversationVerb.cs: -------------------------------------------------------------------------------- 1 | using FAP.Network.Entities; 2 | using Newtonsoft.Json; 3 | 4 | namespace FAP.Domain.Verbs 5 | { 6 | public interface IConversationController 7 | { 8 | bool HandleMessage(string id, string nickname, string message); 9 | } 10 | 11 | public class ConversationVerb : BaseVerb, IVerb 12 | { 13 | public string Nickname { set; get; } 14 | public string Message { set; get; } 15 | 16 | [JsonIgnore] 17 | public string SourceID { set; get; } 18 | 19 | #region IVerb Members 20 | 21 | public NetworkRequest CreateRequest() 22 | { 23 | var req = new NetworkRequest(); 24 | req.Verb = "CONVERSTATION"; 25 | req.Data = Serialize(this); 26 | return req; 27 | } 28 | 29 | public NetworkRequest ProcessRequest(NetworkRequest r) 30 | { 31 | var verb = Deserialise(r.Data); 32 | Nickname = verb.Nickname; 33 | Message = verb.Message; 34 | SourceID = r.SourceID; 35 | r.Data = string.Empty; 36 | return r; 37 | } 38 | 39 | public bool ReceiveResponse(NetworkRequest r) 40 | { 41 | return true; 42 | } 43 | 44 | #endregion 45 | } 46 | } -------------------------------------------------------------------------------- /FAP.Domain/Verbs/IVerb.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using FAP.Network.Entities; 21 | 22 | namespace FAP.Domain.Verbs 23 | { 24 | public interface IVerb 25 | { 26 | NetworkRequest CreateRequest(); 27 | NetworkRequest ProcessRequest(NetworkRequest r); 28 | bool ReceiveResponse(NetworkRequest r); 29 | } 30 | } -------------------------------------------------------------------------------- /FAP.Domain/Verbs/LocalDownload.cs: -------------------------------------------------------------------------------- 1 | using FAP.Network.Entities; 2 | 3 | namespace FAP.Domain.Verbs 4 | { 5 | public class AddDownload : BaseVerb, IVerb 6 | { 7 | public string URL { set; get; } 8 | 9 | #region IVerb Members 10 | 11 | public NetworkRequest CreateRequest() 12 | { 13 | var req = new NetworkRequest(); 14 | req.Verb = "ADDDOWNLOAD"; 15 | req.Param = URL; 16 | return req; 17 | } 18 | 19 | public NetworkRequest ProcessRequest(NetworkRequest r) 20 | { 21 | URL = r.Param; 22 | return new NetworkRequest(); 23 | } 24 | 25 | public bool ReceiveResponse(NetworkRequest r) 26 | { 27 | return true; 28 | } 29 | 30 | #endregion 31 | } 32 | } -------------------------------------------------------------------------------- /FAP.Domain/Verbs/Multicast/WhoVerb.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | namespace FAP.Domain.Verbs.Multicast 21 | { 22 | public class WhoVerb 23 | { 24 | public static string Message = "FAPWHO"; 25 | 26 | public static string CreateRequest() 27 | { 28 | return Message; 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/css/fap.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/css/fap.css -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/favicon.ico -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/back_disabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/back_disabled.jpg -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/back_enabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/back_enabled.jpg -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/fap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/fap.png -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/folder.png -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/forward_disabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/forward_disabled.jpg -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/forward_enabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/forward_enabled.jpg -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/sort_asc.png -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/sort_both.png -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/sort_desc.png -------------------------------------------------------------------------------- /FAP.Domain/Web.Resources/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/FAP.Domain/Web.Resources/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /FAP.Domain/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /FAP.Foundation/AsyncOperation.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | /** 3 | This program is free software: you can redistribute it and/or modify 4 | it under the terms of the GNU General Public License as published by 5 | the Free Software Foundation, either version 3 of the License, or any 6 | later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program. If not, see . 15 | * */ 16 | #endregion 17 | using System; 18 | using System.Collections.Generic; 19 | using System.Linq; 20 | using System.Text; 21 | using System.Waf.Applications; 22 | 23 | namespace Fap.Foundation 24 | { 25 | public class AsyncOperation 26 | { 27 | public DelegateCommand Command { set; get; } 28 | public Object Object { set; get; } 29 | public DelegateCommand CompletedCommand { set; get; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /FAP.Foundation/BaseEntity.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | /** 3 | This program is free software: you can redistribute it and/or modify 4 | it under the terms of the GNU General Public License as published by 5 | the Free Software Foundation, either version 3 of the License, or any 6 | later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program. If not, see . 15 | * */ 16 | #endregion 17 | using System; 18 | using System.Collections.Generic; 19 | using System.Linq; 20 | using System.Text; 21 | using System.ComponentModel; 22 | 23 | namespace Fap.Foundation 24 | { 25 | public class BaseEntity : INotifyPropertyChanged 26 | { 27 | protected void NotifyChange(string path) 28 | { 29 | if (null != PropertyChanged) 30 | PropertyChanged(this, new PropertyChangedEventArgs(path)); 31 | } 32 | 33 | public event PropertyChangedEventHandler PropertyChanged; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /FAP.Foundation/Services/IDService.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2010. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | /** 3 | This program is free software: you can redistribute it and/or modify 4 | it under the terms of the GNU General Public License as published by 5 | the Free Software Foundation, either version 3 of the License, or any 6 | later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program. If not, see . 15 | * */ 16 | #endregion 17 | using System; 18 | using System.Collections.Generic; 19 | using System.Linq; 20 | using System.Text; 21 | 22 | namespace Fap.Foundation.Services 23 | { 24 | public class IDService 25 | { 26 | public static string CreateID() 27 | { 28 | return Guid.NewGuid().ToString().Replace("-", "").ToUpper(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /FAP.Foundation/Services/SingleInstanceService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading; 6 | 7 | namespace Fap.Foundation.Services 8 | { 9 | public class SingleInstanceService 10 | { 11 | private Mutex mutex; 12 | private bool hasLock = false; 13 | 14 | public SingleInstanceService(string name) 15 | { 16 | mutex = new Mutex(false, name); 17 | mutex.WaitOne(0,false); 18 | } 19 | 20 | public void Dispose() 21 | { 22 | if (hasLock) 23 | mutex.ReleaseMutex(); 24 | mutex.Close(); 25 | mutex = null; 26 | } 27 | 28 | public bool GetLock() 29 | { 30 | if (hasLock) 31 | return hasLock; 32 | hasLock = mutex.WaitOne(0, false); 33 | return hasLock; 34 | } 35 | 36 | public bool HasLock 37 | { 38 | get { return hasLock; } 39 | } 40 | 41 | public void ReleaseLock() 42 | { 43 | if (!hasLock) 44 | throw new Exception("Cannot release a lock when we dont have one."); 45 | mutex.ReleaseMutex(); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /FAP.Foundation/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /FAP.Network/NetworkModule.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using Autofac; 21 | using FAP.Network.Services; 22 | 23 | namespace FAP.Network 24 | { 25 | public class NetworkModule : Module 26 | { 27 | protected override void Load(ContainerBuilder builder) 28 | { 29 | builder.RegisterType().SingleInstance(); 30 | builder.RegisterType().SingleInstance(); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /FAP.Network/Services/MulticastCommon.cs: -------------------------------------------------------------------------------- 1 | #region Copyright Kayomani 2011. Licensed under the GPLv3 (Or later version), Expand for details. Do not remove this notice. 2 | 3 | /** 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or any 7 | later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | * */ 17 | 18 | #endregion 19 | 20 | using System.Net; 21 | 22 | namespace FAP.Network.Services 23 | { 24 | public class MulticastCommon 25 | { 26 | protected readonly IPAddress broadcastAddress = IPAddress.Parse("239.1.1.1"); 27 | protected readonly int broadcastPort = 12; 28 | } 29 | } -------------------------------------------------------------------------------- /FAP.Network/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Installer/FAP.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{6141683F-8A12-4E36-9623-2EB02B2C2303}") = "FAP", "FAP.isproj", "{8FD5B897-49B6-4452-AE47-713615C801C1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | CD_ROM|Default = CD_ROM|Default 9 | DVD-5|Default = DVD-5|Default 10 | SingleImage|Default = SingleImage|Default 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {8FD5B897-49B6-4452-AE47-713615C801C1}.CD_ROM|Default.ActiveCfg = CD_ROM 14 | {8FD5B897-49B6-4452-AE47-713615C801C1}.CD_ROM|Default.Build.0 = CD_ROM 15 | {8FD5B897-49B6-4452-AE47-713615C801C1}.DVD-5|Default.ActiveCfg = DVD-5 16 | {8FD5B897-49B6-4452-AE47-713615C801C1}.DVD-5|Default.Build.0 = DVD-5 17 | {8FD5B897-49B6-4452-AE47-713615C801C1}.SingleImage|Default.ActiveCfg = SingleImage 18 | {8FD5B897-49B6-4452-AE47-713615C801C1}.SingleImage|Default.Build.0 = SingleImage 19 | EndGlobalSection 20 | GlobalSection(SolutionProperties) = preSolution 21 | HideSolutionNode = FALSE 22 | EndGlobalSection 23 | EndGlobal 24 | -------------------------------------------------------------------------------- /Installer/SFX/7zsd.sfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/Installer/SFX/7zsd.sfx -------------------------------------------------------------------------------- /Installer/SFX/Create SFX.bat: -------------------------------------------------------------------------------- 1 | copy /b 7zSD.sfx + config.txt + DISK1.7z FAP.exe -------------------------------------------------------------------------------- /Installer/SFX/config.txt: -------------------------------------------------------------------------------- 1 | ;!@Install@!UTF-8! 2 | RunProgram="setup.exe" 3 | ExtractTitle="Extracting installer.." 4 | GUIMode="1" 5 | ;!@InstallEnd@! -------------------------------------------------------------------------------- /Licences/Autofac License.txt: -------------------------------------------------------------------------------- 1 | Autofac IoC Container 2 | Copyright (c) 2007-2010 Autofac Contributors 3 | http://code.google.com/p/autofac/wiki/Contributing 4 | 5 | Other software included in this distribution is owned and 6 | licensed separately, see the included license files for details. 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Licences/Icon Licence.txt: -------------------------------------------------------------------------------- 1 | Yellow folder icon by fasticon.com -------------------------------------------------------------------------------- /Licences/Json.NET Licence.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2007 James Newton-King 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Licences/Messagebox Licence.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009, Prajeesh Prathap 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | * Neither the name of blogsprajeesh.blogspot nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | FAP is a HTTP based lan file sharing tool. It features chat, system spec comparison, file search, network service scanning and queable file downloads. Shared files and folders can also be downloaded via a web browser. The tool is optimised for high bandwidth LAN enviroments i.e. Gigabit+. 3 | 4 | ### Binaries 5 | Releases are available from https://code.google.com/p/fap/ 6 | 7 | ### Features 8 | - Finds all local LAN peers automatically - No need to worry about running servers unless you wish to. 9 | - Browse and download files via the client or via a web browser. 10 | - No requirement to hash shared files meaning you can usually share 15tb+ in under a minute. 11 | - Avatars. 12 | - High transfer throughput with low system resources. 13 | - Headless Linux/Mono builds (Todo). 14 | - Fast full network file search. 15 | - Full network system specification comparision 16 | - File transfer visualiser. 17 | - Upload and download limiter and queue. 18 | - Chat. 19 | - Statistics of the local client and the network as a whole. 20 | - Share and download files in a share via web browser via a customisable interface. 21 | - Unicode file names & Large file support - Theoretical max single file size 16TB (Based on NTFS). -------------------------------------------------------------------------------- /UI/Client.Console/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using FAP.Network.Server; 6 | 7 | namespace Client.Console 8 | { 9 | class Program 10 | { 11 | static void Main(string[] a) 12 | { 13 | Program p = new Program(); 14 | p.test(); 15 | 16 | } 17 | 18 | 19 | private void test() 20 | { 21 | NodeServer server = new NodeServer(); 22 | server.Start(); 23 | 24 | for (int i = 0; i < 100; i++) 25 | { 26 | FAP.Network.Client.Client c = new FAP.Network.Client.Client(); 27 | c.Test(); 28 | } 29 | System.Console.ReadKey(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /UI/Client.Console/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /UI/Client.WPF/FolderItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Windows.Media; 6 | 7 | namespace Fap.Presentation 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Chart Bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Chart Bar.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Cog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Cog.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Default_Avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Default_Avatar.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Download.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Drawer Closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Drawer Closed.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Folder Sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Folder Sync.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Search.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/Upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/Upload.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/folder-yellow.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/folder-yellow.ico -------------------------------------------------------------------------------- /UI/Client.WPF/Images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/folder.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/newtab.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/newtab.ico -------------------------------------------------------------------------------- /UI/Client.WPF/Images/originals/defaultavatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/originals/defaultavatar.png -------------------------------------------------------------------------------- /UI/Client.WPF/Images/splash screens/1209850323723.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/splash screens/1209850323723.jpg -------------------------------------------------------------------------------- /UI/Client.WPF/Images/splash screens/1242976218726.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/splash screens/1242976218726.jpg -------------------------------------------------------------------------------- /UI/Client.WPF/Images/splash screens/1243840487105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/splash screens/1243840487105.jpg -------------------------------------------------------------------------------- /UI/Client.WPF/Images/splash screens/1253754897671.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/splash screens/1253754897671.jpg -------------------------------------------------------------------------------- /UI/Client.WPF/Images/splash screens/1256029184403.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/splash screens/1256029184403.jpg -------------------------------------------------------------------------------- /UI/Client.WPF/Images/splash screens/1274249428281.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kayomani/FAP/25119f13aa4544d68a6d82c8c4101522bb911e2b/UI/Client.WPF/Images/splash screens/1274249428281.jpg -------------------------------------------------------------------------------- /UI/Client.WPF/Images/src.txt: -------------------------------------------------------------------------------- 1 | folder-yellow.ico http://www.iconarchive.com/category/computer/solid-icons-by-fasticon.html 2 | Default_Avatar.png http://blogs.tennessean.com/politics/files/2009/08/paper_bag_head_275.jpg 3 | 4 | http://www.freeiconsweb.com/Free-Downloads.asp?id=1302 5 | Chart Bar.png 6 | Cog.png 7 | Drawer Closed.png 8 | Folder Sync.png 9 | Search.png -------------------------------------------------------------------------------- /UI/Client.WPF/InputWindow.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | 10 | 11 |