When I was creating my first cloud app that’s used Microsoft Azure for storage and computation purposes I came across a strange problem which wasn’t related to the Azure itself but was more related to the c# and the .net framework.
When I was writing the code I made a Class which had no parameter less construct. Objects of this class were then used in the program. Because this class was derived from Ienumerator I could actually user Foreach() on the objects of this class but to my surprise the code shown below was showing error at the highlighted line.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.WindowsAzure.StorageClient;
using Microsoft.WindowsAzure;
namespace WebRole1
{
public class mspDataServiceContext : TableServiceContext
{
public mspDataServiceContext(string baseAddress, StorageCredentials credentials)
: base(baseAddress, credentials)
{
}
static int c;
public IQueryable<msp> msps
{
get
{
return this.CreateQuery<msp>("msps");
}
}
static int Count()
{
return c;
}
public int AddMsp(msp m)
{
foreach (msp k in this.msps)
{
if (k.UserId == m.UserId)
return 0;
}
//for (int i = 0; i <mspDataServiceContext.Count(); i++)
//{
// if (m.UserId == msps.ElementAt(i).UserId)
// return 0;
//}
this.AddObject("msps", m);
this.SaveChanges();
c++;
return 1;//indicatiing successful addition
}
public int DeleteMsp(string UserId)
{
foreach (msp k in msps)
{
if (k.UserId == UserId)
{
this.DeleteObject(k);
this.SaveChanges();
c--;
return 1;//indicating sucessful deletion
}
}
return 0;//indicating missing entry
}
public int updateMspLocation(string UserId, double lat, double lon)
{
msp m = null;
foreach (msp k in msps)
{
if (k.UserId == UserId)
{
m = k;
this.DeleteObject(k);
this.SaveChanges();
break;
}
else return 0;
}
m.lat = lat;
m.lon = lon;
this.AddMsp(m);
this.SaveChanges();
return 1;//indicating successful updation
}
public void DeleteAll()
{
foreach (msp m in this.msps)
{
this.DeleteObject(m);
}
The error was later rectified by adding a parameter less construct in the class because the foreach() command was making a msp k in every step and there was no parameterless construct so the compiler wasn’t allowing it to be made.
link to the full project is given below
When I was writing the code I made a Class which had no parameter less construct. Objects of this class were then used in the program. Because this class was derived from Ienumerator I could actually user Foreach() on the objects of this class but to my surprise the code shown below was showing error at the highlighted line.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.WindowsAzure.StorageClient;
using Microsoft.WindowsAzure;
namespace WebRole1
{
public class mspDataServiceContext : TableServiceContext
{
public mspDataServiceContext(string baseAddress, StorageCredentials credentials)
: base(baseAddress, credentials)
{
}
static int c;
public IQueryable<msp> msps
{
get
{
return this.CreateQuery<msp>("msps");
}
}
static int Count()
{
return c;
}
public int AddMsp(msp m)
{
foreach (msp k in this.msps)
{
if (k.UserId == m.UserId)
return 0;
}
//for (int i = 0; i <mspDataServiceContext.Count(); i++)
//{
// if (m.UserId == msps.ElementAt(i).UserId)
// return 0;
//}
this.AddObject("msps", m);
this.SaveChanges();
c++;
return 1;//indicatiing successful addition
}
public int DeleteMsp(string UserId)
{
foreach (msp k in msps)
{
if (k.UserId == UserId)
{
this.DeleteObject(k);
this.SaveChanges();
c--;
return 1;//indicating sucessful deletion
}
}
return 0;//indicating missing entry
}
public int updateMspLocation(string UserId, double lat, double lon)
{
msp m = null;
foreach (msp k in msps)
{
if (k.UserId == UserId)
{
m = k;
this.DeleteObject(k);
this.SaveChanges();
break;
}
else return 0;
}
m.lat = lat;
m.lon = lon;
this.AddMsp(m);
this.SaveChanges();
return 1;//indicating successful updation
}
public void DeleteAll()
{
foreach (msp m in this.msps)
{
this.DeleteObject(m);
}
The error was later rectified by adding a parameter less construct in the class because the foreach() command was making a msp k in every step and there was no parameterless construct so the compiler wasn’t allowing it to be made.
link to the full project is given below
gud yar parv....
ReplyDeletekeep posting in the blog...
and carry on the gud work..!!!
gr8 going yr
ReplyDeletethis is request that pls post some articles to how to start learning azure
@samarth thankx
ReplyDeleteand ya i will surely post things on how to start learning azure
I would be waiting sir...
ReplyDeleteparv yar ultimate work
ReplyDelete