0

I have a service where i am trying to add new users. If the user already exsists it should not add but i am getting an error."Object reference set to instance an object"

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string AddUsers(UsersJSON UserJSON)
    {
        using (var context = new Data.DataEntities())
        {
            var users = context.Users.Where(c => c.UserId == UserJson.UserId).FirstOrDefault();
            var newuser = new Users();
            {
                if (users.UserId != UserJson.UserId)//error here
                {
                    newuser.UserId = UserJson.UserId;
                    newuser.FirstName = UserJson.FirstName;
                    newuser.LastName = UserJson.LastName;

                }
            }
            context.Users.Add(newuser);
            context.SaveChanges();
            JavaScriptSerializer JSON = new JavaScriptSerializer();
            return JSON.Serialize(newuser);
        }
    }
vana
  • 13
  • 1
  • 6

1 Answers1

0

You are using .FirstOrDefault which can possibly return null. So you need to guard against that.

var users = context.Erp_Users.Where(c => c.UserId == erpUserJson.UserId).FirstOrDefault();
var newuser = new Erp_Users();
{
    if (users != null && users.UserId != erpUserJson.UserId)//no error here
    {
        ...
danludwig
  • 45,241
  • 21
  • 150
  • 230