public IHttpActionResult PutLead(int id, Lead lead) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != lead.Id) { return BadRequest(); } db.Entry(lead).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!LeadExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public IHttpActionResult PostLead(PostHelper lead) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var newlead = new Lead() { Title = lead.lead.JobTitle, Deadline = DateTime.Now.AddDays(7), DateAdded = DateTime.Now, Notes = lead.lead.Notes, Description = lead.lead.Description, //Resume = lead.lead.Resume, //CoverLetter = lead.lead.CoverLetter, Status = (Status)(Enum.Parse(typeof(Status), lead.lead.Status)) }; var existingCompany = db.Companies.Find(lead.lead.Company); if (existingCompany != null) { newlead.Company = existingCompany; } else { newlead.Company = new Company() { Id = lead.lead.Company, Name = lead.lead.CompanyName, Url = lead.lead.Url, Address1 = lead.lead.Address1, Address2 = lead.lead.Address2, City = lead.lead.City, State = lead.lead.State, Zipcode = lead.lead.Zipcode }; } var existingContact = db.Contacts.Find(lead.lead.Contact); if (existingContact != null) { if (existingContact.Company != existingCompany) { //BAD return BadRequest("Trying to assoicate contact with a different company"); } newlead.Contact = existingContact; } else { } db.Leads.Add(newlead); db.SaveChanges(); lead.lead.CompanyName = newlead.Company.Name; lead.lead.Company = newlead.Company.Id; if (newlead.Contact != null) { lead.lead.Contact = newlead.Contact.Id; lead.lead.ContactFirstName = newlead.Contact.FirstName; lead.lead.ContactLastName = newlead.Contact.LastName; } else { lead.lead.Contact = 0; lead.lead.ContactFirstName = ""; lead.lead.ContactLastName = ""; } return Ok(new { lead = lead.lead }); }