public static async Task <Customer> InsertCustomer(CustomerOrderDataModel cdm) { if (cdm != null) { Customer c = new Customer(); c.CustomerId = Guid.NewGuid(); c.Email = cdm.measurements.email; c.MeasurementsId = Guid.NewGuid(); //insert customer using (var conn = Business.Database.Connection) { var newCustomer = await conn.QueryAsync <Customer>("CustomerOrderInsert", new { c.CustomerId, c.Email, c.MeasurementsId }, commandType : CommandType.StoredProcedure); if (newCustomer.Count() > 0) { return(newCustomer.AsList()[0]); } return(null); } } return(null); }
public static async Task <Measurements> InsertMeasurments(CustomerOrderDataModel cdm, Guid measurementsId) { if (cdm != null) { Measurements m = new Measurements(); m.MeasurementsId = measurementsId; m.bust = cdm.measurements.bust; m.waist = cdm.measurements.waist; m.hips = cdm.measurements.hips; m.neck = cdm.measurements.neck; m.shoulder = cdm.measurements.shoulder; m.backWidth = cdm.measurements.backWidth; m.frontLength = cdm.measurements.frontLength; m.backLength = cdm.measurements.backLength; m.crotch = cdm.measurements.crotch; m.inseam = cdm.measurements.inseam; m.outseam = cdm.measurements.outseam; m.thigh = cdm.measurements.thigh; m.knee = cdm.measurements.knee; m.leg = cdm.measurements.leg; //insert measurements using (var conn = Business.Database.Connection) { var newMeasurements = await conn.QueryAsync <Measurements>("MeasurementsInsert", new { m.MeasurementsId, m.bust, m.waist, m.hips, m.neck, m.shoulder, m.backWidth, m.frontLength, m.backLength, m.crotch, m.inseam, m.outseam, m.thigh, m.knee, m.leg }, commandType : CommandType.StoredProcedure); if (newMeasurements.Count() > 0) { return(newMeasurements.AsList()[0]); } return(null); } } return(null); }
public static async Task <Measurements> UpsertMeasurements(Measurements m) { Measurements measurements = await UpdateMeasurements(m); if (measurements == null) { CustomerOrderDataModel cdm = new CustomerOrderDataModel(); cdm.measurements = m; Guid measurementsId = Guid.NewGuid(); measurements = await InsertMeasurments(cdm, measurementsId, m.UserId); } return(measurements); }
public async Task <IActionResult> CreateOrder([FromBody] CustomerOrderDataModel customerDataModel) { try { CustomerOrderDataModel newCODM = new CustomerOrderDataModel(); if (customerDataModel != null) { var customer = await CustomerHandler.InsertCustomer(customerDataModel); if (customer == null) { return(StatusCode(505, "An unexpected error has ocurred, unable to create Customer")); } var measurements = await MeasurementsHandler.InsertMeasurments(customerDataModel, customer.MeasurementsId); if (measurements == null) { return(StatusCode(505, "An unexpected error has ocurred, unable to create Customer measurements")); } else { newCODM.measurements = measurements; } var order = await CustomerHandler.InsertCustomerOrder(customerDataModel, customer.CustomerId); if (measurements == null) { return(StatusCode(505, "An unexpected error has ocurred, unable to complete order")); } else { newCODM.orderItems = order; } return(Ok(newCODM)); } return(StatusCode(404)); } catch (Exception ex) { Logger.LogError(ex.ToString()); return(StatusCode(505, ex.Message)); } }
public static async Task <CustomerAddress> InsertAddress(CustomerOrderDataModel codm) { CustomerAddress a = new CustomerAddress(); a.Address1 = codm.shippingAddress.Address1; a.Address2 = codm.shippingAddress.Address2; a.City = codm.shippingAddress.City; a.Country = codm.shippingAddress.Country; a.PhoneNumber = codm.shippingAddress.PhoneNumber; a.FirstName = codm.shippingAddress.FirstName; a.LastName = codm.shippingAddress.LastName; a.Zipcode = codm.shippingAddress.Zipcode; a.Province = codm.shippingAddress.Province; a.customerAddressId = Guid.NewGuid(); a.CreatedOn = DateTime.UtcNow; a.UpdatedOn = DateTime.UtcNow; a.userId = codm.userId; using (var conn = Database.Connection) { var newAddress = await conn.QueryAsync <CustomerAddress>("CustomerAddressInsert", new { a.customerAddressId, a.userId, a.FirstName, a.LastName, a.PhoneNumber, a.Address1, a.Address2, a.City, a.Province, a.Country, a.Zipcode, a.UpdatedOn, a.CreatedOn }, commandType : CommandType.StoredProcedure); if (newAddress.Count() > 0) { return(newAddress.AsList()[0]); } return(null); } }
public static async Task <List <OrderItem> > InsertCustomerOrder(CustomerOrderDataModel cdm, Guid customerId) { if (cdm != null) { CustomerOrderDataModel codm = new CustomerOrderDataModel(); List <OrderItem> items = new List <OrderItem>(); items = cdm.orderItems; Customer c = new Customer(); List <OrderItem> returnedItems = new List <OrderItem>(); //insert customer using (var conn = Business.Database.Connection) { foreach (var item in items) { item.CustomerId = customerId; item.OrderItemId = Guid.NewGuid(); var newOrder = await conn.QueryAsync <OrderItem>("NewOrderInsert", new { item.OrderItemId, item.CustomerId, item.count, item.description, item.StripePriceID, item.StripeID, item.Title }, commandType : CommandType.StoredProcedure); returnedItems.Add(item); } if (returnedItems.Count() > 0) { return(returnedItems); } return(null); } } return(null); }
public static async Task <Customer> InsertCustomer(CustomerOrderDataModel cdm) { if (cdm != null) { Customer c = new Customer(); c.CustomerId = Guid.NewGuid(); c.UserId = Guid.NewGuid(); c.Email = cdm.measurements.email; c.MeasurementsId = Guid.NewGuid(); c.CreatedOn = DateTime.UtcNow; c.UpdatedOn = DateTime.UtcNow; //insert customer using (var conn = Business.Database.Connection) { var newCustomer = await conn.QueryAsync <Customer>("CustomerOrderInsert", new { c.CustomerId, c.Email, c.MeasurementsId, c.FirstName, c.LastName, c.Gender, c.TimeZoneId, c.UserId, c.IsMember, c.CreatedOn, c.UpdatedOn }, commandType : CommandType.StoredProcedure); if (newCustomer.Count() > 0) { return(newCustomer.AsList()[0]); } return(null); } } return(null); }
public static async Task <Measurements> InsertMeasurments(CustomerOrderDataModel cdm, Guid measurementsId, Guid userId) { if (cdm != null) { Measurements m = new Measurements(); m.MeasurementsId = measurementsId; m.bust = cdm.measurements.bust; m.waist = cdm.measurements.waist; m.hip = cdm.measurements.hip; m.centerLength = cdm.measurements.centerLength; m.fullLength = cdm.measurements.fullLength; m.shoulderSlope = cdm.measurements.shoulderSlope; m.strap = cdm.measurements.strap; m.bustDepth = cdm.measurements.bustDepth; m.bustSpan = cdm.measurements.bustSpan; m.sideLength = cdm.measurements.sideLength; m.backNeck = cdm.measurements.backNeck; m.shoulderLength = cdm.measurements.shoulderLength; m.acrossShoulder = cdm.measurements.acrossShoulder; m.acrossChest = cdm.measurements.acrossChest; m.acrossBack = cdm.measurements.acrossBack; m.bustArc = cdm.measurements.bustArc; m.backArc = cdm.measurements.backArc; m.waistArc = cdm.measurements.waistArc; m.dartPlacement = cdm.measurements.dartPlacement; m.abdomenArc = cdm.measurements.abdomenArc; m.hipArc = cdm.measurements.hipArc; m.crotchDepth = cdm.measurements.crotchDepth; m.hipDepth = cdm.measurements.hipDepth; m.sideHipDepth = cdm.measurements.sideHipDepth; m.waistToAnkle = cdm.measurements.waistToAnkle; m.crotchLength = cdm.measurements.crotchLength; m.upperThigh = cdm.measurements.upperThigh; m.knee = cdm.measurements.knee; m.calf = cdm.measurements.calf; m.ankle = cdm.measurements.ankle; m.overarmLength = cdm.measurements.overarmLength; m.underarmLength = cdm.measurements.underarmLength; m.toElbow = cdm.measurements.toElbow; m.bicep = cdm.measurements.bicep; m.elbow = cdm.measurements.elbow; m.wrist = cdm.measurements.wrist; m.aroundHand = cdm.measurements.aroundHand; m.UserId = userId; //insert measurements using (var conn = Business.Database.Connection) { var newMeasurements = await conn.QueryAsync <Measurements>("MeasurementsInsert", new { m.MeasurementsId, m.UserId, m.bust, m.waist, m.hip, m.centerLength, m.fullLength, m.shoulderSlope, m.strap, m.bustDepth, m.bustSpan, m.sideLength, m.backNeck, m.shoulderLength, m.acrossShoulder, m.acrossChest, m.acrossBack, m.bustArc, m.backArc, m.waistArc, m.dartPlacement, m.abdomenArc, m.hipArc, m.crotchDepth, m.hipDepth, m.sideHipDepth, m.waistToAnkle, m.crotchLength, m.upperThigh, m.knee, m.calf, m.ankle, m.overarmLength, m.underarmLength, m.toElbow, m.bicep, m.elbow, m.wrist, m.aroundHand }, commandType : CommandType.StoredProcedure); if (newMeasurements.Count() > 0) { return(newMeasurements.AsList()[0]); } return(null); } } return(null); }
public async Task <IActionResult> CreateOrder([FromBody] CustomerOrderDataModel customerDataModel) { try { CustomerOrderDataModel newCODM = new CustomerOrderDataModel(); if (customerDataModel != null) { if (customerDataModel.isNewCustomer) { var customer = await CustomerHandler.InsertCustomer(customerDataModel); if (customer == null) { return(StatusCode(505, "An unexpected error has ocurred, unable to create Customer")); } customerDataModel.userId = customer.UserId; newCODM.userId = customer.UserId; customerDataModel.measurements.UserId = customer.UserId; Measurements measurements = await MeasurementsHandler.UpdateMeasurements(customerDataModel.measurements); if (measurements == null) { measurements = await MeasurementsHandler.InsertMeasurments(customerDataModel, customer.MeasurementsId, customerDataModel.measurements.UserId); if (measurements == null) { return(StatusCode(505, "An unexpected error has ocurred, unable to create Customer measurements")); } } else { newCODM.measurements = measurements; } } if (customerDataModel.isGuest) { customerDataModel.order.isMemberCheckout = false; } if (customerDataModel.isExistingCustomer) { customerDataModel.order.isMemberCheckout = true; } var address = await AddressHandler.InsertAddress(customerDataModel); if (address == null) { return(StatusCode(505, "An unexpected error has ocurred, unable to insert address")); } newCODM.shippingAddress = address; customerDataModel.shippingAddress = address; var order = await CustomerHandler.InsertCustomerOrder(customerDataModel); if (order == null) { return(StatusCode(505, "An unexpected error has ocurred, unable to complete order")); } else { newCODM.order = order; } return(Ok(newCODM)); } return(StatusCode(404)); } catch (Exception ex) { Logger.LogError(ex.ToString()); return(StatusCode(505, ex.Message)); } }
public static async Task <Order> InsertCustomerOrder(CustomerOrderDataModel cdm) { if (cdm != null) { CustomerOrderDataModel codm = new CustomerOrderDataModel(); List <OrderItem> items = new List <OrderItem>(); Order order = new Order(); order.OrderId = Guid.NewGuid(); order.OrderNumber = "TestOrder-" + order.OrderId; if (cdm.userId != null) { order.CustomerId = cdm.userId; } DateTime temp = DateTime.UtcNow; order.CreatedOn = temp; order.UpdatedOn = temp; items = cdm.orderItems; //insert order using (var conn = Business.Database.Connection) { foreach (OrderItem item in items) { item.OrderItemId = Guid.NewGuid(); item.OrderId = order.OrderId; item.ProductVariantId = item.ProductVariantId; item.CreatedOn = DateTime.UtcNow; item.UpdatedOn = DateTime.UtcNow; var newOrderItem = await conn.QueryAsync <OrderItem>("OrderItemInsert", new { item.OrderItemId, item.StripePriceID, item.OrderId, item.ProductVariantId, item.PrepaidAlterations, item.PurchasedInsurance, item.QuantityOrdered, item.UnitPrice, item.UnitPriceInclTax, item.TaxRate, item.ProductTitle, item.ProductDescription, item.CreatedOn, item.UpdatedOn }, commandType : CommandType.StoredProcedure); } order.OrderItems = items; order.OrderStatus = "OrderReceived"; var newOrder = await conn.QueryAsync <CustomerOrder>("OrderInsert", new { order.OrderId, order.email, order.OrderNumber, order.CustomerId, order.CreatedOn, order.UpdatedOn, order.TransactionId, order.BillingAddressId, order.ShippingAddressId, }, commandType : CommandType.StoredProcedure); if (newOrder.Count() > 0) { return(order); } return(null); } } return(null); }