This code will check the database for an order number. If none exist it creates one. If one does exist then it will increment it by one and update the database. Is this the most efficient way to handle this?
// Order Number check
let updateOrderNumber bizLocId =
// order number record exist
let numExist =
query{
for row in tool.db.Order_Order_OrderNumber do
where(row.BusinessLocationId = bizLocId)
count
}
// retrieve number
if numExist < 1 then
let firstOrder =
dbSchema.ServiceTypes.Order_Order_OrderNumber(
BusinessLocationId = bizLocId,
OrderNumber = 1
)
// save to db
tool.insertRowIn tool.db.Order_Order_OrderNumber firstOrder
tool.saveToDb ()
1
else
let numRecord =
query{
for row in tool.db.Order_Order_OrderNumber do
where(row.BusinessLocationId = bizLocId)
select row
exactlyOneOrDefault
}
// update order number in db
let newOrderNumber =
numRecord.OrderNumber + 1
numRecord.OrderNumber <- newOrderNumber
tool.saveToDb ()
newOrderNumber