private async Task <(Data.DAL.Order, bool)> EnsureGetOrder(Guid userId) { var userIdStr = userId.ToString(); var order = await _dc.Orders .Where(x => x.UserId == userIdStr && x.TrackingState < 3) .OrderByDescending(x => x.DateCreated) .FirstOrDefaultAsync(); var created = false; if (order == null) { order = new Data.DAL.Order { Id = Guid.NewGuid(), UserId = userId.ToString(), State = 0, TrackingState = 0, DateCreated = DateTimeOffset.Now, }; await _dc.Orders.AddAsync(order); await _dc.SaveChangesAsync(); created = true; } return(order, created); }
private static Order ConvertFromDb(Data.DAL.Order order) { if (order == null) { return(null); } var rc = new Order { UserId = Guid.Parse(order.UserId), State = order.State, TrackingState = order.TrackingState, Notes = order.Notes, DateCreated = order.DateCreated, Address = order.Address, Id = order.Id, IsCrispy = order.IsCrispy, Phone = order.Phone, Size = order.Size, }; return(rc); }