// POST api/<controller> public HttpResponseMessage PostCustomer([FromBody] Customer customer) { var opStatus = new OperationStatus(); try { _Context.Customers.Add(customer); _Context.SaveChanges(); var response = Request.CreateResponse <Customer>(HttpStatusCode.Created, customer); string uri = Url.Link("DefaultApi", new { id = customer.Id }); response.Headers.Location = new Uri(uri); return(response); } catch (Exception exp) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, exp.Message)); } }
public static void EnsureSeedDataForContext(this CustomerManagerContext context) { if (context.Customers.Any()) { return; } var random = new Random((int)DateTime.Now.Ticks); var randomOrder = new Random((int)DateTime.Now.Ticks); var randomQuantity = new Random((int)DateTime.Now.Ticks); var sortedStates = states.OrderBy(s => s.Name); foreach (var state in sortedStates) { context.States.Add(state); // context.SaveChanges(); } //Generate customers and orders for (int i = 0; i < customerNames.Length; i++) { var nameGenderHost = SplitValue(customerNames[i]); var cityState = SplitValue(citiesStates[i]); var cust = new Customer { //Id = i + 1, FirstName = nameGenderHost[0], LastName = nameGenderHost[1], Email = String.Format("{0}.{1}@{2}", nameGenderHost[0], nameGenderHost[1], nameGenderHost[3]), Address = addresses[i], City = cityState[0], State = sortedStates.Where(state => state.Abbreviation == cityState[1]).SingleOrDefault(), Zip = zip + i, Gender = (Gender)Enum.Parse(typeof(Gender), nameGenderHost[2]) }; context.Customers.Add(cust); //context.SaveChanges(); //Generate customer orders var numToGrab = random.Next(orders.Count - 1); var custOrders = new List <Order>(); for (int j = 0; j < numToGrab; j++) { var orderPosition = randomOrder.Next(orders.Count - 1); custOrders.Add(orders[orderPosition]); } foreach (var order in custOrders) { var quantity = randomQuantity.Next(5); var multiplier = (quantity % 2 == 0) ? 1 : -1; var custOrder = order.Clone(); custOrder.Quantity = (quantity == 0) ? 1 : quantity; custOrder.Date = DateTime.Now.AddDays(randomQuantity.Next(30) * multiplier); custOrder.CustomerId = cust.Id; context.Orders.Add(custOrder); //context.SaveChanges(); } } context.SaveChanges(); }