|
convert string("from var in dbModel.OM_SHIFT") to system.linq.iqueryable in C#
|
|
|
|
|
No thanks - I don't want to.
How to get an answer[^]
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
You really haven't asked a question. You just posted a demand.
But, if you're looking to convert a free-form string into a valid LINQ query, you'd have to build your own query processing library to do it, which is a rather large task. There is no built-in function to do this.
|
|
|
|
|
I've been fighting this battle on my own for months, I could elaborate on the details of everything I've tried and why I ultimately gave up on those other paths... but that would amount to one hell of a long post. I think it might be better just to stick with telling you the path I'm on.
I'm developing an application to print serialized PDFs. Long story short, the most workable solution for getting the PDF to the printer seems to be installing Foxit Reader and using command lines to print using default printer configurations.
Since I don't want to risk mangling the existing printer configuration, I create a clone. If a print setting needs changed, it is written to the clone printer's default settings. When finished printing, I remove the clone and no one is the wiser.
I'm using a WPF PrintDialog to get information about the original printer and allow the user to modify printer configurations. Working from this point, I find the print server that the printer is installed on and grab its print queue.
I'm having hit and miss success at this point. If someone thinks they can offer direction, I can elaborate on what specific failures are occurring, but it seems to be different issues with different printers. Sometimes I am unable to install a clone of the original printer and sometimes the application fails to retrieve information about the original printer.
I was using the general logic outlined here: http://msdn.microsoft.com/en-us/library/aa970846%28v=vs.110%29.aspx
but that didn't work with network printers. My attempts to use PrintServer instead of LocalPrintServer work when the printer is locally installed and are only partially successful otherwise.
I think what I need is to understand the proper way to work with print servers and print ques. How does this change in a network environment? I feel like I'm missing something fundamental about what needs to take place. I don't know, can't really explain what I need to learn if I don't know what to call it in the first place. I'm hoping someone has done this type of thing before and knows what the missing link is.
|
|
|
|
|
Why do you need to create a clone? As I understand the usage of printers in Windows, you can change any settings for each print job, but the printer's default settings always remain.
|
|
|
|
|
If you know a way to create a printable document object out of a PDF, I'm open to new ideas. My understanding was that this required the printer to have native support for printing PDFs. I'm not certain that this would always be true or I would just do it this way and be done with it. Alternatively, I could use a third party library/tool like ghost script, but this seemed to give me about an equivalent level of control relative to using process commands.
Lots of other options available if you shell out $400+. I tried a demo of PDFRender4NET. At first, it seemed to support the printersettings class, which theoretically gave me a way to inject a properly configured devmode structure. Later, their support staff told me PDFRender4NET can't pull printer configurations from the print settings object. It was never intended to configure a printer in that manner.
Printing using a process to issue command line instructions is the closest I've come to something that works. At least, this is the best solution I've been able to figure out. Some other examples involve using pinvoke signatures, but native api calls are too much of a black box for me to really understand how to use them.
Unfortunately, I need to set configurations that are only accessible through the devmode structure. I can't set them via the command line, which means it prints using the default configuration. Changing the default settings seemed like an easy work around, but if the application crashes or we have a power outage mid-print, etc, it would require manually setting the defaults back to normal. Creating a temporary clone is just a precaution against such things and avoids the clutter of having duplicate print ques for each printer pre-installed.
|
|
|
|
|
I am trying to make a fairly robust file writer. I want to specify the format of the file in an XML file. I need to be able to get the datasource name dynamically from the XML file, the XML will look something like this:
<Row Name="Stuff" MoreThanOne="True" Seq="2" Source="data">
I am not sure what that data will look like. It might be a list, it might be a single object, but I want to be able to enumerate it's properties in my class. Something like this:
var data = data.GetType().GetProperty(fieldName).GetValue(data, null).ToString()
I have most of the code ironed out, just not sure how to handle the data source. I could make it less generic and take the data source name out of the XML and just handle it code side, but I like the robustness of having the instructions all XML contained.
Thoughts?
Cheers, --EA
|
|
|
|
|
You can use XPathNavigator and XPathNodeIterator (in the System.Xml.XPath namespace) to navigate an "unknown" XML data source.
|
|
|
|
|
I should have explained better. The instructions are XML, but the datasource could be any number of things. It is either a List<t> or just an Object. If it is an object I want to get at it's properties as in the c# code I posted below, if it is a List<t> then I will loop through it and access it the same way. Just need to figure out how to access that data by name.
|
|
|
|
|
Then perhaps the PropertyInfo class of the System.Reflection namespace is what you're looking for ...
|
|
|
|
|
Now THAT sounds promising. Thanks for the direction.
Cheers, --EA
|
|
|
|
|
Also check out the MemberInfo class.
One typically starts at the "member-level" (GetMembers() of the type), and then depending on the "member type" (property; method) of each member, goes from there.
|
|
|
|
|
This is a weird one from a client. I've been racking my brains on how to do this, but as yet, no success. Starting from a random date, to another random date (school term dates), how can I flag up the second Tuesday of each calendar month? I will accept hoots and jeers
|
|
|
|
|
You could determine all the second Tuesdays for a year or two and then select the ones that fall within the target date range. Here are the second Tuesdays for 2014:
for ( int i = 0; i < 12; i++ ) {
DateTime beginDate = new DateTime( 2014, 01 + i, 01 );
int dayDiff = ( int ) DayOfWeek.Tuesday - ( int ) beginDate.DayOfWeek;
DateTime secondTuesday = beginDate.AddDays( dayDiff + ( dayDiff < 0 ? 14 : 7 ) );
Console.WriteLine( "2nd Tuesday: {0}", secondTuesday );
}
|
|
|
|
|
Well, the brute force method is to find the first Tuesday of a month and add 7 days. No, I'm not trying to be funny here, here's a simple way to achieve this:
public DateTime FindSecondTuesday(int month, int year)
{
int day = 1;
DateTime date = new DateTime(year, month, 1);
while (true)
{
if (date.DayOfWeek == DayOfWeek.Tuesday)
return date.AddDays(7);
date = date.AddDays(1);
}
} All you need do then, is call it for each month and year that you want to get the date from.
|
|
|
|
|
No need for a loop - just switch on the DayOfWeek :
public DateTime FindSecondTuesday(int month, int year)
{
DateTime date = new DateTime(year, month, 1);
switch (date.DayOfWeek)
{
case DayOfWeek.Sunday:
{
return date.AddDays(9);
}
case DayOfWeek.Monday:
{
return date.AddDays(8);
}
case DayOfWeek.Tuesday:
{
return date.AddDays(7);
}
case DayOfWeek.Wednesday:
{
return date.AddDays(13);
}
case DayOfWeek.Thursday:
{
return date.AddDays(12);
}
case DayOfWeek.Friday:
{
return date.AddDays(11);
}
case DayOfWeek.Saturday:
{
return date.AddDays(10);
}
default:
{
throw new InvalidOperationException("Lousy Smarch weather!");
}
}
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I would take the essence of the other 2 solutions, apply ROW_NUMBER() partitioned over the date component and select the row number 2 for each month. Turn that into a view and select the record for a month/year
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Thanks to everyone who answered my plea. - I've since found out that the meeting on the second Tuesday of the month is purely at one persons discretion, so I've decided to let that person enter the day on the timetable themselves.
Thanks again, your answers were most appreciated.
|
|
|
|
|
can we connect SQLite using visual studio?
|
|
|
|
|
You have my permission
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
Yes.
Open the Server Explorer pane, and right click "Data Connections"
From the context menu, select "Add Connection..."
Use the "Change..." button to select the "Data source"
Select "System.Data.SQLite Database File" from the list, and press OK
Browse to your database, and set up the other parameters - then press OK
In the Server explorer pane, right click the database and select "Properties".
In the Properties pane, you will see a connection string you can copy and paste into your application or config file.
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
Entity framework connects to SQLIte easily.
|
|
|
|
|
How we can shared any folder on all user of LAN using c# code. Sir i am making a software where I want to make shared folder on all user of LAN without any Login.
please help me to do it ..
thank you In Advance..........
|
|
|
|
|
If it's a file-sharing network (like Windows networking) you don't need any code to do this, just share the directory (through right click, properties, sharing).
If it's just a TCP network then you probably want to use an SFTP server.
|
|
|
|
|