コード例 #1
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));
        }
コード例 #2
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);
        }