|
Member 13063143 wrote: please guide me to what to do With all due respect, you're not going to get very far as a software engineer if you expect people to stop what they're doing and spoonfeed you. This is a field where you learn by taking the trouble to read, write and debug code. It starts with YOU. If you have specific questions, feel free to ask and we'll do our best to answer them. But please don't for a moment think that this is a field where you can sit back and have someone explain software engineering to you.
/ravi
|
|
|
|
|
No offense taken Mr. Ravi but i am asking for tutorial or steps on how to construct the app, the thing is am too new for both the language as well as V.S. need just the direction and for problems if any errors occurs i do it by myself and do not ask others unless i have at least tried it a few more times than my satisfaction level. there isnt any documentation on making or working of it as far as i have seen if you found any please share it w/ me
|
|
|
|
|
It's an article. The article should explain how it works. If there are bits in there you are unclear about, post a question on the forum at the end of the article. If you are new to .NET, pick a simpler project to start.
This space for rent
|
|
|
|
|
Hello can someone help to create an addins to read and edit a yaml file on visual studio 2015
Thanks a lot
|
|
|
|
|
Sorry, you might want to try rentacoder. We don't work that way here.
This space for rent
|
|
|
|
|
|
Hey all,
Got some strange behavior going on. I have a simple web page that has to import some fairly complex javascript from a 3rd party I am integrating our product with. I am using the WebBrowser control and working out of VS 2015.
Here is the weird part. I am adding a form, with a browser control in it, to a COM object such that this thing can be used from C++. When I try to run my test harness app from within the IDE, I get a bunch of javascript errors from the control, and the page doesn't load correctly.
I have tried suppressing the script errors. No go. I have tried the hack where you set the IE emulation mode. No go.
BUT... when I run the very same executable from the command line, it runs and loads the page just fine. I checked the browser ActiveX version of IE being used, and it appears to be the most current version of IE that is on my Windows 10 system ( v11 I think ).
So what is going on here? I am thinking it is some kind of content blocking that IE is doing only when I run in debug mode, but not from the command line. I really need to get this working, because their script sends some Json back to me via the ObjectForScripting property on the web control, and that doesn't appear to be working, thus I need to be able to debug from within the environment.
Ideas?
I'm your humble student.
TIA,
Grego
|
|
|
|
|
Try disabling the Visual Studio Hosting Process: How to: Disable the Hosting Process[^]
When it's turned on, the registry hack probably won't apply, since the process name doesn't match.
Alternatively, try using CefSharp[^], which is an embedded version of Chrome, and doesn't suffer from any of the IE-legacy that comes with the WebBrowser control.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Richard, thanks for the link to CefSharp!
/ravi
|
|
|
|
|
Hi guys, I am very new to programming and I took up an online course on C# to learn on my own free time.
Apologies if I posted in the wrong forum.
I was just introduced to Math Operators and I have this question:
int x = 10;
int y = x++;
Console.WriteLine(x);
Console.WrtieLine(y);
I start without debugging and get this result:
11
10
I understand why y = 10 as (x++) is the value of x before increment. However, why is x = 11?
If I wanted x = 11, shouldn't it be:
int x = 10;
x = ++x;
I am confused because in the first example I only typed "int x = 10;" so shouldn't the value of x be 10 instead of 11?
I am using Visual Studio too.
Appreciate the help!
|
|
|
|
|
x++ is incrementing x and so x becomes 11.
The line
int y = x++; is the same as
int y = x;
x = x + 1;
x++ is just a short form of x = x + 1 with the special treatment of the postfix operation.
Compare with the prefix increment
int y = ++x; which corresponds to
x = x + 1;
int y = x;
|
|
|
|
|
The increment and decrement operators are unary types and increment or decrement their associated variable, so you can just write:
int x = 10;
++x;
int x = 10;
x++;
For a detailed description of all the operators, see Operators (C# Programming Guide)[^]
|
|
|
|
|
No, in that position, the ++ is a Postfix operator. In other words, it acts to increment x after the operation (in this case, assigning x to y). Effectively, this is the same as this:
int y = x; x += 1 If we break this down into the corresponding IL, we can see what's going on. First, the version I just showed broken down:
.entrypoint
.maxstack 2
.locals init (
[0] int32 x,
[1] int32 y)
L_0000: nop
L_0001: ldc.i4.s 10
L_0003: stloc.0
L_0004: ldloc.0
L_0005: stloc.1
L_0006: ldloc.0
L_0007: ldc.i4.1
L_0008: add
L_0009: stloc.0
L_000a: ret
Then, the version of int y = x++;
.entrypoint
.maxstack 3
.locals init (
[0] int32 x,
[1] int32 y)
L_0000: nop
L_0001: ldc.i4.s 10
L_0003: stloc.0
L_0004: ldloc.0
L_0005: dup
L_0006: ldc.i4.1
L_0007: add
L_0008: stloc.0
L_0009: stloc.1
L_000a: ret
As you can see, the two methods produce almost identical IL.
This space for rent
|
|
|
|
|
x is 11 because you're writing to the console AFTER x was incremented. You would see x = 10 if you had coded as follows:
int x = 10;
Console.WriteLine(x);
int y = x++;
Console.WriteLine(x);
etc.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
As you can tell from the responses the line:
int y = x++;
is pretty confusing. I would try to avoid such prefix/postfix with assignements except for constructs like for loops or while loops.
for(int x = 0; x < somelength; x++){
}
int x = 0;
while(x < somelength){
x++;
}
hope this helps.
|
|
|
|
|
|
Just to add to the other responses, try to keep pre- and post-fix autoincrement and autodecrement operations to simple code:
for (int i = 0; i < 10; i++)
do
{
Console.WriteLine(myArray[i]);
...
} while (myArray[i++] > 0) They are easy to understand, and every developer with more than a few weeks experience should be able to understand that at a glance.
Don't get "creative" with it:
x = (x++ + --x); Is confusing and not at all obvious what the result will be. In C# it's defined by the language specification (but still hard to read) - in similar looking languages like C and C++ it isn't, and different compilers will produce different results (heck, even different versions of the same compiler or different optimisation options can produce different results!)
Keep it simple, and it's a powerful tool which makes code more compact and easier to read: Compilcate it, and things get confusing very quickly!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.Management;
using System.Reflection;
using System.Threading;
using System.Configuration;
using System.Net;
using System.Net.NetworkInformation;
namespace RemoteBlocker
{
public partial class Form2 : Form
{
BackgroundWorker bgw = new BackgroundWorker();
int mode = 0;
public Form2()
{
InitializeComponent();
}
private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
int total = 100;
for (int i = 0; i <= total; i++)
{
System.Threading.Thread.Sleep(50);
int percents = (i * 100) / total;
bgw.ReportProgress(percents, i);
}
}
private void bgw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
progressBar1.Visible = false;
if (mode == 1)
{
MessageBox.Show("Enable Successfully.");
}
else if (mode == 2)
{
MessageBox.Show("Disable Successfully.");
}
}
private void btnDisable_Click(object sender, EventArgs e)
{
try
{
Ping pingServer1 = new Ping();
PingReply pingresultFrmServer1 = pingServer1.Send("172.16.102.4");
if (pingresultFrmServer1.Status.ToString() == "Success")
{
try
{
Process proc = null;
string batDir = System.Configuration.ConfigurationManager.AppSettings["block1"];
string executebatDir = System.Configuration.ConfigurationManager.AppSettings["executeblock"];
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(batDir);
ftpRequest.Credentials = new NetworkCredential("subhankar", "subhankar");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
List<string> directories = new List<string>();
string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = streamReader.ReadLine();
}
streamReader.Close();
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential("subhankar", "subhankar");
for (int i = 0; i <= directories.Count - 1; i++)
{
if (directories[i].Contains("."))
{
string path = batDir + directories[i].ToString();
string trnsfrpth = executebatDir + directories[i].ToString();
ftpClient.DownloadFile(path, trnsfrpth);
}
}
proc = new Process();
string trnsfrexepth = executebatDir;
proc.StartInfo.WorkingDirectory = trnsfrexepth;
proc.StartInfo.FileName = "Hostblock.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
DirectoryInfo dir = new DirectoryInfo(trnsfrexepth);
foreach (FileInfo files in dir.GetFiles("*.bat"))
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
}
progressBar1.Visible = true;
bgw.DoWork += new DoWorkEventHandler(bgw_DoWork);
bgw.ProgressChanged += new ProgressChangedEventHandler(bgw_ProgressChanged);
bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);
bgw.WorkerReportsProgress = true;
bgw.RunWorkerAsync();
mode = 1;
}
}
catch (Exception exc)
{
}
finally
{
}
}
else
{
Ping pingServer2 = new Ping();
PingReply pingresultFrmServer2 = pingServer2.Send("172.16.102.4");
if (pingresultFrmServer2.Status.ToString() == "Success")
{
try
{
Process proc = null;
string batDir = System.Configuration.ConfigurationManager.AppSettings["block2"];
string executebatDir = System.Configuration.ConfigurationManager.AppSettings["executeblock"];
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(batDir);
ftpRequest.Credentials = new NetworkCredential("subhankar", "subhankar");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
List<string> directories = new List<string>();
string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = streamReader.ReadLine();
}
streamReader.Close();
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential("subhankar", "subhankar");
for (int i = 0; i <= directories.Count - 1; i++)
{
if (directories[i].Contains("."))
{
string path = batDir + directories[i].ToString();
string trnsfrpth = executebatDir + directories[i].ToString();
ftpClient.DownloadFile(path, trnsfrpth);
}
}
proc = new Process();
string trnsfrexepth = executebatDir;
proc.StartInfo.WorkingDirectory = trnsfrexepth;
proc.StartInfo.FileName = "Hostblock.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
DirectoryInfo dir = new DirectoryInfo(trnsfrexepth);
foreach (FileInfo files in dir.GetFiles("*.bat"))
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
}
progressBar1.Visible = true;
bgw.RunWorkerAsync();
mode = 1;
}
}
catch (Exception exc)
{
}
finally
{
}
}
else
{
Ping pingServer3 = new Ping();
PingReply pingresultFrmServer3 = pingServer3.Send("172.16.102.4");
if (pingresultFrmServer3.Status.ToString() == "Success")
{
try
{
Process proc = null;
string batDir = System.Configuration.ConfigurationManager.AppSettings["block3"];
string executebatDir = System.Configuration.ConfigurationManager.AppSettings["executeblock"];
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(batDir);
ftpRequest.Credentials = new NetworkCredential("subhankar", "subhankar");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
List<string> directories = new List<string>();
string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = streamReader.ReadLine();
}
streamReader.Close();
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential("subhankar", "subhankar");
for (int i = 0; i <= directories.Count - 1; i++)
{
if (directories[i].Contains("."))
{
string path = batDir + directories[i].ToString();
string trnsfrpth = executebatDir + directories[i].ToString();
ftpClient.DownloadFile(path, trnsfrpth);
}
}
proc = new Process();
string trnsfrexepth = executebatDir;
proc.StartInfo.WorkingDirectory = trnsfrexepth;
proc.StartInfo.FileName = "Hostblock.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
DirectoryInfo dir = new DirectoryInfo(trnsfrexepth);
foreach (FileInfo files in dir.GetFiles("*.bat"))
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
}
progressBar1.Visible = true;
bgw.RunWorkerAsync();
mode = 1;
}
}
catch (Exception exc)
{
}
finally
{
}
}
}
}
}
catch (Exception exc)
{
MessageBox.Show(exc.ToString());
}
}
private void btnEnable_Click(object sender, EventArgs e)
{
try
{
Ping pingServer1 = new Ping();
PingReply pingresultFrmServer1 = pingServer1.Send("172.16.102.4");
if (pingresultFrmServer1.Status.ToString() == "Success")
{
try
{
Process proc = null;
string batDir = System.Configuration.ConfigurationManager.AppSettings["unblock1"];
string executebatDir = System.Configuration.ConfigurationManager.AppSettings["executeunblock"];
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(batDir);
ftpRequest.Credentials = new NetworkCredential("subhankar", "subhankar");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
List<string> directories = new List<string>();
string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = streamReader.ReadLine();
}
streamReader.Close();
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential("subhankar", "subhankar");
for (int i = 0; i <= directories.Count - 1; i++)
{
if (directories[i].Contains("."))
{
string path = batDir + directories[i].ToString();
string trnsfrpth = executebatDir + directories[i].ToString();
ftpClient.DownloadFile(path, trnsfrpth);
}
}
proc = new Process();
string trnsfrexepth = executebatDir;
proc.StartInfo.WorkingDirectory = trnsfrexepth;
proc.StartInfo.FileName = "Undohostblock.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
DirectoryInfo dir = new DirectoryInfo(trnsfrexepth);
foreach (FileInfo files in dir.GetFiles("*.bat"))
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
}
progressBar1.Visible = true;
bgw.DoWork += new DoWorkEventHandler(bgw_DoWork);
bgw.ProgressChanged += new ProgressChangedEventHandler(bgw_ProgressChanged);
bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);
bgw.WorkerReportsProgress = true;
bgw.RunWorkerAsync();
mode = 2;
}
}
catch(Exception exc)
{
}
finally
{
}
}
else
{
Ping pingServer2 = new Ping();
PingReply pingresultFrmServer2 = pingServer2.Send("172.16.102.4");
if (pingresultFrmServer2.Status.ToString() == "Success")
{
try
{
Process proc = null;
string batDir = System.Configuration.ConfigurationManager.AppSettings["unblock2"];
string executebatDir = System.Configuration.ConfigurationManager.AppSettings["executeunblock"];
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(batDir);
ftpRequest.Credentials = new NetworkCredential("subhankar", "subhankar");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
List<string> directories = new List<string>();
string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = streamReader.ReadLine();
}
streamReader.Close();
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential("subhankar", "subhankar");
for (int i = 0; i <= directories.Count - 1; i++)
{
if (directories[i].Contains("."))
{
string path = batDir + directories[i].ToString();
string trnsfrpth = executebatDir + directories[i].ToString();
ftpClient.DownloadFile(path, trnsfrpth);
}
}
proc = new Process();
string trnsfrexepth = executebatDir;
proc.StartInfo.WorkingDirectory = trnsfrexepth;
proc.StartInfo.FileName = "Undohostblock.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
DirectoryInfo dir = new DirectoryInfo(trnsfrexepth);
foreach (FileInfo files in dir.GetFiles("*.bat"))
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
}
progressBar1.Visible = true;
bgw.RunWorkerAsync();
mode = 2;
}
}
catch (Exception exc)
{
}
finally
{
}
}
else
{
Ping pingServer3 = new Ping();
PingReply pingresultFrmServer3 = pingServer3.Send("172.16.102.4");
if (pingresultFrmServer3.Status.ToString() == "Success")
{
try
{
Process proc = null;
string batDir = System.Configuration.ConfigurationManager.AppSettings["unblock3"];
string executebatDir = System.Configuration.ConfigurationManager.AppSettings["executeunblock"];
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(batDir);
ftpRequest.Credentials = new NetworkCredential("subhankar", "subhankar");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
List<string> directories = new List<string>();
string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = streamReader.ReadLine();
}
streamReader.Close();
using (WebClient ftpClient = new WebClient())
{
ftpClient.Credentials = new System.Net.NetworkCredential("subhankar", "subhankar");
for (int i = 0; i <= directories.Count - 1; i++)
{
if (directories[i].Contains("."))
{
string path = batDir + directories[i].ToString();
string trnsfrpth = executebatDir + directories[i].ToString();
ftpClient.DownloadFile(path, trnsfrpth);
}
}
proc = new Process();
string trnsfrexepth = executebatDir;
proc.StartInfo.WorkingDirectory = trnsfrexepth;
proc.StartInfo.FileName = "Undohostblock.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
DirectoryInfo dir = new DirectoryInfo(trnsfrexepth);
foreach (FileInfo files in dir.GetFiles("*.bat"))
{
files.Delete();
}
foreach (DirectoryInfo dirs in dir.GetDirectories())
{
}
progressBar1.Visible = true;
bgw.RunWorkerAsync();
mode = 2;
}
}
catch (Exception exc)
{
}
finally
{
}
}
else
{
}
}
}
}
catch (Exception exc)
{
MessageBox.Show(exc.ToString());
}
}
private void btnClose_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
this.Hide();
f.Close();
}
private void btnAdmin_Click(object sender, EventArgs e)
{
Form3 f = new Form3();
this.Hide();
f.Show();
}
}
}
after clicking enable button when clicking disable button then message box comes 2 times.it is increasing recursively.
|
|
|
|
|
Please edit your question and remove all the code not relevant to the problem, and show exactly where the problem occurs.
|
|
|
|
|
Yeah, nobody is going to dig through all that code. Reduce it down to just the necessary parts and someone might take a look at it.
|
|
|
|
|
More paragraphs! (i.e. "Methods").
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Hi,
you seem to create one BackgroundWorker and reuse it over and over. Be aware that each time you execute a line such as
bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);
you ADD a handler to the event, so the second time the event fires, it will execute the same handler twice.
As this also applies to your line
bgw.DoWork += new DoWorkEventHandler(bgw_DoWork);
I expect your BGW will duplicate its work and the number of results will behave quadratically.
There are several remedies:
1) you could remove the handlers with similar lines, say
bgw.RunWorkerCompleted -= new RunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);
2) you could create a new BackgroundWorker each time;
3) but why not stuff all the work inside the bgw_DoWork method, and run the BackgroundWorker only once?
modified 24-Mar-17 10:37am.
|
|
|
|
|
|
I am creating a Xamarin app and I have to populate master data into sqlite DB on mobile.
I am new to OOPS and Xamarin
I have multiple requests to be made to get data from WebApi. The request I need to make is more than 50 calls to get info.
Now, I need to write async generic code to achieve this.
For example: I have to populate data for EmployeeMaster, Company Master etc..
My generic code should be able to identify which URL to call and Which object has to be returned. My normal code is as follows below
The only varying data are RestUrl and TodoItem
public async Task<list<todoitem>> RefreshDataAsync ()
{
Items = new List<todoitem> ();
RestUrl = "http://localhost:9054/TotoItem"
var uri = new Uri (string.Format (RestUrl, string.Empty));
try {
var response = await client.GetAsync (uri);
if (response.IsSuccessStatusCode) {
var content = await response.Content.ReadAsStringAsync ();
Items = JsonConvert.DeserializeObject <list<todoitem>> (content);
}
} catch (Exception ex) {
Debug.WriteLine (@" ERROR {0}", ex.Message);
}
return Items;
}
|
|
|
|
|
Well, you're returning List<todoitem>, which is different from Task<list<todoitem>>.
It's also worth noting that your method, as written, will run synchronously despite your *Async() naming.
Convert the return type to List<todoitem> and rename your function and see what happens.
You likely also want to define variables in the method scope for Items and RestUrl. You also appear to have a typo in a string constant. Check the RestUrl variable.
"There are three kinds of lies: lies, damned lies and statistics."
- Benjamin Disraeli
|
|
|
|