partial void OnHandle(OrderDeleted @event)
        {
            Entities.OrderEntity entity = OrderRepository.Load(@event.Rsn);
            entity.IsLogicallyDeleted = true;

            OrderRepository.Update(entity);
        }
        public async Task <DeleteOrder> Response(MessageDirectory.Request.DeleteOrder request, MessageContext context)
        {
            DeleteOrder response = new DeleteOrder();

            using (OrderDataContext dataContext = new OrderDataContext())
            {
                var order = await dataContext.Orders.SingleOrDefaultAsync(p => p.Id == request.OrderId);

                if (order == null)
                {
                    Exception ex = new Exception("Delete Order : Does not exist");
                    ex.Data.Add("OrderId", request.OrderId);
                    throw ex;
                }

                OrderDeleted orderDeleted = new OrderDeleted()
                {
                    Id = order.Id
                };

                response.Id = order.Id;

                dataContext.Orders.Remove(order);
                dataContext.SaveChanges();

                await Bus.PublishAsync(orderDeleted);
            }

            return(response);
        }
Example #3
0
        private void DeleteOrder(Order order, ExecRestatementReason?reason = null)
        {
            order.RemainingQuantity = 0;
            order.Status            = OrderStatus.Deleted;

            Console.WriteLine($"order deleted from book: {order}");

            OrderDeleted?.Invoke(this, new OrderDeletedEventArgs(order, reason));
        }
Example #4
0
        public void DeleteOrder()
        {
            var orderCommand = new OrderDeleted()
            {
                OrderId = 39
            };

            var response = orderService.DeleteOrder(orderCommand);

            Assert.AreEqual(response.Type, Common.ServiceResponseTypes.Success);
        }
Example #5
0
        /// <summary>
        /// Удалить заказ
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> OrderDelete()
        {
            int number = 0;
            int id     = 0;

            try
            {
                number = Convert.ToInt32(base.OriginalMessage.Substring(ForceReplyOrderDelete.Length));

                using (MarketBotDbContext db = new MarketBotDbContext())
                {
                    Order = db.Orders.Where(o => o.Number == number).Include(o => o.OrderDeleted).Include(o => o.OrdersInWork).FirstOrDefault();

                    string text = base.ReplyToMessageText;
                    if (Order != null && Order.OrderDeleted != null && Order.OrderDeleted.Count == 0 &&
                        await Processing.CheckInWork(Order) && !await Processing.CheckIsDone(Order))
                    {
                        id = Order.Id;
                        OrderDeleted orderDeleted = new OrderDeleted
                        {
                            DateAdd    = DateTime.Now,
                            Deleted    = true,
                            FollowerId = FollowerId,
                            OrderId    = id,
                            Text       = text
                        };

                        db.OrderDeleted.Add(orderDeleted);
                        db.SaveChanges();
                    }
                }

                OrderAdminMsg = new AdminOrderMessage(id, FollowerId);
                var message = OrderAdminMsg.BuildMessage();
                await SendMessage(message);

                //Уведомляем других сотрудников об изменениях
                string notify = "Заказ №" + Order.Number.ToString() + " Удален. Пользователь " + GeneralFunction.FollowerFullName(FollowerId);
                await Processing.NotifyChanges(notify, Order.Id);

                return(base.OkResult);
            }

            catch
            {
                return(OkResult);
            }
        }
Example #6
0
        private void HandleEvent(OrderDeleted od)
        {
            var order = _dataContext.AllOrders.FirstOrDefault(e => e.Id == od.OrderId);

            if (order != null && order.SpendingId.HasValue)
            {
                var spending = _dataContext.Spendings.First(e => e.Id == order.SpendingId);
                spending.Current -= order.Quantity;
            }

            _dataContext.CurrentOrders.RemoveAll(e => e.Id == od.OrderId);
            _dataContext.AllOrders.RemoveAll(e => e.Id == od.OrderId);
            foreach (var tabToOrders in _dataContext.CurrentSettlement.TabToOrders)
            {
                tabToOrders.Orders.RemoveAll(e => e.Id == od.OrderId);
            }
        }
        private void DeleteOrder()
        {
            if (treeView1.SelectedNode.Tag is Order order)
            {
                var result = MessageBox.Show(
                    $"Do you want to delete order on {order.OrderDate}\nfor customer {order.Customer.CompanyName}?",
                    "Delete Order",
                    MessageBoxButtons.YesNo
                    );

                if (result == DialogResult.Yes)
                {
                    var nodeToDelete = treeView1.SelectedNode;
                    nodeToDelete.Parent.Nodes.Remove(nodeToDelete);
                    OrderDeleted?.Invoke(this, new OrderEventArgs(order));
                }
            }
        }
Example #8
0
 protected void OnOrderDeleted(Order order)
 {
     OrderDeleted?.Invoke(this, new OrderBookEventArgs(order));
 }
Example #9
0
        public OrderServiceResponse <Order> DeleteOrder(OrderDeleted ev, List <ServiceLogRecord> logRecords = null)
        {
            // Create the watch
            var sw = new Stopwatch();

            sw.Start();

            // Create a log record collection if necessary
            if (logRecords == null)
            {
                logRecords = new List <ServiceLogRecord>();
            }

            // Add log
            logRecords.Add(new ServiceLogRecord()
            {
                Type      = "DEBUG",
                TimeStamp = DateTime.Now,
                Body      = "Order delete request received."
            });

            // Create a response object
            var response = new OrderServiceResponse <Order>();

            #region [ Validate request ]

            // Add log
            logRecords.Add(new ServiceLogRecord()
            {
                Type      = "DEBUG",
                TimeStamp = DateTime.Now,
                Body      = "User has the required permissions. Now validating the incoming data."
            });

            // Check required data
            List <string> dataErrors = new List <string>();

            if (ev.OrderId == default(int))
            {
                dataErrors.Add("No valid Order id found!");
            }

            if (dataErrors.Count > 0)
            {
                // Add log
                logRecords.Add(new ServiceLogRecord()
                {
                    Type      = "DEBUG",
                    TimeStamp = DateTime.Now,
                    Body      = dataErrors.Count + " error(s) found within the posted data! Terminating the process. Errors:" + String.Join(";", dataErrors)
                });

                // Stop the sw
                sw.Stop();

                response.Type = ServiceResponseTypes.Error;
                response.Code = ((short)HeadstoneServiceResponseCodes.Invalid_Request).ToString();
                response.PreProcessingTook = sw.ElapsedMilliseconds;
                response.Message           = "There are some errors with the incoming request data!";
                response.Errors.AddRange(dataErrors);
                response.LogRecords = logRecords;

                return(response);
            }

            #endregion


            #region [ Data manuplation ]


            #endregion


            // Stop the timer
            sw.Stop();

            // Set the pre-processing time and start the time
            response.PreProcessingTook = sw.ElapsedMilliseconds;
            sw.Start();


            #region [ Load reseller application ]


            Order Order = _OrderServiceBase.Get(r => r.OrderID == ev.OrderId).Result.FirstOrDefault();

            if (Order == null)
            {
                // Add log
                logRecords.Add(new ServiceLogRecord()
                {
                    Type      = "DEBUG",
                    TimeStamp = DateTime.Now,
                    Body      = "No Order found with the given id!"
                });

                // Stop the sw
                sw.Stop();

                response.Type        = ServiceResponseTypes.Error;
                response.Code        = ((short)HeadstoneServiceResponseCodes.Invalid_Request).ToString();
                response.ServiceTook = sw.ElapsedMilliseconds;
                response.Message     = "No Order found with the given id!";
                response.Errors.Add("No Order found with the given id!");
                response.LogRecords = logRecords;

                return(response);
            }
            #endregion

            #region [ Delete reseller application ]

            // Add log
            logRecords.Add(new ServiceLogRecord()
            {
                Type      = "DEBUG",
                TimeStamp = DateTime.Now,
                Body      = "Deleting Order."
            });

            // Delete the billing info
            var baseServiceResponse = _OrderServiceBase.Delete(Order);

            if (baseServiceResponse.Type != Headstone.Framework.Models.ServiceResponseTypes.Success)
            {
                // Add log
                logRecords.Add(new ServiceLogRecord()
                {
                    Type      = "ERROR",
                    TimeStamp = DateTime.Now,
                    Body      = "There was an error while deleting the Order!"
                });

                // Stop the sw
                sw.Stop();

                response.Type        = ServiceResponseTypes.Error;
                response.Code        = ((short)HeadstoneServiceResponseCodes.General_Exception).ToString();
                response.ServiceTook = sw.ElapsedMilliseconds;
                response.Message     = "There was an error while deleting the Order!";
                response.Errors.Add("There was an error while deleting the Order!");
                response.Errors.AddRange(baseServiceResponse.Errors);
                response.LogRecords = logRecords;

                return(response);
            }
            else
            {
                // Add log
                logRecords.Add(new ServiceLogRecord()
                {
                    Type      = "DEBUG",
                    TimeStamp = DateTime.Now,
                    Body      = string.Format("Order successfuly deleted. OrderID:{0}",
                                              Order.OrderID)
                });

                // Add the new object to the result
                response.Result.Add(Order);

                // Set the role id
                response.OrderId = Order.OrderID;
            }

            #endregion

            // Stop the sw
            sw.Stop();

            response.Type        = ServiceResponseTypes.Success;
            response.Code        = ((short)HeadstoneServiceResponseCodes.Request_Successfuly_Completed).ToString();
            response.ServiceTook = sw.ElapsedMilliseconds;
            response.Message     = string.Format("Order successfuly deleted. OrderID:{0}",
                                                 Order.OrderID);
            response.LogRecords = logRecords;

            return(response);
        }
Example #10
0
 private void Apply(OrderDeleted @event)
 {
     IsLogicallyDeleted = true;
 }
Example #11
0
 private void OnOrderDeleted(EventArgs e)
 {
     OrderDeleted?.Invoke(this, e);
 }