Пример #1
0
        public AddOrderResponse AddOrder(AddOrderRequest request, int idCustomer)
        {
            if (String.IsNullOrEmpty(idCustomer.ToString()))
            {
                throw new Exception("you have to provide the id of a customer");
            }
            var customer = _context.Customer.FirstOrDefault(c => c.IdCustomer == idCustomer);

            if (customer == null)
            {
                throw new Exception("there is no such customer");
            }
            for (int i = 0; i < request.Confectionery.Count; i++)
            {
                var confect = _context.Confectionery.FirstOrDefault(c => c.Name.Equals(request.Confectionery.ElementAt(i).Name));
                if (confect == null)
                {
                    throw new Exception("there is no such confectionery");
                }
            }
            Random rand = new Random();

            var order = new Order()
            {
                //  IdOrder = _context.Order.Max(o=>o.IdOrder) +1,
                DateAccepted = request.DateAccepted,
                DateFinished = request.DateAccepted.AddDays(3),
                Notes        = request.Notes,
                IdCustomer   = idCustomer,
                IdEmployee   = rand.Next(1, 3)
            };

            for (int i = 0; i < request.Confectionery.Count; i++)
            {
                var confectionery_order = new Confectionery_Order()
                {
                    // IdOrder = _context.Order.Max(o => o.IdOrder) + 1,
                    IdConfectionery = _context.Confectionery.FirstOrDefault(c => c.Name.Equals(request.Confectionery.ElementAt(i).Name)).IdConfectionery,
                    Quantity        = request.Confectionery.ElementAt(i).Quantity,
                    Notes           = request.Confectionery.ElementAt(i).Notes
                };
                _context.Confectionery_Order.Add(confectionery_order);
            }
            _context.Order.Add(order);
            // _context.SaveChanges();
            var response = new AddOrderResponse()
            {
                Notes        = order.Notes,
                DateFinished = order.DateFinished,
                Surname      = customer.Surname,
                IdEmployee   = order.IdEmployee
            };

            return(response);
        }
Пример #2
0
        public IActionResult newOrder(int id, NewOrderRequest req)
        {
            var res = _dbcontext.Customer.Any(e => e.IdClient == id);

            if (res == true)
            {
                var result = _dbcontext.Confectionery.Where(x => req.Confectionery.Select(e => e.Name).Contains(x.Name)).Any();
                _dbcontext.Database.BeginTransaction();

                if (result == true)
                {
                    try
                    {
                        var newOrd = new Order
                        {
                            DateAccepted = req.DateAccepted,
                            DateFinished = req.DateAccepted.AddDays(7),
                            Notes        = req.Notes,
                            IdClient     = id,
                            IdEmployee   = 1
                        };
                        _dbcontext.Order.Add(newOrd);
                        _dbcontext.SaveChanges();
                        for (int i = 0; i < req.Confectionery.Count(); i++)
                        {
                            var add = new Confectionery_Order
                            {
                                IdConfectionery = _dbcontext.Confectionery.Where(e => e.Name == req.Confectionery.ElementAt(i).Name)
                                                  .Select(e => e.IdConfectionery).FirstOrDefault(),
                                IdOrder  = _dbcontext.Order.Max(e => e.IdOrder),
                                Quantity = Int32.Parse(req.Confectionery.ElementAt(i).Quantity),
                                Notes    = req.Confectionery.ElementAt(i).Notes
                            };
                            _dbcontext.Confectionery_Order.Add(add);
                            _dbcontext.SaveChanges();
                        }
                        _dbcontext.Database.CommitTransaction();
                        return(Ok("Added succesfully!"));
                    }
                    catch (Exception e)
                    {
                        _dbcontext.Database.RollbackTransaction();
                        return(BadRequest("there is a problem"));
                    }
                }
                else
                {
                    return(BadRequest("dont have this product"));
                }
            }
            else
            {
                return(NotFound("There is no client with id " + id));
            }
        }
Пример #3
0
        public OrdersResponse addOrder(int idCustomer, AddOrderRequest req)
        {
            if (!context.Customers.Any(c => c.IdCustomer == idCustomer))
            {
                return new OrdersResponse
                       {
                           orders = null,
                           Error  = "No customer with such id"
                       }
            }
            ;
            foreach (ConfectioneryDTO con in req.Confectionery)
            {
                if (!context.Confectioneries.Any(c => c.Name == con.Name))
                {
                    return new OrdersResponse
                           {
                               orders = null,
                               Error  = "no such confectionery as " + con.Name
                           }
                }
                ;
            }


            Order newOrder = new Order
            {
                DateAccepted = req.DateAccepted,
                DateFinished = DateTime.Now,
                Notes        = req.Notes,
                IdEmployee   = 1,
                IdCustomer   = idCustomer
            };

            context.Add <Order>(newOrder);
            context.SaveChanges();

            foreach (ConfectioneryDTO con in req.Confectionery)
            {
                Confectionery_Order newC_Order = new Confectionery_Order
                {
                    IdOrder         = context.Orders.Max(o => o.IdOrder),
                    IdConfectionery = context.Confectioneries.Where(c => c.Name == con.Name).First().IdConfectionery,
                    Quantity        = con.Quantity,
                    Notes           = con.Notes
                };
                context.Add <Confectionery_Order>(newC_Order);
                context.SaveChanges();
            }

            return(getOrders(null));
        }
    }
}
Пример #4
0
        public IActionResult addClient(String clientid)
        {
            ClientStructure enter = new ClientStructure

            {
                DateAccepted = DateTime.Parse("2020-06-01"),
                Notes        = "Please, prepare for next friday",

                Quantity = 1,
                Name     = "Cake for birthday",
                ConNotes = "Write Happy birthday on the cake"
            };

            var exc = _context.Customers.Find(clientid);

            if (exc is null)
            {
                return(NotFound(" this Client does not exist in the database"));
            }

            var od = new Order
            {
                DateAccepted = enter.DateAccepted,
                Notes        = enter.Notes,
            };

            var con_od = new Confectionery_Order
            {
                Quantity = enter.Quantity,
                Notes    = enter.ConNotes
            };

            var con = new Confectionery
            {
                Name = enter.Name
            };

            _context.Orders.Add(od);
            _context.Confectioneries.Add(con);
            _context.Confectionery_Orders.Add(con_od);

            _context.SaveChanges();

            return(Ok("Order for the client has been successfully added"));
        }
Пример #5
0
        public string PlaceOrder(int customerId, OrderRequest request)
        {
            if (_context.Customer.Any(e => e.IdClient == customerId))
            {
                if (_context.Confectionery.Any(e => request.Confectionery.Select(c => c.Name).Contains(e.Name)))
                {
                    _context.Database.BeginTransaction();
                    var IdOrder = _context.Order.Max(e => e.IdOrder) + 1;
                    var l       = _context.Employee.Select(e => e.IdEmployee).ToList();
                    var order   = new Order
                    {
                        IdOrder      = IdOrder,
                        DateAccepted = request.DateAccepted,
                        DateFinished = DateTime.Now.AddMonths(1),
                        Notes        = request.Notes,
                        IdClient     = customerId,
                        IdEmployee   = l[rnd.Next(l.Count)]
                    };
                    _context.Order.Add(order);
                    _context.SaveChanges();

                    foreach (var c in request.Confectionery)
                    {
                        var confectioneryId     = _context.Confectionery.First(e => e.Name == c.Name).IdConfectionery;
                        var confectionery_order = new Confectionery_Order()
                        {
                            IdConfectionary = confectioneryId,
                            IdOrder         = order.IdOrder,
                            quantity        = c.Quantity,
                            Notes           = c.Notes
                        };
                        _context.Confectionery_order.Add(confectionery_order);
                        _context.SaveChanges();
                    }
                    _context.Database.CommitTransaction();

                    return("Added order and confectionery successfuly");
                }
            }

            return("Didn't add");
        }
Пример #6
0
        public void AddOrder(int idCustomer, NewOrderInfo orderInfo)
        {
            int idConfectionery = _context.Confectionery.Where(c => c.Name == orderInfo.Confectionery.Name)
                                  .Select(c => c.IdConfectionery)
                                  .FirstOrDefault();

            if (idConfectionery == 0)
            {
                throw new ConfectioneryNameNotFoundException();
            }

            if (!_context.Customer.Any(e => e.IdCustomer == idCustomer))
            {
                throw new CustomerNotFoundException();
            }

            Random random = new Random();

            Order newOrder = new Order()
            {
                IdOrder      = _context.Order.Max(o => o.IdOrder) + 1,
                IdCustomer   = idCustomer,
                IdEmployee   = random.Next(1, _context.Employee.Max(e => e.IdEmployee)),
                DateAccepted = orderInfo.DateAccepted,
                DateFinished = orderInfo.DateAccepted,
                Notes        = orderInfo.Notes,
            };

            Confectionery_Order newConfectionery_Order = new Confectionery_Order()
            {
                IdOrder         = newOrder.IdOrder,
                IdConfectionery = idConfectionery,
                Quantity        = orderInfo.Confectionery.Quantity,
                Notes           = orderInfo.Confectionery.Notes
            };

            _context.Order.Add(newOrder);
            _context.Confectionery_Order.Add(newConfectionery_Order);
            _context.SaveChanges();
        }