public static Guid CreateLead(NameValueCollection formCollection) { string LeadId = formCollection.Get("leadid"); Entity lead = new Entity("lead", Guid.NewGuid()); Guid id = Guid.Empty; if (!string.IsNullOrEmpty(LeadId) && Guid.TryParse(LeadId, out id)) { lead = XrmCore.Retrieve("lead", id); } string Email = formCollection.Get("emailaddress1"); if (!string.IsNullOrEmpty(Email)) { EntityCollection contacts = XrmCore.RetrieveByAttribute("contact", "emailaddress1", Email); if (contacts.Entities.Count > 0) { Entity contact = contacts.Entities.OrderByDescending(x => x.GetAttributeValue <DateTime>("createdon")).First(); lead["contactid"] = contact.ToEntityReference(); if (contact.Contains("accountid")) { lead["accountid"] = contact.GetAttributeValue <EntityReference>("accountid"); } } } foreach (string key in formCollection.AllKeys.Except(new string[] { "leadid" })) { lead[key] = formCollection[key]; } if (id.Equals(Guid.Empty)) { id = XrmCore.CreateEntity(lead); } else { XrmCore.UpdateEntity(lead); id = lead.Id; } return(id); }