Upload Files to Box from Linux Console using c# application - c#

I have a c# desktop application developed using Mono which upload files to Box, In windows i am able to upload the files . The problem is that in windows there comes a Box login page and i manually giving the details and i got the code and token pair to upload file, but in Linux console mode i am not able to display the Box login page..
what should i do to Upload files to Box from Linux console.
i am using box-csharp-sdk-v2

You can forgo Box's APi entirely and hook something up to it via WebDAV, which is how it's traditionally done on console linux (well, that, and rsync). Since WebDAV is built on top of HTTP, it's cross platform as well. You'll need a C# friendly WebDAV client and all the settings/information to hook them up. Here's a quick link to a simple WebDAV client that should be easy enough to figure out:
WebDAVClient # Github
Point it at https://www.box.com/dav with your Box email and login, and voilà!
(Another, even simpler alternative is to set up DAVFS2 accordingly, making sure the drive is mounted, then handling it like any other directory. However, this requires outside setup and takes control out of the app's hands.)

Related

How can I open a file on the user's machine from the backend in C#.Net WebPages?

In my web-app (WebPages, C#.NET) I have a drag and drop file box where user's can drag files from windows explorer and, once dropped, it will save in a given location on a shared drive. This part is working fine. The box looks something like this:
The problem is, that it also reads files from the same directory and my user's would like to be able to open the files from this interface on dblclick. I have written an ajax request with jquery (the ajax, too, is working fine), but I can't seem to get the files to open on the user's machine no matter what I try.
Most references I try and look up point me towards System.Diagnostics.Process.Start(#"<directory goes here>") but this doesn't really do anything. It will open some process on the server side, but nothing opens, either on the server or on the user's machine.
What they'd like to do, for instance, is double click 'Hazcom.xls' and it would use the default associated application to open the file. In this case, of course, Microsoft Excel.
Is this even possible or am I chasing a wild goose here?
Sources I've Tried:
Open file with associated application
http://www.csharp-examples.net/open-file-with-default-application/
How can I open Windows Explorer to a certain directory from within a WPF app?
c# open file with default application and parameters
There have been a few more sources I've tried, as well, but they're all pretty much in the same vein as these.
Additional Info:
The internal Intranet application runs on a server using IIS 8
The solution is desired to be opened on the user's machine and not, say, the server itself.
The path to the files is dynamically changing depending on what they have loaded into the interface.
Though, I'm not expecting this to be a solution viable for client side (jquery) I'd be happy to look into that if that's the only solution available.
I'd also settle for simply opening the file location, instead of the actual file itself, but I've had no luck with this either, for what looks like the same reasons as the original problem.

File upload tool

I would like to create a image file upload tool. The tool when started up and would ask the user what directory they would like to monitor and upload files from. In the background the tool would then post securely to a web service of some sort.
Constraints solution should work on Mac and Windows computers. I would like to make the upload process pretty automatic with little user intervention.
Basically the question I have is what would you use to create application that either runs in the background or foreground to basically continuously uploads files to a web server?
I have a couple of thoughts:
HTML5 using web workers (concerns accessing local files not sure the best way to do that)
Silverlight (my guess is I would have to sign the application)
Java web start application (Signing application)
Flash (scared of this idea)
I can do the Java web start application easy enough. Both HTML5 and Silverlight are things that I would like to know. I really don't care about flash at this point.
In Java, you can use the JNotify library: http://jnotify.sf.net . It works on Windows, OS X, and Linux.
I don't know about C# or HTML5. HTML5 (last I checked circa July 2011) doesn't have a filesystem API. In reality you need an app that can be distributed so it can run in the background, so Silverlight is out of the question. If I am misinterpreting your problem, please tell me.
I would try to go with a signed Java applet if you can foresee the need for downloading as well. It is difficult to find a good download solution other then a signed Java applet. A signed Java applet let's you push things to the users filesystem allowing for upload as well as download.

Use windows and asp concurrently

Can we add a windows form in an asp web page.
Like if someone click on a button on web page(.aspx) user receive a windows form (.cs)
and then again switch to each other.
It cannot be done.
The closest thing to do this would be to use Silverlight embedded in the browser.
No there is not any way to do this. Your only option would be for the user to click a link, download an .exe and then have the user launch the application.
The reason for this is that Windows Forms are designed to run on Windows, and run with a different permission set. As such, a web application first of all could be running on a non-windows platform, and secondly, does not have the ability to actually launch an application on the users machine.
In short, no this cannot be done.
You can't embed a windows form application in a webpage.
RIA (Rich Internet Applications) are what HTML 5 is about, and currently flash and silverlight are the closes things to what you are looking for.
As #Mitchel Sellers mentions, you can always link to an exe, save it and execute the downloaded file, but this is far from seamless.
Even if you did add some windows form UI (for eg a message box) to your asp.net application it will only be fired on your web server.. no client will ever get it on their side
I'm not exactly sure why would you need this? But the closest you can get to this is like "Mikael Svenson" said, Silverlight..

How to start up your .NET program from web browser?

Could you provide example of JavaScript function for starting up application installed on your computer from a web browser (eg google chrome 4). It particular if .Net APPs have any special simplifying this process apis of out there are some libs for such staff, please share link with us.
so how to create and store in run on start up programs a small local server which would handel some local urls like http://localhost/maAppServer/MyAppCalculator/Start for starting apps that have written in its config file their names and local urls on install?
So how to start up your C# .NET app\program from web browser?
I don't believe its possible in Chrome, starting an EXE on a users computer could be considered a security violation. Some ActiveX, and file:// links in internet explorer may work. Also, OneClick deployment may do something similar to what you are after (not exactly though I don't think, and I believe they require an add-in which may not be available for Crhome) http://www.15seconds.com/issue/041229.htm
I'm not sure what you're asking for. You can start an application on your computer just by linking to it in the HTML page. However, if you need to pass data to it, then it's a different matter altogether, although it's still simple.
An example is what www.nexon.com does with it's MMORPG, MapleStory. You log on to the website, and the web page starts the game after the authentication. Another example would be the magnet links on file-sharing sites.
You need to create a protocol handler, it can be in any language like C++/C# and register it on the client's computer. Like so - http://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx
Then, just use the protocol you built to pass on whatever data necessary. You can add a link that can be clicked, a button, Response.Redirect() from the server, whatever you like.

Thoughts about using Silverlight In Desktop Apps?

To summarize, as we all know,
a) Silverlight is expected to be hosted by a browser, and runs in an isolated sandbox so that there won’t be any security issues
Silverlight don’t have direct access
to the file system, other than the
isolated storage area
There is no
direct way to open common dialog
boxes like File Save in Silverlight (Though Opendialog box is supported).
b) Silverlight can’t access local resources like a printer
What are the ways to go beyond the sandbox, so that I can host a Silverlight application locally, to read files and save them back if required, to hand over data to a printer, and so on..
Update:
Is full WPF is not an option for me? No. I'm also interested in a cross platform solution - for instance, you could host Silverlight in Mono Web browser control, so that you can run it virtually anywhere.
The idea is to re-use the same application that I'm building for web in my desktop as well, by providing separation of concerns at some areas - like persistence, resource access etc.
Scenarios:
1- Some kind of gadget container, with access to local resources.
2 - A desktop Silver light based media application
Update:
I just did a POC to enable me to access printer and save files locally, of course through a shell where I'm hosting my Silverlight application. If you wan't you can have a look at the post here in my blog
Two ways I can think about is,
Create a "Shell"
Host the HTML Page with Silverlight, in a Winforms desktop application, using a web browser control, and communicate to and fro using HTML DOM. Then I can request the hosted shell to do things like printing. See details here
Mono also has a web browser control - based on FireFox XULRunner instead of IE - not yet succeeded in loading Silverlight inside that. Another option might be using Webkit.
Embed a web server
Embed a light weight web server with in the Host application, and handle requests to perform such operations. You can probably define a protocol on top of HTTP for things like saving to a local folder, sending data to print etc.
Is a full WPF application not an option for your situation?
As you probably know Silverlight uses a subset of WPF so you may be able to change your application relatively easy.
A wpf app would be easier than having a web server etc bundled within your application.
You wont in the foreseeable future be able to have access to resources such as printer and files (apart from isolated storage) through Silverlight as you know.
You could have a seperate part of your app to upload files to the webserver then read these in your silverlight app from a service.
Depending on your printing requirements (e.g. if you just want to send everything to an office printer) you could send the informaton you wanted printed to a service that will then print it for you. However I am guessing you want each client machine to be able to print in which case this wont work for you.
I am attempting to also reuse a codebase for both desktop and silverlight. There are two options that I know of in addition to the ones mentioned
If you directly reference (instead of a project reference) a silverlight dll from a normal project, it should work. This would let you reference a silverlight dll for both projects.
Have two project files (one wpf, one silverlight) that point to the same set of files. You might have to have to use a few compiler flags here and there, but this should let you use the same files for both.

Categories

Resources