Пример #1
0
        public async Task <IHttpActionResult> AddNewOrder(NewOrderViewModel order)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(new ResponseModel <string>(ResponseStatus.BadRequest, null, "Invalid order data.")));
            }
            var user = GetUserInformationFromToken();

            if (user == null || string.IsNullOrEmpty(user.UserId))
            {
                return(BadRequest("Invalid User."));
            }
            var zone = await _locationService.GetZoneFromAddress(order.Lat, order.Lon, order.Address);

            if (string.IsNullOrWhiteSpace(zone))
            {
                return(Ok(new ResponseModel <string>(ResponseStatus.BadRequest, "Sorry, we are not available in this area.", "Sorry, we are not available in this area.")));
            }
            order.Zone = zone;
            var response = await _orderBusiness.AddNewOrder(order, user);

            if (!response)
            {
                return(Ok(new ResponseModel <string>(ResponseStatus.BadRequest, null, "Order was not processed successfully.")));
            }
            return(Ok(new ResponseModel <string>(ResponseStatus.Ok, null, "Order placed successfully.")));
        }
Пример #2
0
        public ActionResult NewOrder(NewOrderViewModel viewModel)
        {
            try
            {
                var login = SessionHelper.GetElement <string>(SessionElement.Login);
                _unitOfWork.OrderRepository.Add(new WebDBApp.Models.Order
                {
                    User         = _unitOfWork.UserRepository.Find(login),
                    Date         = DateTime.Now,
                    Title        = viewModel.Title,
                    OrderDetails = new WebDBApp.Models.OrderDetails
                    {
                        Amount      = viewModel.Amount,
                        Description = viewModel.Description,
                    },
                    Building = _unitOfWork.BuildingRepository.Find(viewModel.SelectedBuilding),
                    Room     = _unitOfWork.RoomRepository.Find(viewModel.SelectedRoom)
                });

                _unitOfWork.SaveChanges();
            }
            catch (Exception ex)
            {
                logger.Error(ex, ex.Message);
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(PartialView("~/Views/PartialViews/Error.cshtml", ex.Message));
            }
            return(RedirectToAction("Index"));
        }
Пример #3
0
        public async Task <ActionResult> New_Order(int?id, string VIN = null)
        {
            if (id != null)
            {
                var context = await _repository.ClientCard.FirstOrDefaultAsync(m => m.ClientId == id);

                var model = new NewOrderViewModel
                {
                    ClientCard = context
                };
                if (context == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.CarId = new SelectList(_repository.RelatedCars, "CarId", "Make");
                return(View(model));
            }
            if (VIN != null)
            {
                var car = await _repository.RelatedCars.FirstOrDefaultAsync(m => m.VIN == VIN);

                ViewBag.CarId = new SelectList(_repository.RelatedCars, "CarId", "Make", car.CarId);
                return(View());
            }
            ViewBag.CarId = new SelectList(_repository.RelatedCars, "CarId", "Make");

            return(View());
        }
Пример #4
0
        async void SelectRecord()
        {
            var newOrderViewModel = NewOrderViewModel.GetInstance();

            newOrderViewModel.Part = this;
            await navigationService.Back();
        }
Пример #5
0
        public IActionResult NewOrder()
        {
            NewOrderViewModel model = new NewOrderViewModel();

            model.OrderDetailsList = GetItemOrderDetails();

            model.Countries = _unitOfWork.Repository <Country>().GetAll().Select(c => new SelectListItem
            {
                Text  = c.Name,
                Value = c.Id.ToString()
            }).OrderBy(x => x.Text).ToList();

            model.Countries.Add(new SelectListItem {
                Text = "--Select--", Value = "0", Selected = true
            });
            model.Cities         = new List <SelectListItem>();
            model.Locations      = new List <SelectListItem>();
            model.PaymentMethods = _unitOfWork.Repository <PaymentMethod>().GetAll().Select(p => new SelectListItem
            {
                Text  = p.Name,
                Value = p.Id.ToString()
            }).OrderBy(s => s.Text).ToList();
            model.PaymentMethods.Add(new SelectListItem {
                Text = "--Select--", Value = "0", Selected = true
            });

            return(View(model));
        }
Пример #6
0
        public ActionResult Add()
        {
            var model = new NewOrderViewModel();

            model.AllDishes = _mapper.Map <List <DishModel> >(_dishService.GetAll());
            return(View(model));
        }
Пример #7
0
        public async Task <ActionResult> Create([Bind(Include = "SelectedCustomerID,PriorityHigh")] NewOrderViewModel order)
        {
            if (ModelState.IsValid)
            {
                if (Session["CurrentUserID"] == null)
                {
                    RedirectToAction("Login", "Home");
                }
                int CurrentUserID = (int)Session["CurrentUserID"];

                Order neworder = new Order
                {
                    UserID           = CurrentUserID,
                    customerID       = order.SelectedCustomerID,
                    Priority         = order.PriorityHigh ? 1 : 0,
                    order_createtime = DateTime.Now,
                };
                db.Orders.Add(neworder);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(order));
        }
Пример #8
0
        public async Task <IActionResult> SaveNewOrder(NewOrderViewModel model)
        {
            try
            {
                var client = await _dm.ClientAccessor.GetClient(model.ClientId);

                List <ProductViewModel> products = new List <ProductViewModel>();
                ProductEntity           entity   = null;
                int i        = 0;
                int totalSum = 0;
                foreach (var item in model.ProductViewModel)
                {
                    if (item.Amount != 0)
                    {
                        entity = await _dm.ProductAccessor.GetProduct(item.Id);

                        entity.Amount       -= item.Amount;
                        item.Price           = entity.Price ?? default(int);
                        item.CountryOfOrigin = entity.CountryOfOrigin;
                        item.ShelfLife       = entity.ShelfLife ?? default(int);
                        item.Name            = entity.Name;
                        entity = await _dm.ProductAccessor.SaveProduct(entity);
                    }
                    else
                    {
                        i++;
                    }
                }

                if (i == model.ProductViewModel.Count)
                {
                    return(View("Views/ViewRole/AccountantManager/AccountantManager.cshtml"));
                }
                List <ClientProductEntity> productEntityList = new List <ClientProductEntity>();
                for (int j = 0; j <= model.ProductViewModel.Count - 1; j++)
                {
                    if (model.ProductViewModel[j].Amount != 0)
                    {
                        productEntityList.Add((model.ProductViewModel[j]).ToClientProductEntity());
                        totalSum += model.ProductViewModel[j].Price * model.ProductViewModel[j].Amount;
                    }
                }

                OrderEntity orderEntity = new OrderEntity();
                orderEntity.ClientId          = model.ClientId;
                orderEntity.IsExecuted        = false;
                orderEntity.StartDate         = DateTime.Now;
                orderEntity.TotalSum          = totalSum;
                orderEntity.ClientProductList = productEntityList;
                orderEntity.Payment           = PaymentState.Unpaid;
                orderEntity = await _dm.OrderAccessor.SaveOrderWithList(orderEntity);


                return(View("Views/ViewRole/AccountantManager/AccountantManager.cshtml"));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Пример #9
0
        public async Task <ActionResult <string> > CreateOrder(int userId, NewOrderViewModel order)
        {
            AddOrderCommand newOrder = new AddOrderCommand(userId, order.Products, order.Payment, order.contactMail);

            var result = await memoryBus.Send(newOrder);

            return(Ok(result));
        }
Пример #10
0
        public ActionResult NewOrder()
        {
            var viewModel = new NewOrderViewModel();

            viewModel.SelectedBuilding = 0;
            viewModel.Buildings        = _unitOfWork.BuildingRepository.All();
            return(View(viewModel));
        }
        public NewReservation()
        {
            InitializeComponent();
            NewOrderViewModel vm = new NewOrderViewModel();

            vm.PropertyChanged += Vm_PropertyChanged;
            DataContext         = vm;
        }
        public NewOrderForm()
        {
            this.InitializeComponent();

            NewOrderViewModel = new NewOrderViewModel {
                InkCanvas = InkCanvas
            };
        }
Пример #13
0
 public Order(NewOrderViewModel model)
 {
     Comment     = model.Comment;
     DateBegin   = model.DateBegin;
     ClientId    = model.ClientId;
     PhoneNumber = model.PhoneNumber;
     Status      = Status.New;
 }
Пример #14
0
        /* New order */
        public IActionResult Index(int?movieID = null)
        {
            var model = new NewOrderViewModel(db, movieID);

            ViewData["Movies"] = new SelectList(model.MoviesList, "ID", "Title");
            ViewData["Dates"]  = new SelectList(model.DatesList, "Value", "Text");
            return(View(model));
        }
Пример #15
0
 public IActionResult NewOrder(NewOrderViewModel model)
 {
     if (ModelState.IsValid)
     {
         return(Ok());
     }
     return(BadRequest());
 }
Пример #16
0
        async void SelectRecord()
        {
            var newOrderViewModel = NewOrderViewModel.GetInstance();

            newOrderViewModel.Customer = this;
            newOrderViewModel.LoadPriceLists();
            await navigationService.Back();
        }
Пример #17
0
        public async Task <IActionResult> Create([Bind("DateOfDeadline, OrderName, OrderTask, FrilanserId, SpecializationRoleId")] NewOrderViewModel newOrder)
        {
            if (ModelState.IsValid)
            {
                Order order = new Order();
                order.DateOfDeadline         = newOrder.DateOfDeadline;
                order.OrderName              = newOrder.OrderName;
                order.OrderTask              = newOrder.OrderTask;
                newOrder.SpecializationRoles = _roleManager.Roles.ToList();

                if (newOrder.FrilanserId != "null")
                {
                    order.Frilanser = await _userManager.FindByIdAsync(newOrder.FrilanserId);

                    order.SpecializationRole = await _roleManager.FindByNameAsync("Universal (Specialization)");
                }
                else if (newOrder.SpecializationRoleId != null)
                {
                    order.SpecializationRole = await _roleManager.FindByIdAsync(newOrder.SpecializationRoleId);
                }
                else
                {
                    order.SpecializationRole = await _roleManager.FindByNameAsync("Universal (Specialization)");
                }

                try
                {
                    int newId = await _repository.CreateNewOrder(order, User);

                    string SpecializationRole = null;

                    if (order.SpecializationRole != null)
                    {
                        SpecializationRole = order.SpecializationRole.Name;
                    }
                    string frilanser = null;

                    if (order.Frilanser != null)
                    {
                        frilanser = order.Frilanser.UserName;
                    }
                    await _notifHubContext.Clients
                    .All
                    .SendAsync("NewOrderNorificationAssignedFrilanser", newId, frilanser, User.Identity.Name, order.OrderName, order.DateOfDeadline, SpecializationRole);

                    return(RedirectToAction(nameof(Index)));
                }
                catch
                {
                    return(View(order));
                }
            }
            else
            {
                return(View("Create"));
            }
        }
Пример #18
0
        public IActionResult NewOrder()
        {
            NewOrderViewModel viewModel = new NewOrderViewModel
            {
                Action = "NewOrder"
            };

            return(View("FormOrder", viewModel));
        }
        public bool ValidateOrder(NewOrderViewModel model)
        {
            #region VerifyProducts
            var Products = model.ProductCountList;
            foreach (var product in Products)
            {
                var product_ = _unitOfWork.Repository <Product>().Find(x => x.Id == Convert.ToInt32(product.Key));

                if (product_ == null)
                {
                    return(false);
                }

                var size  = model.ProductSizeList.Where(x => x.Key == product.Key).FirstOrDefault().Value;
                var color = model.ProductColorList.Where(x => x.Key == product.Key).FirstOrDefault().Value;
                var count = Convert.ToInt32(product.Value);

                var Stockproduct_ = _unitOfWork.Repository <ProductStock>().GetAllInclude(s => s.ProductSize, c => c.Colors).Where(x => x.ProductId == Convert.ToInt32(product.Key) && x.ProductSize.Size == size && x.Colors.Color == color).FirstOrDefault();
                var CountStock_   = Stockproduct_?.InQuantity - Stockproduct_?.MinQuantity;
                if (Stockproduct_ == null || CountStock_ <= count)
                {
                    return(false);
                }
            }
            #endregion

            #region VerifyCountry
            var contry = _unitOfWork.Repository <Country>().Find(x => x.Id == Convert.ToInt32(model.CountryId));

            if (contry == null)
            {
                return(false);
            }
            #endregion

            #region VerifyCard
            var PaymentMethod = _unitOfWork.Repository <PaymentMethod>().Find(x => x.Id == 1);
            if (PaymentMethod == null)
            {
                return(false);
            }
            if (PaymentMethod.Id == 1)
            {
                if (model.CardNumber.Replace(" ", "").Length != 16 || model.CVV.Length != 3)
                {
                    return(false);
                }
            }

            return(true);


            #endregion
        }
        public Order Add(string userId, NewOrderViewModel order)
        {
            var newOrder = new Order()
            {
                Name = order.Name, CustomerId = userId
            };

            _context.Order.Add(newOrder);
            _context.SaveChanges();
            return(newOrder);
        }
Пример #21
0
        public IActionResult Create([FromBody] NewOrderViewModel request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Parametros invalidos"));
            }

            request.Id = _repository.Save(request);

            return(CreatedAtAction(nameof(GetById), new { Id = request.Id }, request));
        }
Пример #22
0
        public IActionResult AddOrder(NewOrderViewModel model)
        {
            var order = _mapper.Map <Order>(model);

            order.Date            = DateTime.Now;
            order.CustomerUser    = _userService.GetCurrent().CustomerInfo;
            order.CustomerCompany = _userService.GetCurrent().CustomerInfo.Company;

            _orderRepository.Save(order);
            return(RedirectToAction("Profile", "Customer"));
        }
Пример #23
0
        public ActionResult New()
        {
            var ViewModel = new NewOrderViewModel
            {
                Store = _Context.Stores.First()
            };



            return(View("OrderForm", ViewModel));
        }
Пример #24
0
        public void CreateFailing()
        {
            var model      = new NewOrderViewModel();
            var controller = new OrderController(null);

            ValidateModel(model, controller);


            var result = (StatusCodeResult)controller.Create(model);

            Assert.Equal((int)HttpStatusCode.BadRequest, result.StatusCode);
        }
Пример #25
0
        public async Task <ActionResult <Order> > CreateOrder(NewOrderViewModel newOrderViewModel)
        {
            var customerEmail   = HttpContext.User.GetCustomerEmail();
            var shippingAddress = _mapper.Map <AddressViewModel, ShippingAddress>(newOrderViewModel.ShippingAddress);
            var order           = await _orderService.CreateOrderAsync(customerEmail, newOrderViewModel.DeliveryMethodId, newOrderViewModel.CartId, shippingAddress);

            if (order == null)
            {
                return(BadRequest(new APIResponse(StatusCodes.Status400BadRequest, "Problem while creating order")));
            }

            return(Ok(order));
        }
        public IActionResult Index([FromQuery] string search = "")
        {
            NewOrderViewModel val = new NewOrderViewModel
            {
                CustomerName   = client.FullName,
                LocationName   = locale.Name,
                AvailableItems = repo.GetItems(search).OrderBy(x => x.Name).ToList(),
                Purchased      = items,
                Counts         = counts
            };

            return(View(val));
        }
        private Models.PaymentData CreatePayment(NewOrderViewModel data)
        {
            var paymentModel = new Models.PaymentData
            {
                Amount        = data.TotalAmount,
                Date          = DateTime.Now,
                LastDigitCard = data.PaymentData.Card.Substring(data.PaymentData.Card.Length - 5, 4)
            };

            UnitOfWork.Set <Models.PaymentData>().Add(paymentModel);
            UnitOfWork.SaveChanges();
            return(paymentModel);
        }
Пример #28
0
        public async Task Send(Order order, string shopEmail, string shopPhoneNumber, string templatePath)
        {
            var conf = this.configuration.Value;

            var model = new NewOrderViewModel
            {
                Id                  = order.Id,
                PaymentMethod       = order.Payment,
                Email               = shopEmail,
                DeliveryMethod      = order.Delivery,
                CustomerName        = order.CustomerName,
                PhoneNumber         = shopPhoneNumber,
                Created             = order.Timestamp,
                Total               = order.OrderItems.Sum(x => x.Count * x.Price),
                CustomerPhoneNumber = order.PhoneNumber,
                CustomerAddress     = order.Address,
                Items               = order.OrderItems.Select(x => new NewOrderItemViewModel
                {
                    Name  = x.Product.Title,
                    Color = x.Color,
                    Size  = x.Size,
                    Id    = x.Product.Id,
                    Price = x.Price,
                    Count = x.Count
                }).ToList()
            };

            var letter = await engine.CompileRenderAsync(templatePath, model).ConfigureAwait(false);

            var emailMessage = new MimeMessage();

            emailMessage.From.Add(new MailboxAddress(conf.From.Name, conf.From.Address));
            emailMessage.To.Add(new MailboxAddress(order.CustomerName, order.Email));
            emailMessage.Subject = $"Оформлен новый заказ № {order.Id} на сайте Piligrim";
            emailMessage.Body    = new TextPart(MimeKit.Text.TextFormat.Html)
            {
                Text = letter
            };

            using (var client = new SmtpClient())
            {
                await client.ConnectAsync(conf.Smtp.Host, conf.Smtp.Port, conf.Smtp.UseSsl);

                await client.AuthenticateAsync(conf.Smtp.Login, conf.Smtp.Password);

                await client.SendAsync(emailMessage);

                await client.DisconnectAsync(true);
            }
        }
Пример #29
0
        public void NewOrder(NewOrderViewModel model)
        {
            var newOrder = new Order(model);

            using (MainContext context = new MainContext())
            {
                var driver = context.Clients.Where(x => x.Id == model.ClientId).FirstOrDefault();
                if (driver.Orders.Any(x => x.DateBegin == model.DateBegin && x.Status != Status.New && x.Status != Status.Approved))
                {
                    throw new Exception("This driver can`t take your order!");
                }
                context.Orders.Add(newOrder);
            }
        }
Пример #30
0
        public async Task <bool> AddNewOrder(NewOrderViewModel order, User orderedBy)
        {
            try
            {
                var totalOrder = await _orderRepository.GetOrderCount();

                var newServiceId = (totalOrder + 1).ToString().PadLeft(OrderServiceIdLength, '0');
                var newOrder     = new Order
                {
                    ServiceId        = newServiceId,
                    OrderBy          = orderedBy,
                    Address          = order.Address,
                    Lat              = order.Lat,
                    Lon              = order.Lon,
                    Zone             = order.Zone,
                    Promotion        = await GetPromoOffer(),
                    Status           = (int)OrderStatus.New,
                    OrderPlacingTime = Utilities.GetPresentDateTime(),
                    OrderItems       = new List <OrderItem>()
                };
                var addMessageResponse = await _userMessageBusiness.AddUserMessage(orderedBy.UserId, (int)MessageType.NewOrder, newServiceId);

                var addOrderResponse = await _orderRepository.AddNewOrder(newOrder);

                if (addMessageResponse == null && !addOrderResponse)
                {
                    return(false);
                }
                var notification = new Notification
                {
                    Type             = (int)NotificationType.AddNewOrder,
                    MessageId        = addMessageResponse,
                    Title            = Constants.NEW_ORDER_MESSAGE_TITLE,
                    Text             = string.Format(Constants.ACK_MESSAGE_TEXT, newServiceId),
                    SenderUserName   = orderedBy.Name,
                    SenderUserId     = orderedBy.UserId,
                    ReceiverUserName = orderedBy.Name,
                    ReceiverUserId   = orderedBy.UserId,
                    Status           = (int)NotificationStatus.NotSent,
                    NotificationId   = Guid.NewGuid().ToString()
                };
                var notificationAdd = await _notificationRepository.AddNotification(notification);

                return(notificationAdd);
            }
            catch (Exception ex)
            {
                throw new Exception("Error placing order." + ex);
            }
        }