Example #1
0
        public async Task <ApiResponse <Order> > CreateOrder(string userId, string restaurantOwnerId, OrderPostRequest req, double total)
        {
            List <StatusHistoryItem> statusHistoryItems = new List <StatusHistoryItem>();

            statusHistoryItems.Add(new StatusHistoryItem
            {
                Status = OrderStatuses.PLACED,
                Date   = Utils.GetDateEpoch()
            });
            Order order = new Order
            {
                UserId            = userId,
                RestaurantOwnerId = restaurantOwnerId,
                Date         = Utils.GetDateEpoch(),
                Items        = req.Items,
                RestaurantId = req.RestaurantId,
                Status       = new OrderStatus
                {
                    CurrentStatus = OrderStatuses.PLACED,
                    StatusHistory = statusHistoryItems
                },
                TotalPrice = total
            };
            string ser = JsonConvert.SerializeObject(order, Formatting.Indented, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });
            var jsonObject = Utils.Deserialize(ser);

            try
            {
                var queryResult = await _firebaseService.GetFirestoreDb().Collection(TableNames.ORDERS).AddAsync(jsonObject);

                var key = queryResult.Id;
                order.OrderId = key;
                return(new ApiResponse <Order>
                {
                    Success = true,
                    Data = order
                });
            } catch
            {
                return(new ApiResponse <Order>
                {
                    Success = false,
                    ErrorCode = ErrorCodes.UNKNOWN_ERROR
                });
            }
        }
Example #2
0
        public async Task <ApiResponse <Restaurant> > CreateRestaurantAsync(string userId, RestaurantPostRequest res)
        {
            Restaurant r = new Restaurant
            {
                OwnerId     = userId,
                Name        = res.Name,
                Description = res.Description
            };
            var firebase = _firebaseService.GetFirestoreDb();

            try
            {
                var queryResult = await firebase.Collection(TableNames.RESTAURANTS).AddAsync(r);

                r.Id = queryResult.Id;
                return(new ApiResponse <Restaurant>
                {
                    Success = true,
                    Data = r
                });
            }
            catch
            {
                return(new ApiResponse <Restaurant>
                {
                    Success = false,
                    ErrorCode = ErrorCodes.UNKNOWN_ERROR
                });
            }
        }