public CustmerViewModel GetCustomerModel(int id, string filter = null) { CustmerViewModel model = new CustmerViewModel(); var c = db.Customers.Find(id); if (c == null) { return null; } var customerDetails = (db.CustomerDetails .Where(cd => cd.CustomerID == id && (string.IsNullOrEmpty(filter) || cd.MetaColumn.MetaTable.Name == filter)) .Select(cd => cd)); model.Customer = new CustomerModel { ID = c.ID, City = c.City, Email = c.Email, FirstName = c.FirstName, LastName = c.LastName, PhoneNo = c.PhoneNo }; foreach (var d in customerDetails) { model.Detail.Add(new CustomerCustomData { FieldName = d.MetaColumn.Name, FieldValue = d.FieldValue, TableName = d.MetaColumn.MetaTable.Name, FieldID = d.MetaColumnID, TableID = d.MetaColumn.MetaTableID }); } return model; }
public IHttpActionResult PostCustomer(CustmerViewModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var c = model.Customer; Customer customer = new Customer { FirstName = c.FirstName, LastName = c.LastName, Email = c.Email, PhoneNo = c.PhoneNo, City = c.City, }; db.Customers.Add(customer); foreach (var detail in model.Detail) { CustomerDetail d = new CustomerDetail { Customer = customer, MetaColumnID = detail.FieldID, FieldValue = detail.FieldValue }; db.CustomerDetails.Add(d); } db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = model.Customer.ID }, model); }