示例#1
0
        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;
        }
示例#2
0
        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);
        }