Ejemplo n.º 1
0
 public bool Add(OrderModifyModel entity)
 {
     using (var repository = _sourceFactory.CreateRepository <Order, int>())
     {
         return(repository.Add(new Order
         {
             OrderDate = entity.OrderDate,
             OrderNumber = entity.OrderNumber,
             OrderAmount = entity.OrderAmount,
             OrderTypeId = entity.OrderTypeId,
             UserId = entity.UserId
         }));
     };
 }
Ejemplo n.º 2
0
        private OrderModifyModel CreateOrderForUser(int user_id, Cart cart)
        {
            OrderModifyModel newOrder = new OrderModifyModel
                                            (DateTime.Now.Date,
                                            GenerateOrderNumber(DateTime.Now.Date),
                                            user_id
                                            , 1, cart.Lines.Sum(s => s.Quantity * s.Product.Price));

            newOrder.OrderDetail = cart.Lines.Select(line => new OrderDetailModifyModel(
                                                         line.Product.Id,
                                                         line.Quantity,
                                                         line.Product.Price,
                                                         line.Quantity * line.Product.Price)).ToList();

            return(newOrder);
        }
Ejemplo n.º 3
0
        public ViewResult Checkout(Cart cart, UserViewModel user)
        {
            UserViewModel    addOrChangeUser = null;
            OrderModifyModel newOrder        = null;

            if (HttpContext.User.Identity.IsAuthenticated)
            {
                addOrChangeUser = _userViewService.ViewAll().FirstOrDefault(c => c.UserEmail == HttpContext.User.Identity.Name);
                newOrder        = CreateOrderForUser(addOrChangeUser.Id, cart);
            }
            else
            {
                if (ModelState.IsValid)
                {
                    // check if user exist
                    addOrChangeUser = _userViewService.ViewAll().FirstOrDefault(c => c.UserEmail == user.UserEmail);
                    if (addOrChangeUser != null)
                    {
                        //if user found update adress
                        _userModifyService.Update
                            (addOrChangeUser.Id,
                            new UserModifyModel(user.UserEmail, user.UserPassword, user.UserName, user.UserCountry, user.UserAddress, user.UserRoleId)
                            );
                    }
                    else
                    {
                        // if user not exist add new user
                        user.UserRoleId = 3;
                        _userModifyService.Add(new UserModifyModel(user.UserEmail, user.UserPassword, user.UserName, user.UserCountry, user.UserAddress, user.UserRoleId));
                        addOrChangeUser = _userViewService.ViewAll().FirstOrDefault(c => c.UserEmail == user.UserEmail);
                    }
                    newOrder = CreateOrderForUser(addOrChangeUser.Id, cart);
                }
            }
            if (HttpContext.User.Identity.IsAuthenticated || ModelState.IsValid)
            {
                _orderModifyService.Add(newOrder);
                //addOrChangeUser
                newOrder.User = new UserModifyModel(addOrChangeUser.UserEmail, addOrChangeUser.UserPassword, addOrChangeUser.UserName, addOrChangeUser.UserCountry, addOrChangeUser.UserAddress, addOrChangeUser.UserRoleId) ?? new UserModifyModel();
                cart.Clear();
            }


            return(View(newOrder));
        }
Ejemplo n.º 4
0
        public bool Update(int id, OrderModifyModel entity)
        {
            using (var repository = _sourceFactory.CreateRepository <Order, int>())
            {
                var order = repository.GetSingle(id);
                if (order == null)
                {
                    throw new NotFoundException();
                }

                order.OrderDate   = entity.OrderDate;
                order.OrderNumber = entity.OrderNumber;
                order.OrderAmount = entity.OrderAmount;
                order.OrderTypeId = entity.OrderTypeId;
                order.UserId      = entity.UserId;

                return(repository.Update(order));
            }
        }