private void getInValidatedOrders()
 {
     OrderManager businessLayer = new OrderManager();
     List<OrderId> invalidOrders = businessLayer.getAllInvalidOrders();
     OrderCompletionLinksRepeater.DataSource = invalidOrders;
     OrderCompletionLinksRepeater.DataBind();
 }
        public void UpdateOrder_AddNew()
        {
            var newOrder = new Order();
            var addedOrder = new Order { Id = 1 };

            Mock<IDataRepositoryFactory> mockDataRepositoryFactory = new Mock<IDataRepositoryFactory>();
            mockDataRepositoryFactory.Setup(mock => mock.GetDataRepository<IOrderRepository>().Add(newOrder)).Returns(addedOrder);

            OrderManager manager = new OrderManager(mockDataRepositoryFactory.Object);
            var resultedOrder = manager.UpdateOrder(newOrder);

            Assert.AreEqual(addedOrder, resultedOrder);
        }
        public void UpdateOrder_UpdateExisting()
        {
            var existingOrder = new Order { Id = 1, Notes = "1"};
            var updatedOrder = new Order { Id = 1, Notes = "2"};

            Mock<IDataRepositoryFactory> mockDataRepositoryFactory = new Mock<IDataRepositoryFactory>();
            mockDataRepositoryFactory.Setup(mock => mock.GetDataRepository<IOrderRepository>().Update(existingOrder)).Returns(updatedOrder);

            OrderManager manager = new OrderManager(mockDataRepositoryFactory.Object);
            var resultedOrder = manager.UpdateOrder(existingOrder);

            Assert.AreEqual(updatedOrder, resultedOrder);
        }
        public void Order_GetAll()
        {
            var orders = new[]
            {
                new Order {Id = 1, Notes = "Order 1"},
                new Order {Id = 2, Notes = "Order 2"}
            };

            Mock<IDataRepositoryFactory> mockDataRepositoryFactory = new Mock<IDataRepositoryFactory>();
            mockDataRepositoryFactory.Setup(mock => mock.GetDataRepository<IOrderRepository>().Get()).Returns(orders);

            OrderManager manager = new OrderManager(mockDataRepositoryFactory.Object);
            var resultedOrder = manager.GetAllOrders();

            Assert.AreEqual(orders.Length, resultedOrder.Length);
        }
    protected void btnCalculateOrder_Click(object sender, EventArgs e)
    {
        double totalCost = 0;
        String[] items = SessionVariableManager.getOrderItems();
        List<InventoryItem> inventoryItems = new List<InventoryItem>();
        List<Double> orderedAmount = new List<Double>();

        foreach (String item in items)
        {
            if (item != "")
            {
                inventoryItems.Add(InventoryManager.getSingleItem(Convert.ToInt32(item)));
            }
        }

        foreach (RepeaterItem rptItem in rptOrderItem.Items)
        {
            TextBox orderItemTextBox = (TextBox)rptItem.FindControl("txtCount");
            String amountOrdered = orderItemTextBox.Text;
            orderedAmount.Add(Convert.ToDouble(amountOrdered));
        }
        for (int i = 0; i < inventoryItems.Count; i++)
        {

            OrderManager orderManager = new OrderManager();
            totalCost = orderManager.getTotalOrderCost(inventoryItems, orderedAmount);
        }

        lblMessage.Text = "Your total is: " + string.Format("{0:C}", totalCost);

        if (cbCollectOnDelivery.Checked)
        {
            txtPaymentAmount.Text = (totalCost * .1).ToString();
            txtPaymentAmount.Enabled = true;
            paymentAmountValidator.MinimumValue = (totalCost * .1).ToString();
            paymentAmountValidator.MaximumValue = totalCost.ToString();
        }
        else
        {
            txtPaymentAmount.Text = totalCost.ToString();
            txtPaymentAmount.Enabled = false;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        String userName = Security.getUsername();
        OrderManager orderManager = new OrderManager();

        List<UserOrder> userOrders = orderManager.getUserOrders(userName);
        ExistingOrdersHeaderRepeater.DataSource = userOrders;
        ExistingOrdersHeaderRepeater.DataBind();

        for (int i = 0; i < userOrders.Count; i++)
        {
            try
            {
                Repeater innerRepeater = (Repeater)ExistingOrdersHeaderRepeater.Items[i].FindControl("ExistingOrderItemRepeater");
                innerRepeater.DataSource = userOrders[i].orderItems;
                innerRepeater.DataBind();
            }
            catch (Exception ex)
            {

            }
        }
    }
    private void loadSingleOrder(int viewOrderId)
    {
        OrderManager businessLayer = new OrderManager();
        cisseniorproject.dataobjects.Order order = businessLayer.getOrder(viewOrderId);

        lblUserId.Text = order.getUserId().ToString();
        lblUsername.Text = order.getPaymentInformation().getUser().getUsername();
        lblFirstName.Text = order.getPaymentInformation().getUser().getFirstName();
        lblLastName.Text = order.getPaymentInformation().getUser().getLastName();
        lblAddress.Text = order.getPaymentInformation().getUser().getAddress();
        lblCity.Text = order.getPaymentInformation().getUser().getCity();
        lblState.Text = order.getPaymentInformation().getUser().getState();
        lblZipCode.Text = order.getPaymentInformation().getUser().getZipCode();
        lblAccountCreationDate.Text = order.getPaymentInformation().getUser().getAccountCreationDate().ToShortDateString();
        lblEmail.Text = order.getPaymentInformation().getUser().getEamil();

        lblCreditCardType.Text = order.getPaymentInformation().getCreditCardType();
        lblCreditCardNumber.Text = order.getPaymentInformation().getCreditCardNumber();
        lblCardCity.Text = order.getPaymentInformation().getCity();
        lblCardState.Text = order.getPaymentInformation().getState();
        lblCardExpDate.Text = order.getPaymentInformation().getCardExpDate().ToShortDateString();
        lblCardSecurityCode.Text = order.getPaymentInformation().getSecurityCode();

        lblOrderId.Text = order.getOrderId().ToString();
        lblOrderUserId.Text = order.getUserId().ToString();
        cbIsValidated.Checked = order.isOrderValidated();
        cbIsCompleted.Checked = order.isOrderCompleted();
        cbIsCollectOnDelivery.Checked = order.getCollectOnDelivery();
        lblPaymentAmount.Text = String.Format("{0:C}",order.getPaymentAmount());
        lblTotalOrderAmount.Text = String.Format("{0:C}", businessLayer.getOrderTotal());
        lblAmountDue.Text = String.Format("{0:C}", businessLayer.getAmountDue());

        List<UserOrderItem> orderItems = businessLayer.getOrderItems(order);

        rptOrderItems.DataSource = orderItems;
        rptOrderItems.DataBind();
    }
示例#8
0
	private List<Order> GetData(bool paged, out int count)
	{
		List<Order> orders = null;
		OrderManager oManager = new OrderManager(StaticDataHelper.FCCLDbContext);

		#region filter
		DateTime date;
		long no;
		DateTime? receiveDateStart = null;
		DateTime? receiveDateEnd = null;
		long? orderNoStart = null;
		long? orderNoEnd = null;

		if (!string.IsNullOrWhiteSpace(txtRDStart.Text))
		{
			if (DateTime.TryParseExact(txtRDStart.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
			{
				receiveDateStart = date;
			}
			else
			{
				receiveDateStart = null;
			}
		}
		if (!string.IsNullOrWhiteSpace(txtRDEnd.Text))
		{
			if (DateTime.TryParseExact(txtRDEnd.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
			{
				receiveDateEnd = date;
			}
			else
			{
				receiveDateEnd = null;
			}
		}
		if (!string.IsNullOrWhiteSpace(txtONStart.Text))
		{
			if (long.TryParse(txtONStart.Text, out no))
			{
				orderNoStart = no;
			}
			else
			{
				orderNoStart = null;
			}
		}
		if (!string.IsNullOrWhiteSpace(txtONEnd.Text))
		{
			if (long.TryParse(txtONEnd.Text, out no))
			{
				orderNoEnd = no;
			}
			else
			{
				orderNoEnd = null;
			}
		}
		#endregion

		if (paged)
		{
			orders = oManager.GetOrdersPaged(receiveDateStart, receiveDateEnd, orderNoStart, orderNoEnd, txtCN.Text, grdOrders.PageIndex, grdOrders.PageSize);
			count = oManager.GetOrdersCount(receiveDateStart, receiveDateEnd, orderNoStart, orderNoEnd, txtCN.Text);
		}
		else
		{
			orders = oManager.GetOrdersFiltered(receiveDateStart, receiveDateEnd, orderNoStart, orderNoEnd, txtCN.Text);
			count = orders.Count;
		}
		return orders;
	}
示例#9
0
    public void ImportFisReceptie(string filepath)
    {
        Ferme_CCL ferma = new Ferme_CCL();
        bool error = false;
        string strcodbare;
        string strConn;
        int posOfSlash = filepath.LastIndexOf(@"\");

        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filepath + ";" +
                  "Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
        OleDbConnection cn;
        DataTable dtTables;

        cn = new OleDbConnection(strConn);
        cn.Open();
        dtTables = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
        string tblstr = dtTables.Rows[dtTables.Rows.Count - 1]["TABLE_NAME"].ToString();

        string tbldate = tblstr.Substring(4, 8);
        string filelogpath = filepath.Substring(0, filepath.Length - 4) + "_" + tbldate + ".txt";
        string filelogInhibpath = filepath.Substring(0, filepath.Length - 4) + "_Inhib" + tbldate + ".txt";
        string logfilename = filelogpath.Substring(posOfSlash + 1);
        filelogpath = filelogpath.Replace(" ", "_");
        logfilename = logfilename.Replace(" ", "_");

        loggerReceptie.Info("*************************************************************************************************");
        loggerReceptie.Info("*************************************************************************************************");
        loggerReceptie.Info("Start import receptie fisier: {0}, data: {1}, numet sheet: {2}", filepath, DateTime.Now, tblstr);
        // end log files
        filepath = filepath.Replace(@"\", @"\\");

        OleDbDataAdapter myCommand = new OleDbDataAdapter();
        myCommand.SelectCommand = new OleDbCommand("SELECT * FROM [" + tblstr + "]", cn);

        DataSet myDataSet = new DataSet();
        myCommand.Fill(myDataSet);

        DataTable table;
        table = myDataSet.Tables[0];
        cn.Close();

        // For each row, print the values of each column.
        string ferma_ccl_cod = "";
        string crot = "";
        string rasa = "";
        int ferma_ccl_id = 0;
        int fabricaID = 0;
        int header = 0;
        string prelevator = "";
        double prelid;
        bool isNum;
        string prelevatorini = table.Rows[0][1].ToString();
        List<Order> orders = new List<Order>();
        OrderManager oManager = new OrderManager(ctx);
        if (!VerificareFisierReceptie(table, 6, 5))
        {
            loggerReceptie.Error("Eroare la verificare fisierului, oprire import");
            return;
        }
        foreach (DataRow row in table.Rows)
        {
            header++;

            if (header > 2 && row[3].ToString().Trim() != "")
            {
                error = false;
                strcodbare = row[3].ToString().Trim();
                if (ExistaCodBare(strcodbare) != 0)
                {
                    loggerReceptie.Info("Codul de bare: {0} exista deja", strcodbare);
                    error = true;
                }
                else
                {
                    DateTime datat_testare = new DateTime(int.Parse(tblstr.Substring(8, 4)),
                        int.Parse(tblstr.Substring(6, 2)), int.Parse(tblstr.Substring(4, 2)));
                    //	strDataPrelevare = row[5].ToString().Trim().Replace(@".", @"\");

                    DateTime dataPrelevare = DateTime.ParseExact(row[5].ToString().Trim(), "dd/MM/yyyy", new CultureInfo("fr-FR"));

                    prelevator = row[1].ToString().Trim();
                    /*
                        if (prelevator == "")
                          prelevator = prelevatorini;
                        else
                          prelevatorini = prelevator;
                     */
                    isNum = double.TryParse(prelevator, NumberStyles.Integer, CultureInfo.CreateSpecificCulture("en-GB"), out prelid);

                    if (!isNum)
                    {
                        loggerReceptie.Info("La codul de bare: {0} nu exista prelevator.", strcodbare);
                        error = true;
                    }
                    else
                    {
                        crot = strcodbare.Substring(0, 7);
                        // verific crotalia
                        ferma_ccl_cod = crot;
                        ferma_ccl_id = ferma.GetFermeId(crot);
                        rasa = ferma.GetFermeRasa(crot);
                        if (ferma_ccl_id == 0)
                        {
                            error = true;
                            loggerReceptie.Info("Nu exista crotalie pt. codul: {0}, crotalie: {1}", strcodbare, crot);
                        }
                        string farmName;
                        fabricaID = ferma.GetFerma(ferma_ccl_id, out farmName);
                        if (!error)
                        {
                            try
                            {
                                DateTime dataPrimirii = DateTime.ParseExact(row[6].ToString().Trim(), "dd/MM/yyyy", new CultureInfo("fr-FR"));
                                //DateTime dataPrimirii;
                                //if (!DateTime.TryParse(row[6].ToString().Trim(), new CultureInfo("fr-FR"), DateTimeStyles.None, out dataPrimirii))
                                //{
                                //    dataPrimirii = DateTime.Now;
                                //}

                                string nrComanda = row[0].ToString().Trim();
                                AddMostra(0, Convert.ToInt32(row[2].ToString().Trim()), strcodbare, nrComanda,
                                    ferma_ccl_cod, ferma_ccl_id, fabricaID, ""
                                    , "0", "0", "0", "0", "0", dataPrelevare, "0", dataPrimirii,
                                    "0", datat_testare, "0", Convert.ToInt32(prelevator), "", 0, 0, datat_testare, "0",
                                    "0", "0", rasa);
                                loggerReceptie.Info(
                                    "Mostra cod bare {0} pentru ferma Id {1}, fabrica Id {2}, nr comanda {3} adaugata cu succes.",
                                    strcodbare, ferma_ccl_id, fabricaID, nrComanda);

                                Order currentOrder = orders.FirstOrDefault(o => o.FullOrderNumber == nrComanda);
                                if (currentOrder != null)
                                {
                                    currentOrder.SampleCount++;
                                    currentOrder.AnalyzedSampleCount++;
                                }
                                else
                                {
                                    string[] arr = nrComanda.Split('-', '/');
                                    int orderNumber;
                                    if (arr.Length == 3 && int.TryParse(arr[1], out orderNumber))
                                    {
                                        //if (!DateTime.TryParse(row[5].ToString().Trim(), new CultureInfo("fr-FR"), DateTimeStyles.None, out dataPrelevare))
                                        //{
                                        //    dataPrelevare = DateTime.Now;
                                        //}

                                        currentOrder = new Order
                                        {
                                            AnalyzedSampleCount = 1,
                                            ClientId = fabricaID > 0 ? fabricaID : -1,
                                            ClientName = farmName + " (" + fabricaID + ")",
                                            FullOrderNumber = nrComanda,
                                            Imported = true,
                                            OrderNumber = orderNumber,
                                            ReceivedDate = dataPrimirii,
                                            SampleCount = 1,
                                            SampleDate = dataPrelevare
                                        };
                                        orders.Add(currentOrder);
                                    }
                                    else
                                    {
                                        loggerReceptie.Info("Adaugare comanda esuata: {0}", nrComanda);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                loggerReceptie.Info("Adaugare mostra esuata: {0}, err: {1}", strcodbare, ex.Message);
                                throw;
                            }
                        }
                    }
                }
            }
        }

        oManager.Save(orders);
        ctx.SaveChanges();

        loggerReceptie.Info("Importarea fisierului de receptie a fost efectuata!");
    }
 public OrderServices()
 {
     orderManager = new OrderManager();
 }
 protected void btnValidateOrder_Click(object sender, EventArgs e)
 {
     OrderManager businessLayer = new OrderManager();
     businessLayer.validateOrder(Convert.ToInt32(lblOrderId.Text));
     loadSingleOrder(Convert.ToInt32(lblOrderId.Text));
 }
示例#12
0
 public ValuesController(OrderManager orderManager)
 {
     this.OrderManager = orderManager;
 }
示例#13
0
        public void Execute()
        {
            OrderManager        manager        = OrderManagerFactory.Create();
            DateTime            orderDate      = new DateTime().Date;
            Order               order          = new Order();
            List <Order>        Orders         = new List <Order>();
            OrderLookupResponse lookupResponse = new OrderLookupResponse();
            bool            orderExists;
            EditOrderInFile editInFile = new EditOrderInFile();
            PrintReceipt    print      = new PrintReceipt();
            EditOrderFile   editFile   = new EditOrderFile();


            Console.Clear();
            Console.WriteLine("Edit an order");
            Console.WriteLine(TextHelper.ConsoleBar);
            Console.WriteLine("Please enter the following information....");
            Console.WriteLine();

            while (true)
            {
                Console.WriteLine("Date of order: ");
                if (DateTime.TryParse(Console.ReadLine(), out orderDate))
                {
                    order.Date = orderDate;
                    break;
                }
                Console.WriteLine("You did not enter a valid date format. Press any key to continue...");
                Console.ReadKey();
            }

            while (true)
            {
                lookupResponse = manager.LookupOrder(order.Date);
                if (lookupResponse != null)
                {
                    Orders = lookupResponse.Orders;
                }

                if (lookupResponse.success)
                {
                    break;
                }
                else
                {
                    Console.WriteLine("An error occurred.");
                    Console.WriteLine(lookupResponse.message);
                    continue;
                }
            }
            while (true)
            {
                Console.Clear();
                ConsoleIO.DisplayOrderDetails(lookupResponse.Orders);
                int orderNumber;
                Console.WriteLine("Order number: ");
                if (int.TryParse(Console.ReadLine(), out orderNumber))
                {
                    order.OrderNumber = orderNumber;
                }
                else
                {
                    Console.WriteLine("You did not enter a number. Press any key to continue...");
                    Console.ReadKey();
                }


                string filePath = FilePath.GetFilePath(order.Date);
                Orders      = ReadOrdersFromFile.ReadOrders(filePath);
                orderExists = editInFile.CheckOrderNumberExists(Orders, order.OrderNumber);
                if (!orderExists)
                {
                    Console.WriteLine("That order number does not exist for the date you entered. Press any key to continue...");
                    Console.ReadKey();
                    continue;
                }
                else
                {
                    Order singleOrder = Orders.Where(ord => ord.OrderNumber == order.OrderNumber).Single();
                    order = singleOrder;
                }

                while (true)
                {
                    print.Print(order);
                    Console.WriteLine("Are you sure you want to delete this order? (Y/N)?");
                    string userInput = Console.ReadLine().ToUpper();
                    switch (userInput)
                    {
                    case "Y":
                        RemoveOrderFile remove = new RemoveOrderFile();
                        remove.RemoveOrderFromList(Orders, order, order.Date);
                        editFile.EditOrderToFile(Orders, order.Date);
                        Console.WriteLine("Remove has been saved! Press any key to continue...");
                        Console.ReadKey();
                        break;

                    case "N":
                        Console.WriteLine("Remove has been canceled. Press any key to continue...");
                        Console.ReadKey();
                        break;

                    default:
                        Console.WriteLine("That was not a valid entry! Press any key to continue...");
                        Console.ReadKey();
                        continue;
                    }
                    break;
                }
                break;
            }
        }
示例#14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (NopContext.Current.User == null)
            {
                string loginURL = SEOHelper.GetLoginPageUrl(true);
                Response.Redirect(loginURL);
            }

            CommonHelper.SetResponseNoCache(Response);

            if (!Page.IsPostBack)
            {
                if (EPaymentFormSettings.UsePIN && !EPaymentFormHelper.ValidateResponseSign(Request.Form))
                {
                    Response.Redirect(CommonHelper.GetStoreLocation());
                }
                if (!Request.Form["UMstatus"].Equals("Approved"))
                {
                    Response.Redirect(CommonHelper.GetStoreLocation());
                }

                int orderId = 0;
                if (!Int32.TryParse(Request.Form["UMinvoice"], out orderId))
                {
                    Response.Redirect(CommonHelper.GetStoreLocation());
                }
                Order order = OrderManager.GetOrderById(orderId);
                if (order == null || NopContext.Current.User.CustomerId != order.CustomerId)
                {
                    Response.Redirect(CommonHelper.GetStoreLocation());
                }

                string transactionId = Request.Form["UMrefNum"];

                if (EPaymentFormSettings.AuthorizeOnly)
                {
                    //set AuthorizationTransactionID
                    order = OrderManager.UpdateOrder(order.OrderId, order.OrderGuid, order.CustomerId, order.CustomerLanguageId,
                                                     order.CustomerTaxDisplayType, order.CustomerIP, order.OrderSubtotalInclTax, order.OrderSubtotalExclTax, order.OrderShippingInclTax,
                                                     order.OrderShippingExclTax, order.PaymentMethodAdditionalFeeInclTax, order.PaymentMethodAdditionalFeeExclTax,
                                                     order.OrderTax, order.OrderTotal, order.OrderDiscount,
                                                     order.OrderSubtotalInclTaxInCustomerCurrency, order.OrderSubtotalExclTaxInCustomerCurrency,
                                                     order.OrderShippingInclTaxInCustomerCurrency, order.OrderShippingExclTaxInCustomerCurrency,
                                                     order.PaymentMethodAdditionalFeeInclTaxInCustomerCurrency, order.PaymentMethodAdditionalFeeExclTaxInCustomerCurrency,
                                                     order.OrderTaxInCustomerCurrency, order.OrderTotalInCustomerCurrency,
                                                     order.OrderDiscountInCustomerCurrency,
                                                     order.CheckoutAttributeDescription, order.CheckoutAttributesXml,
                                                     order.CustomerCurrencyCode, order.OrderWeight,
                                                     order.AffiliateId, order.OrderStatus, order.AllowStoringCreditCardNumber,
                                                     order.CardType, order.CardName, order.CardNumber, order.MaskedCreditCardNumber,
                                                     order.CardCvv2, order.CardExpirationMonth, order.CardExpirationYear,
                                                     order.PaymentMethodId, order.PaymentMethodName,
                                                     transactionId,
                                                     order.AuthorizationTransactionCode, order.AuthorizationTransactionResult,
                                                     order.CaptureTransactionId, order.CaptureTransactionResult,
                                                     order.SubscriptionTransactionId, order.PurchaseOrderNumber,
                                                     order.PaymentStatus, order.PaidDate,
                                                     order.BillingFirstName, order.BillingLastName, order.BillingPhoneNumber,
                                                     order.BillingEmail, order.BillingFaxNumber, order.BillingCompany, order.BillingAddress1,
                                                     order.BillingAddress2, order.BillingCity,
                                                     order.BillingStateProvince, order.BillingStateProvinceId, order.BillingZipPostalCode,
                                                     order.BillingCountry, order.BillingCountryId, order.ShippingStatus,
                                                     order.ShippingFirstName, order.ShippingLastName, order.ShippingPhoneNumber,
                                                     order.ShippingEmail, order.ShippingFaxNumber, order.ShippingCompany,
                                                     order.ShippingAddress1, order.ShippingAddress2, order.ShippingCity,
                                                     order.ShippingStateProvince, order.ShippingStateProvinceId, order.ShippingZipPostalCode,
                                                     order.ShippingCountry, order.ShippingCountryId,
                                                     order.ShippingMethod, order.ShippingRateComputationMethodId,
                                                     order.ShippedDate, order.DeliveryDate,
                                                     order.TrackingNumber, order.Deleted, order.CreatedOn);

                    if (OrderManager.CanMarkOrderAsAuthorized(order))
                    {
                        OrderManager.MarkAsAuthorized(order.OrderId);
                    }
                }
                else
                {
                    //set CaptureTransactionID
                    order = OrderManager.UpdateOrder(order.OrderId, order.OrderGuid, order.CustomerId, order.CustomerLanguageId,
                                                     order.CustomerTaxDisplayType, order.CustomerIP, order.OrderSubtotalInclTax, order.OrderSubtotalExclTax, order.OrderShippingInclTax,
                                                     order.OrderShippingExclTax, order.PaymentMethodAdditionalFeeInclTax, order.PaymentMethodAdditionalFeeExclTax,
                                                     order.OrderTax, order.OrderTotal, order.OrderDiscount,
                                                     order.OrderSubtotalInclTaxInCustomerCurrency, order.OrderSubtotalExclTaxInCustomerCurrency,
                                                     order.OrderShippingInclTaxInCustomerCurrency, order.OrderShippingExclTaxInCustomerCurrency,
                                                     order.PaymentMethodAdditionalFeeInclTaxInCustomerCurrency, order.PaymentMethodAdditionalFeeExclTaxInCustomerCurrency,
                                                     order.OrderTaxInCustomerCurrency, order.OrderTotalInCustomerCurrency,
                                                     order.OrderDiscountInCustomerCurrency,
                                                     order.CheckoutAttributeDescription, order.CheckoutAttributesXml,
                                                     order.CustomerCurrencyCode, order.OrderWeight,
                                                     order.AffiliateId, order.OrderStatus, order.AllowStoringCreditCardNumber,
                                                     order.CardType, order.CardName, order.CardNumber, order.MaskedCreditCardNumber,
                                                     order.CardCvv2, order.CardExpirationMonth, order.CardExpirationYear,
                                                     order.PaymentMethodId, order.PaymentMethodName,
                                                     order.AuthorizationTransactionId,
                                                     order.AuthorizationTransactionCode, order.AuthorizationTransactionResult,
                                                     transactionId, order.CaptureTransactionResult,
                                                     order.SubscriptionTransactionId, order.PurchaseOrderNumber,
                                                     order.PaymentStatus, order.PaidDate,
                                                     order.BillingFirstName, order.BillingLastName, order.BillingPhoneNumber,
                                                     order.BillingEmail, order.BillingFaxNumber, order.BillingCompany, order.BillingAddress1,
                                                     order.BillingAddress2, order.BillingCity,
                                                     order.BillingStateProvince, order.BillingStateProvinceId, order.BillingZipPostalCode,
                                                     order.BillingCountry, order.BillingCountryId, order.ShippingStatus,
                                                     order.ShippingFirstName, order.ShippingLastName, order.ShippingPhoneNumber,
                                                     order.ShippingEmail, order.ShippingFaxNumber, order.ShippingCompany,
                                                     order.ShippingAddress1, order.ShippingAddress2, order.ShippingCity,
                                                     order.ShippingStateProvince, order.ShippingStateProvinceId, order.ShippingZipPostalCode,
                                                     order.ShippingCountry, order.ShippingCountryId,
                                                     order.ShippingMethod, order.ShippingRateComputationMethodId,
                                                     order.ShippedDate, order.DeliveryDate,
                                                     order.TrackingNumber, order.Deleted, order.CreatedOn);

                    if (OrderManager.CanMarkOrderAsPaid(order))
                    {
                        OrderManager.MarkOrderAsPaid(order.OrderId);
                    }
                }

                Response.Redirect("~/checkoutcompleted.aspx");
            }
        }
        private void LoadTemplate(int templateIndex)
        {
            if (templateIndex < AllTemplates.Count)
            {
                //We're making a separate call to database just to get
                //full template object, ideally we should merge these two calls
                int         currentTemplateId = AllTemplates[templateIndex];
                PathManager pathManager       = new PathManager();
                Template    currentTemplate   = pathManager.GetTemplate(currentTemplateId);

                if (currentTemplate.UriLabel != null)
                {
                    Session["PostSaleLabelName"] = currentTemplate.UriLabel;
                }
                else
                {
                    Session["PostSaleLabelName"] = "";
                }
                if (currentTemplate.CanUseTemplate(CartContext))
                {
                    //decimal orderTotal = 0;
                    //decimal neworderTotal = 0;
                    //decimal shippingandhandling = 0;
                    //Order orderItem = new OrderManager().GetBatchProcessOrders(CartContext.OrderId);
                    //shippingandhandling = orderItem.ShippingCost;
                    //foreach (Sku s in orderItem.SkuItems)
                    //{
                    //    orderTotal += s.InitialPrice;
                    //    s.LoadAttributeValues();
                    //    try
                    //    {
                    //        if (s.AttributeValues["relatedonepaysku"] != null && !s.AttributeValues["relatedonepaysku"].Value.Equals(""))
                    //        {
                    //            int skuId = Convert.ToInt32(s.AttributeValues["relatedonepaysku"].Value);
                    //            Sku st = new SkuManager().GetSkuByID(skuId);
                    //            //st.SkuId = skuId;

                    //            st.LoadAttributeValues();
                    //            neworderTotal += st.InitialPrice;
                    //        }
                    //    }
                    //    catch
                    //    {


                    //    }
                    //}
                    decimal orderTotal          = 0;
                    decimal neworderTotal       = 0;
                    decimal shippingandhandling = 0;
                    string  templateBody        = currentTemplate.Body;

                    if (templateBody.Contains("<input name=\"onepay\" value=\"onepay\" id=\"onepay\" type=\"hidden\" />"))
                    {
                        Order orderItem = new OrderManager().GetBatchProcessOrders(CartContext.OrderId);
                        shippingandhandling = orderItem.ShippingCost;
                        foreach (Sku s in orderItem.SkuItems)
                        {
                            orderTotal += s.InitialPrice;
                            s.LoadAttributeValues();
                            try
                            {
                                if (s.AttributeValues["relatedonepaysku"] != null && !s.AttributeValues["relatedonepaysku"].Value.Equals(""))
                                {
                                    int skuId = Convert.ToInt32(s.AttributeValues["relatedonepaysku"].Value);
                                    Sku st    = new SkuManager().GetSkuByID(skuId);
                                    //st.SkuId = skuId;

                                    st.LoadAttributeValues();
                                    neworderTotal += st.InitialPrice;
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                    templateBody = UpdateTemplateForGiftWrapItems(templateBody);
                    StringBuilder sb = new StringBuilder();
                    sb.Append(templateBody);

                    //templateBody.Replace('{upsellTotal}', Math.Round(neworderTotal, 2).ToString());
                    sb.Replace("{upsellTotal}", Math.Round(neworderTotal, 2).ToString());
                    sb.Replace("{upsellshipping}", Math.Round(shippingandhandling, 2).ToString());
                    sb.Replace("{upsellsave}", Math.Round(shippingandhandling + 14.95m, 2).ToString());
                    templateBody = sb.ToString();
                    templateBody = BindLinks(templateBody);
                    templateBody = BindValidators(templateBody);
                    BindContainers(templateBody);

                    string script = string.Format("<script type=\"text/javascript\">\r\n{0}\r\n</script>", currentTemplate.Script);

                    //Tags contain some template related configuration information
                    var templateTagsXml = XElement.Parse("<root>" + currentTemplate.Tag + "</root>");

                    templateBody = InsertData(templateTagsXml, templateBody);

                    // write template html to page
                    mainContainer.InnerHtml = string.Format("{0}\r\n{1}", script, templateBody);
                }
                else
                {
                    GoToNextTemplate();
                }
            }
        }
示例#16
0
        public ConnectionFailedLogic(Widget widget, OrderManager orderManager, Action onAbort, Action <string> onRetry)
        {
            var panel       = widget;
            var abortButton = panel.Get <ButtonWidget>("ABORT_BUTTON");
            var retryButton = panel.Get <ButtonWidget>("RETRY_BUTTON");

            abortButton.Visible = onAbort != null;
            abortButton.OnClick = () => { Ui.CloseWindow(); onAbort(); };

            retryButton.Visible = onRetry != null;
            retryButton.OnClick = () =>
            {
                var password = passwordField != null && passwordField.IsVisible() ? passwordField.Text : orderManager.Password;

                Ui.CloseWindow();
                onRetry(password);
            };

            widget.Get <LabelWidget>("CONNECTING_DESC").GetText = () =>
                                                                  "Could not connect to {0}".F(orderManager.Endpoint);

            var connectionError = widget.Get <LabelWidget>("CONNECTION_ERROR");

            connectionError.GetText = () => orderManager.ServerError ?? orderManager.Connection.ErrorMessage ?? "Unknown error";

            var panelTitle = widget.Get <LabelWidget>("TITLE");

            panelTitle.GetText = () => orderManager.AuthenticationFailed ? "Password Required" : "Connection Failed";

            passwordField = panel.GetOrNull <PasswordFieldWidget>("PASSWORD");
            if (passwordField != null)
            {
                passwordField.TakeKeyboardFocus();
                passwordField.IsVisible = () => orderManager.AuthenticationFailed;
                var passwordLabel = widget.Get <LabelWidget>("PASSWORD_LABEL");
                passwordLabel.IsVisible  = passwordField.IsVisible;
                passwordField.OnEnterKey = () => { retryButton.OnClick(); return(true); };
                passwordField.OnEscKey   = () => { abortButton.OnClick(); return(true); };
            }

            passwordOffsetAdjusted = false;
            var connectionFailedTicker = panel.GetOrNull <LogicTickerWidget>("CONNECTION_FAILED_TICKER");

            if (connectionFailedTicker != null)
            {
                connectionFailedTicker.OnTick = () =>
                {
                    // Adjust the dialog once the AuthenticationError is parsed.
                    if (passwordField.IsVisible() && !passwordOffsetAdjusted)
                    {
                        var offset = passwordField.Bounds.Y - connectionError.Bounds.Y;
                        abortButton.Bounds.Y += offset;
                        retryButton.Bounds.Y += offset;
                        panel.Bounds.Height  += offset;
                        panel.Bounds.Y       -= offset / 2;

                        var background = panel.GetOrNull("CONNECTION_BACKGROUND");
                        if (background != null)
                        {
                            background.Bounds.Height += offset;
                        }

                        passwordOffsetAdjusted = true;
                    }
                };
            }
        }
示例#17
0
        public void Exicute()
        {
            Console.Clear();
            OrderManager orderManager = OrderManagerFactory.Create();

            Console.WriteLine("Enter an Order Date: ");

            string userInputDate = orderManager.GetValidDate(Console.ReadLine());

            if (userInputDate != null)
            {
                Console.WriteLine("Enter an Order Number: ");
                string userInputOrderNumber = Console.ReadLine();
                int    orderNumber          = int.MinValue;
                while (!userInputOrderNumber.All(char.IsDigit))
                {
                    Console.WriteLine("ERROR: Enter Order number as an int:");
                    userInputOrderNumber = Console.ReadLine();
                }
                while (!int.TryParse(userInputOrderNumber, out orderNumber))
                {
                    Console.WriteLine("order number must be entered as an int");
                    Console.WriteLine("enter order number:");
                    userInputOrderNumber = Console.ReadLine();
                }
                string inputOrderNumber = orderManager.GetValidOrderNumber(userInputOrderNumber, userInputDate);
                if (inputOrderNumber == null)

                {
                    Console.WriteLine("Order Number Does not Exist for that date");
                    Console.Write("Press any Key to Continue");
                    Console.ReadKey();
                }
                else
                {
                    Order editedOrder          = new Order();
                    IEnumerable <Order> orders = orderManager.LookupOder(userInputDate).Orders.Where(order => order.OrderNumber.ToString() == userInputOrderNumber);//here
                    string  customerName       = "";
                    string  state        = "";
                    string  productType  = "";
                    string  areaAsString = "";
                    decimal area         = 0;
                    foreach (var order in orders)
                    {
                        Console.WriteLine("Enter Customer Name (" + order.CustomerName + "):");
                        customerName = Console.ReadLine();
                        if (customerName == "")
                        {
                            customerName = order.CustomerName;
                        }
                        Console.WriteLine("Enter State (" + order.State + "):");
                        state = Console.ReadLine();
                        if (state == "")
                        {
                            state = order.State;
                            Console.WriteLine("Enter Product Type (" + order.ProductType + "):");
                            productType = Console.ReadLine();
                            if (productType == "")
                            {
                                productType = order.ProductType;
                            }
                            else
                            {
                                ProductManager productManager = ProductManagerFactory.Create();
                                while (productManager.ListProducts().All(product => product.ProductType != productType))
                                {
                                    Console.WriteLine("invalid product type. product types are: ");
                                    foreach (var product in productManager.ListProducts())
                                    {
                                        Console.WriteLine(product.ProductType);
                                    }
                                    Console.WriteLine("Enter Product Type:");
                                    productType = Console.ReadLine();
                                }
                            }

                            Console.WriteLine("Enter Area (" + order.Area + "):");
                            areaAsString = Console.ReadLine();
                            if (areaAsString == "")
                            {
                                area = order.Area;
                            }
                            else
                            {
                                while (!decimal.TryParse(areaAsString, out area) || area < 100)
                                {
                                    Console.WriteLine("area must be a decimal > 100");
                                    areaAsString = Console.ReadLine();
                                }

                                area = decimal.Parse(areaAsString);
                            }

                            editedOrder = order;

                            editedOrder.MaterialCost           = SubLogic.GetCostMaterials(area, productType);
                            editedOrder.CostPerSquareFoot      = (SubLogic.GetCostMaterials(area, productType)) / area;
                            editedOrder.TaxRate                = SubLogic.GetTaxRate(state);
                            editedOrder.LaborCostPerSquareFoot = SubLogic.GetCostLaborPerSquareFoot(productType);
                            editedOrder.LaborCost              = SubLogic.GetCostLaborPerSquareFoot(productType) * area;
                            editedOrder.Area         = area;
                            editedOrder.CustomerName = customerName;
                            editedOrder.ProductType  = productType;
                            editedOrder.State        = state;
                            editedOrder.Tax          = (editedOrder.MaterialCost + editedOrder.LaborCost) * (editedOrder.TaxRate / 100);
                            editedOrder.Total        = (editedOrder.Tax + editedOrder.MaterialCost + editedOrder.LaborCost);

                            Console.WriteLine("Are you sure you would like to Edit This Order?");
                            Console.WriteLine("Enter Y to save changes: ");
                            if (Console.ReadLine() == "Y")
                            {
                                editedOrder.OrderDate = userInputDate;
                                bool wasEdited = orderManager.SaveEditedOrder(editedOrder);
                                Console.Clear();
                                Console.WriteLine("Changes have been Saved. press any key to continue");
                                Console.ReadKey();
                            }
                            else
                            {
                                Console.Clear();
                                Console.WriteLine("Changes were not Saved. press any key to continue");
                                Console.ReadKey();
                            }
                        }
                        else
                        {
                            TaxManager taxRepository = TaxManagerFactory.Create();
                            if (taxRepository.LookupTax(state).Any(tax => tax.StateAbbreviation == state))
                            {
                                Console.WriteLine("Enter Product Type (" + order.ProductType + "):");
                                productType = Console.ReadLine();
                                if (productType == "")
                                {
                                    productType = order.ProductType;
                                }
                                Console.WriteLine("Enter Area (" + order.Area + "):");
                                areaAsString = Console.ReadLine();
                                if (areaAsString == "")
                                {
                                    area = order.Area;
                                }
                                else
                                {
                                    area = decimal.Parse(areaAsString);
                                }

                                editedOrder = order;

                                editedOrder.MaterialCost           = SubLogic.GetCostMaterials(area, productType);
                                editedOrder.CostPerSquareFoot      = (SubLogic.GetCostMaterials(area, productType)) / area;
                                editedOrder.TaxRate                = SubLogic.GetTaxRate(state);
                                editedOrder.LaborCostPerSquareFoot = SubLogic.GetCostLaborPerSquareFoot(productType);
                                editedOrder.LaborCost              = SubLogic.GetCostLaborPerSquareFoot(productType) * area;
                                editedOrder.Area         = area;
                                editedOrder.CustomerName = customerName;
                                editedOrder.ProductType  = productType;
                                editedOrder.State        = state;
                                editedOrder.Tax          = (editedOrder.MaterialCost + editedOrder.LaborCost) * (editedOrder.TaxRate / 100);
                                editedOrder.Total        = (editedOrder.Tax + editedOrder.MaterialCost + editedOrder.LaborCost);

                                Console.WriteLine("Are you sure you would like to Edit This Order?");
                                Console.WriteLine("Enter Y to save changes: ");
                                if (Console.ReadLine() == "Y")
                                {
                                    orderManager.SaveEditedOrder(editedOrder);
                                    Console.Clear();
                                    Console.WriteLine("Changes have been Saved. press any key to continue");
                                    Console.ReadKey();
                                }
                                else
                                {
                                    Console.Clear();
                                    Console.WriteLine("Changes were not Saved. press any key to continue");
                                    Console.ReadKey();
                                }
                            }
                            else
                            {
                                Console.WriteLine("State is not supported");
                                Console.WriteLine("press any key to exit");
                                Console.ReadKey();
                            }
                        }
                    }
                }
            }
            else
            {
                Console.WriteLine("File for Date Does not Exist");
                Console.Write("Press any Key to Continue");
                Console.ReadKey();
            }
        }
示例#18
0
        public ConnectionSwitchModLogic(Widget widget, OrderManager orderManager, Action onAbort, Action <string> onRetry)
        {
            var panel        = widget;
            var abortButton  = panel.Get <ButtonWidget>("ABORT_BUTTON");
            var switchButton = panel.Get <ButtonWidget>("SWITCH_BUTTON");

            var mod        = orderManager.ServerExternalMod;
            var modTitle   = mod.Title;
            var modVersion = mod.Version;

            switchButton.OnClick = () =>
            {
                var launchCommand = "Launch.URI={0}".F(new UriBuilder("tcp", orderManager.Connection.EndPoint.Address.ToString(), orderManager.Connection.EndPoint.Port));
                Game.SwitchToExternalMod(orderManager.ServerExternalMod, new[] { launchCommand }, () =>
                {
                    orderManager.ServerError = "Failed to switch mod.";
                    Ui.CloseWindow();
                    Ui.OpenWindow("CONNECTIONFAILED_PANEL", new WidgetArgs()
                    {
                        { "orderManager", orderManager },
                        { "onAbort", onAbort },
                        { "onRetry", onRetry }
                    });
                });
            };

            abortButton.Visible = onAbort != null;
            abortButton.OnClick = () => { Ui.CloseWindow(); onAbort(); };

            var width = 0;
            var title = panel.GetOrNull <LabelWidget>("MOD_TITLE");

            if (title != null)
            {
                var font       = Game.Renderer.Fonts[title.Font];
                var label      = WidgetUtils.TruncateText(modTitle, title.Bounds.Width, font);
                var labelWidth = font.Measure(label).X;
                width = Math.Max(width, title.Bounds.X + labelWidth);
                title.Bounds.Width = labelWidth;
                title.GetText      = () => label;
            }

            var version = panel.GetOrNull <LabelWidget>("MOD_VERSION");

            if (version != null)
            {
                var font       = Game.Renderer.Fonts[version.Font];
                var label      = WidgetUtils.TruncateText(modVersion, version.Bounds.Width, font);
                var labelWidth = font.Measure(label).X;
                width = Math.Max(width, version.Bounds.X + labelWidth);
                version.Bounds.Width = labelWidth;
                version.GetText      = () => label;
            }

            var logo = panel.GetOrNull <RGBASpriteWidget>("MOD_ICON");

            if (logo != null)
            {
                logo.GetSprite = () =>
                {
                    var ws = Game.Renderer.WindowScale;
                    if (ws > 2 && mod.Icon3x != null)
                    {
                        return(mod.Icon3x);
                    }

                    if (ws > 1 && mod.Icon2x != null)
                    {
                        return(mod.Icon2x);
                    }

                    return(mod.Icon);
                };

                if (mod.Icon == null)
                {
                    // Hide the logo and center just the text
                    if (title != null)
                    {
                        title.Bounds.X = logo.Bounds.X;
                    }

                    if (version != null)
                    {
                        version.Bounds.X = logo.Bounds.X;
                    }

                    width -= logo.Bounds.Width;
                }
                else
                {
                    // Add an equal logo margin on the right of the text
                    width += logo.Bounds.Width;
                }
            }

            var container = panel.GetOrNull("MOD_CONTAINER");

            if (container != null)
            {
                container.Bounds.X    += (container.Bounds.Width - width) / 2;
                container.Bounds.Width = width;
            }
        }
示例#19
0
 public CustomerController()
 {
     CManager = new CustomerManager(new UnitOfWork(new DataContext("test")));
     OManager = new OrderManager(new UnitOfWork(new DataContext("test")));
 }
示例#20
0
 //Since there is a static method below, the constructor does not run.
 // Therefore, define key (global) variables/objects after the class definition.
 //private List<Order> _orders;
 public ConsoleIO()
 {
     _manager = OrderManagerFactory.Create();
     //_orders = _manager.LoadOrders(DateTime.Now);
 }
示例#21
0
        static void InnerLogicTick(OrderManager orderManager)
        {
            var tick = RunTime;

            var world = orderManager.World;

            var uiTickDelta = tick - Ui.LastTickTime;

            if (uiTickDelta >= Timestep)
            {
                // Explained below for the world tick calculation
                var integralTickTimestep = (uiTickDelta / Timestep) * Timestep;
                Ui.LastTickTime += integralTickTimestep >= TimestepJankThreshold ? integralTickTimestep : Timestep;

                Viewport.TicksSinceLastMove += uiTickDelta / Timestep;

                Sync.CheckSyncUnchanged(world, Ui.Tick);
                Cursor.Tick();
            }

            var worldTimestep  = world == null ? Timestep : world.Timestep;
            var worldTickDelta = tick - orderManager.LastTickTime;

            if (worldTimestep != 0 && worldTickDelta >= worldTimestep)
            {
                using (new PerfSample("tick_time"))
                {
                    // Tick the world to advance the world time to match real time:
                    //    If dt < TickJankThreshold then we should try and catch up by repeatedly ticking
                    //    If dt >= TickJankThreshold then we should accept the jank and progress at the normal rate
                    // dt is rounded down to an integer tick count in order to preserve fractional tick components.
                    var integralTickTimestep = (worldTickDelta / worldTimestep) * worldTimestep;
                    orderManager.LastTickTime += integralTickTimestep >= TimestepJankThreshold ? integralTickTimestep : worldTimestep;

                    Sound.Tick();
                    Sync.CheckSyncUnchanged(world, orderManager.TickImmediate);

                    if (world == null)
                    {
                        return;
                    }

                    // Don't tick when the shellmap is disabled
                    if (world.ShouldTick)
                    {
                        var isNetTick = LocalTick % NetTickScale == 0;

                        if (!isNetTick || orderManager.IsReadyForNextFrame)
                        {
                            ++orderManager.LocalFrameNumber;

                            Log.Write("debug", "--Tick: {0} ({1})", LocalTick, isNetTick ? "net" : "local");

                            if (BenchmarkMode)
                            {
                                Log.Write("cpu", "{0};{1}".F(LocalTick, PerfHistory.Items["tick_time"].LastValue));
                            }

                            if (isNetTick)
                            {
                                orderManager.Tick();
                            }

                            Sync.CheckSyncUnchanged(world, () =>
                            {
                                world.OrderGenerator.Tick(world);
                                world.Selection.Tick(world);
                            });

                            world.Tick();

                            PerfHistory.Tick();
                        }
                        else if (orderManager.NetFrameNumber == 0)
                        {
                            orderManager.LastTickTime = RunTime;
                        }
                    }
                    else
                    {
                        PerfHistory.Tick();
                    }

                    Sync.CheckSyncUnchanged(world, () => world.TickRender(worldRenderer));
                }
            }
        }
        private void GetTemplateSelections(ref Dictionary <int, int> skusAndQuantities)
        {
            #region Sample XML

            /*
             * <TemplateDetails>
             * <SelectionParameters>
             * <FixedSkuEntryFields useCondition="cond1" type="onepay">
             * <Sku Id="36">
             * <Field what="quantity" name="SKU36QTY" />
             * </Sku>
             * <Sku Id="39">
             * <Field what="quantity" name="SKU39QTY" defaultValue />
             * </Sku>
             * </FixedSkuEntryFields>
             * <FixedSkuEntryFields useCondition="cond2">
             * <Sku Id="40">
             * <Field what="quantity" name="SKU40QTY" />
             * </Sku>
             * </FixedSkuEntryFields>
             * <Conditions>
             * <Condition key="cond1">
             * <FieldMatch name="userSelection" isRegex="false">one</FieldMatch>
             * </Condition>
             * <Condition key="cond2">
             * <FieldMatch name="userSelection" isRegex="false">two</FieldMatch>
             * </Condition>
             * </Conditions>
             * </SelectionParameters>
             * </TemplateDetails>
             * */
            #endregion

            XElement templateTags = XElement.Parse(((Template)(new PathManager().GetTemplate(AllTemplates[CurrentTemplateIndex]))).Tag);

            // search "sku and select fields" information
            foreach (var r in templateTags.XPathSelectElements("//selectionparameters/fixedskuentryfields"))
            {
                if (r.Attribute("type") != null && r.Attribute("type").Value.Equals("onepay"))
                {
                    Order orderItem = new OrderManager().GetBatchProcessOrders(CartContext.OrderId);
                    foreach (Sku s in orderItem.SkuItems)
                    {
                        s.LoadAttributeValues();
                        try
                        {
                            if (s.AttributeValues["relatedonepaysku"] != null && !s.AttributeValues["relatedonepaysku"].Value.Equals(""))
                            {
                                int skuId = Convert.ToInt32(s.AttributeValues["relatedonepaysku"].Value);
                                skusAndQuantities.Add(skuId, 1);
                            }
                        }
                        catch
                        {
                        }
                    }

                    foreach (Sku s in CartContext.CartInfo.CartItems)
                    {
                        s.LoadAttributeValues();
                        try
                        {
                            if (s.AttributeValues["relatedonepaysku"] != null && !s.AttributeValues["relatedonepaysku"].Value.Equals(""))
                            {
                                int skuId = Convert.ToInt32(s.AttributeValues["relatedonepaysku"].Value);
                                skusAndQuantities.Add(skuId, 1);
                            }
                        }
                        catch
                        {
                        }
                    }
                }
                else
                {
                    if (r.Attribute("usecondition") == null ||
                        MatchesCondition(templateTags.XPathSelectElement("//selectionparameters/conditions"), r.Attribute("usecondition").Value))
                    {
                        foreach (var s in r.XPathSelectElements("sku"))
                        {
                            int    skuId     = Convert.ToInt32(s.Attribute("id").Value);
                            string fieldName = null;

                            // read quantity
                            int      quantity   = 0;
                            XElement quantField = s.XPathSelectElement("field[@what = 'quantity']");
                            if (quantField != null)
                            {
                                if (quantField.Attribute("name") != null)
                                {
                                    fieldName = quantField.Attribute("name").Value;

                                    if (int.TryParse(Request.Form[fieldName], out quantity))
                                    {
                                        skusAndQuantities.Add(skuId, quantity);
                                    }
                                }
                                else if (quantField.Attribute("skuid") != null)
                                {
                                    Sku matchSku = CartContext.CartInfo.CartItems.FirstOrDefault(x => { return(x.SkuId == int.Parse(quantField.Attribute("skuid").Value)); });

                                    if (matchSku != null)
                                    {
                                        skusAndQuantities.Add(skuId, matchSku.Quantity);
                                    }
                                    else
                                    {
                                        skusAndQuantities.Add(skuId, Convert.ToInt32((quantField.Attribute("defaultvalue") ?? new XAttribute("0", "0")).Value));
                                    }
                                }
                                else
                                {
                                    skusAndQuantities.Add(skuId, Convert.ToInt32((quantField.Attribute("defaultvalue") ?? new XAttribute("0", "0")).Value));
                                }
                            }
                        }
                    }
                }
            }
        }
示例#23
0
        public ClientTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, OrderManager orderManager, int clientIndex)
        {
            var admin     = widget.Get <LabelWidget>("ADMIN");
            var adminFont = Game.Renderer.Fonts[admin.Font];

            var latency     = widget.Get <LabelWidget>("LATENCY");
            var latencyFont = Game.Renderer.Fonts[latency.Font];

            var latencyPrefix     = widget.Get <LabelWidget>("LATENCY_PREFIX");
            var latencyPrefixFont = Game.Renderer.Fonts[latencyPrefix.Font];

            var ip          = widget.Get <LabelWidget>("IP");
            var addressFont = Game.Renderer.Fonts[ip.Font];

            var location     = widget.Get <LabelWidget>("LOCATION");
            var locationFont = Game.Renderer.Fonts[location.Font];

            var locationOffset = location.Bounds.Y;
            var addressOffset  = ip.Bounds.Y;
            var latencyOffset  = latency.Bounds.Y;
            var tooltipHeight  = widget.Bounds.Height;

            var margin = widget.Bounds.Width;

            tooltipContainer.IsVisible    = () => (orderManager.LobbyInfo.ClientWithIndex(clientIndex) != null);
            tooltipContainer.BeforeRender = () =>
            {
                var latencyPrefixSize = latencyPrefix.Bounds.X + latencyPrefixFont.Measure(latencyPrefix.GetText() + " ").X;
                var width             = Math.Max(locationFont.Measure(location.GetText()).X, Math.Max(adminFont.Measure(admin.GetText()).X,
                                                                                                      Math.Max(addressFont.Measure(ip.GetText()).X, latencyPrefixSize + latencyFont.Measure(latency.GetText()).X)));
                widget.Bounds.Width   = width + 2 * margin;
                latency.Bounds.Width  = widget.Bounds.Width;
                ip.Bounds.Width       = widget.Bounds.Width;
                admin.Bounds.Width    = widget.Bounds.Width;
                location.Bounds.Width = widget.Bounds.Width;

                ip.Bounds.Y          = addressOffset;
                latency.Bounds.Y     = latencyOffset;
                location.Bounds.Y    = locationOffset;
                widget.Bounds.Height = tooltipHeight;

                if (admin.IsVisible())
                {
                    ip.Bounds.Y          += admin.Bounds.Height;
                    latency.Bounds.Y     += admin.Bounds.Height;
                    location.Bounds.Y    += admin.Bounds.Height;
                    widget.Bounds.Height += admin.Bounds.Height;
                }

                latencyPrefix.Bounds.Y = latency.Bounds.Y;
                latency.Bounds.X       = latencyPrefixSize;
            };

            admin.IsVisible = () => orderManager.LobbyInfo.ClientWithIndex(clientIndex).IsAdmin;
            var client = orderManager.LobbyInfo.ClientWithIndex(clientIndex);
            var ping   = orderManager.LobbyInfo.PingFromClient(client);

            latency.GetText  = () => LobbyUtils.LatencyDescription(ping);
            latency.GetColor = () => LobbyUtils.LatencyColor(ping);
            var address = orderManager.LobbyInfo.ClientWithIndex(clientIndex).IpAddress;

            if (address == "127.0.0.1" && UPnP.NatDevice != null)
            {
                address = UPnP.NatDevice.GetExternalIP().ToString();
            }
            var cachedDescriptiveIP = LobbyUtils.DescriptiveIpAddress(address);

            ip.GetText = () => cachedDescriptiveIP;
            var cachedCountryLookup = LobbyUtils.LookupCountry(address);

            location.GetText = () => cachedCountryLookup;
        }
 public OrderManagerShould()
 {
     _db           = new DatabaseInterface("BAGOLOOT_TEST_DB");
     _orderManager = new OrderManager(_db);
 }
示例#25
0
        /// <summary>
        /// Serves the next order retrieved from the manager
        /// </summary>
        public void MoveToFloor(OrderManager manager)
        {
            m_stopped = false;
            Order dest = manager.NextOrder;

            if (dest.destFloor > LastFloor)
            {
                ChangeDirection(Direction.Up);
            }
            else if (dest.destFloor < LastFloor)
            {
                ChangeDirection(Direction.Down);
            }
            else
            {
                if (m_lastDirn == Direction.Up)
                {
                    ChangeDirection(Direction.Down);
                }
                else // LastDirection == Direction.Down (also after initialization)
                {
                    ChangeDirection(Direction.Up);
                }
            }
            int tmpFloor, prevFloor = -1;

            try
            {
                Console.WriteLine("Moving to floor...");
                while ((tmpFloor = m_car.FloorSensorSignal) != dest.destFloor)
                {
                    if (tmpFloor != -1 && tmpFloor != prevFloor)
                    {
                        prevFloor = tmpFloor;
                        var receivers = PassedByFloor.GetInvocationList();
                        foreach (Action <FloorEventArgs> receiver in receivers)
                        {
                            receiver.BeginInvoke(tmpFloor, null, null);
                        }
                    }
                    CheckStopped();
                    if (manager.OrdersAvailable)
                    {
                        dest = manager.NextOrder;
                    }
                }
                ChangeDirection(Direction.Stop);
                var recvs = PassedByFloor.GetInvocationList();
                foreach (Action <FloorEventArgs> receiver in recvs)
                {
                    receiver.BeginInvoke(tmpFloor, null, null);
                }

                m_car.DoorOpen();
                ArrivedAtFloor(dest);
                Thread.Sleep(2000);
                m_car.DoorClose();
            }
            catch (ElevatorStoppedException)
            {
                m_car.MotorDirection = Direction.Stop;
                EmergencyStopped(new EmergencyStopEventArgs(LastFloor, m_car.FloorSensorSignal, m_lastDirn));
            }
        }
示例#26
0
        public void PrcessData(MarketData marketData)
        {
            if (!isStart)
            {
                return;
            }

            InstrumentStrategy instrumentStrategy = dictStrategies[marketData.InstrumentId];

            if (!instrumentStrategy.StartTrade)
            {
                return;
            }

            foreach (UserStrategy strategy in instrumentStrategy.Strategies)
            {
                if (!strategy.AutoTrade)
                {
                    continue;
                }

                if (needWait)
                {
                    tick++;
                    if (tick >= 240)
                    {
                        needWait = false;
                        tick     = 0;
                    }
                    return;
                }

                var sc = (StringCollection)InstrumentType.Default[marketData.Code];

                var today = DateTime.Today;

                if (sc != null)
                {
                    foreach (var time in sc)
                    {
                        int hour   = Convert.ToInt32(time.Split(':')[0]);
                        int minute = Convert.ToInt32(time.Split(':')[1]);



                        var endTime = new DateTime(today.Year, today.Month, today.Day, hour, minute, 0);

                        if (endTime > DateTime.Now && DateTime.Now > endTime.AddMinutes(-1))
                        {
                            OrderManager.CancelAllOrder();
                            needWait = true;
                            log.Info("canceling order");
                            return;
                        }
                    }
                }


                List <Order> orders = strategy.Match(marketData);

                foreach (Order order in orders)
                {
                    order.Unit = instrumentStrategy.VolumeMultiple;

                    if (order.Direction == TThostFtdcDirectionType.Buy)
                    {
                        order.UseMargin = order.Price * order.Unit * order.Volume * instrumentStrategy.LongMarginRatio;
                    }
                    else
                    {
                        order.UseMargin = order.Price * order.Unit * order.Volume * instrumentStrategy.ShortMarginRatio;
                    }

                    log.Info(order);
                    OrderManager.OrderInsert(order);
                }
            }
        }
示例#27
0
        internal LobbyLogic(Widget widget, WorldRenderer worldRenderer, OrderManager orderManager,
                            Action onExit, Action onStart, bool skirmishMode, Ruleset modRules)
        {
            lobby             = widget;
            this.orderManager = orderManager;
            this.onStart      = onStart;
            this.onExit       = onExit;
            this.skirmishMode = skirmishMode;
            this.modRules     = modRules;
            shellmapWorld     = worldRenderer.World;

            orderManager.AddChatLine    += AddChatLine;
            Game.LobbyInfoChanged       += UpdateCurrentMap;
            Game.LobbyInfoChanged       += UpdatePlayerList;
            Game.BeforeGameStart        += OnGameStart;
            Game.ConnectionStateChanged += ConnectionStateChanged;

            var name = lobby.GetOrNull <LabelWidget>("SERVER_NAME");

            if (name != null)
            {
                name.GetText = () => orderManager.LobbyInfo.GlobalSettings.ServerName;
            }

            Ui.LoadWidget("LOBBY_MAP_PREVIEW", lobby.Get("MAP_PREVIEW_ROOT"), new WidgetArgs
            {
                { "orderManager", orderManager },
                { "lobby", this }
            });

            UpdateCurrentMap();
            players           = Ui.LoadWidget <ScrollPanelWidget>("LOBBY_PLAYER_BIN", lobby.Get("PLAYER_BIN_ROOT"), new WidgetArgs());
            players.IsVisible = () => panel == PanelType.Players;

            var playerBinHeaders = lobby.GetOrNull <ContainerWidget>("LABEL_CONTAINER");

            if (playerBinHeaders != null)
            {
                playerBinHeaders.IsVisible = () => panel == PanelType.Players;
            }

            editablePlayerTemplate       = players.Get("TEMPLATE_EDITABLE_PLAYER");
            nonEditablePlayerTemplate    = players.Get("TEMPLATE_NONEDITABLE_PLAYER");
            emptySlotTemplate            = players.Get("TEMPLATE_EMPTY");
            editableSpectatorTemplate    = players.Get("TEMPLATE_EDITABLE_SPECTATOR");
            nonEditableSpectatorTemplate = players.Get("TEMPLATE_NONEDITABLE_SPECTATOR");
            newSpectatorTemplate         = players.Get("TEMPLATE_NEW_SPECTATOR");
            colorPreview       = lobby.Get <ColorPreviewManagerWidget>("COLOR_MANAGER");
            colorPreview.Color = Game.Settings.Player.Color;

            foreach (var f in modRules.Actors["world"].Traits.WithInterface <FactionInfo>())
            {
                factions.Add(f.InternalName, new LobbyFaction {
                    Selectable = f.Selectable, Name = f.Name, Side = f.Side, Description = f.Description
                });
            }

            var         gameStarting          = false;
            Func <bool> configurationDisabled = () => !Game.IsHost || gameStarting ||
                                                panel == PanelType.Kick || panel == PanelType.ForceStart ||
                                                orderManager.LocalClient == null || orderManager.LocalClient.IsReady;

            var mapButton = lobby.GetOrNull <ButtonWidget>("CHANGEMAP_BUTTON");

            if (mapButton != null)
            {
                mapButton.IsDisabled = () => gameStarting || panel == PanelType.Kick || panel == PanelType.ForceStart ||
                                       orderManager.LocalClient == null || orderManager.LocalClient.IsReady;
                mapButton.OnClick = () =>
                {
                    var onSelect = new Action <string>(uid =>
                    {
                        // Don't select the same map again
                        if (uid == Map.Uid)
                        {
                            return;
                        }

                        orderManager.IssueOrder(Order.Command("map " + uid));
                        Game.Settings.Server.Map = uid;
                        Game.Settings.Save();
                    });

                    Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
                    {
                        { "initialMap", Map.Uid },
                        { "initialTab", MapClassification.System },
                        { "onExit", DoNothing },
                        { "onSelect", Game.IsHost ? onSelect : null },
                        { "filter", MapVisibility.Lobby },
                    });
                };
            }

            var slotsButton = lobby.GetOrNull <DropDownButtonWidget>("SLOTS_DROPDOWNBUTTON");

            if (slotsButton != null)
            {
                slotsButton.IsDisabled = () => configurationDisabled() || panel != PanelType.Players ||
                                         Map.RuleStatus != MapRuleStatus.Cached || !orderManager.LobbyInfo.Slots.Values.Any(s => s.AllowBots || !s.LockTeam);

                var botNames = modRules.Actors["player"].Traits.WithInterface <IBotInfo>().Select(t => t.Name);
                slotsButton.OnMouseDown = _ =>
                {
                    var options = new Dictionary <string, IEnumerable <DropDownOption> >();

                    var botController = orderManager.LobbyInfo.Clients.FirstOrDefault(c => c.IsAdmin);
                    if (orderManager.LobbyInfo.Slots.Values.Any(s => s.AllowBots))
                    {
                        var botOptions = new List <DropDownOption>()
                        {
                            new DropDownOption()
                            {
                                Title      = "Add",
                                IsSelected = () => false,
                                OnClick    = () =>
                                {
                                    foreach (var slot in orderManager.LobbyInfo.Slots)
                                    {
                                        var bot = botNames.Random(Game.CosmeticRandom);
                                        var c   = orderManager.LobbyInfo.ClientInSlot(slot.Key);
                                        if (slot.Value.AllowBots == true && (c == null || c.Bot != null))
                                        {
                                            orderManager.IssueOrder(Order.Command("slot_bot {0} {1} {2}".F(slot.Key, botController.Index, bot)));
                                        }
                                    }
                                }
                            }
                        };

                        if (orderManager.LobbyInfo.Clients.Any(c => c.Bot != null))
                        {
                            botOptions.Add(new DropDownOption()
                            {
                                Title      = "Remove",
                                IsSelected = () => false,
                                OnClick    = () =>
                                {
                                    foreach (var slot in orderManager.LobbyInfo.Slots)
                                    {
                                        var c = orderManager.LobbyInfo.ClientInSlot(slot.Key);
                                        if (c != null && c.Bot != null)
                                        {
                                            orderManager.IssueOrder(Order.Command("slot_open " + slot.Value.PlayerReference));
                                        }
                                    }
                                }
                            });
                        }

                        options.Add("Configure Bots", botOptions);
                    }

                    var teamCount = (orderManager.LobbyInfo.Slots.Count(s => !s.Value.LockTeam && orderManager.LobbyInfo.ClientInSlot(s.Key) != null) + 1) / 2;
                    if (teamCount >= 1)
                    {
                        var teamOptions = Enumerable.Range(2, teamCount - 1).Reverse().Select(d => new DropDownOption
                        {
                            Title      = "{0} Teams".F(d),
                            IsSelected = () => false,
                            OnClick    = () => orderManager.IssueOrder(Order.Command("assignteams {0}".F(d.ToString())))
                        }).ToList();

                        if (orderManager.LobbyInfo.Slots.Any(s => s.Value.AllowBots))
                        {
                            teamOptions.Add(new DropDownOption
                            {
                                Title      = "Humans vs Bots",
                                IsSelected = () => false,
                                OnClick    = () => orderManager.IssueOrder(Order.Command("assignteams 1"))
                            });
                        }

                        teamOptions.Add(new DropDownOption
                        {
                            Title      = "Free for all",
                            IsSelected = () => false,
                            OnClick    = () => orderManager.IssueOrder(Order.Command("assignteams 0"))
                        });

                        options.Add("Configure Teams", teamOptions);
                    }

                    Func <DropDownOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                    {
                        var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                        item.Get <LabelWidget>("LABEL").GetText = () => option.Title;
                        return(item);
                    };
                    slotsButton.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 175, options, setupItem);
                };
            }

            var optionsBin = Ui.LoadWidget("LOBBY_OPTIONS_BIN", lobby, new WidgetArgs());

            optionsBin.IsVisible = () => panel == PanelType.Options;

            var optionsButton = lobby.Get <ButtonWidget>("OPTIONS_BUTTON");

            optionsButton.IsDisabled = () => Map.RuleStatus != MapRuleStatus.Cached || panel == PanelType.Kick || panel == PanelType.ForceStart;
            optionsButton.GetText    = () => panel == PanelType.Options ? "Players" : "Options";
            optionsButton.OnClick    = () => panel = (panel == PanelType.Options) ? PanelType.Players : PanelType.Options;

            // Force start panel
            Action startGame = () =>
            {
                gameStarting = true;
                orderManager.IssueOrder(Order.Command("startgame"));
            };

            var startGameButton = lobby.GetOrNull <ButtonWidget>("START_GAME_BUTTON");

            if (startGameButton != null)
            {
                startGameButton.IsDisabled = () => configurationDisabled() || Map.RuleStatus != MapRuleStatus.Cached ||
                                             orderManager.LobbyInfo.Slots.Any(sl => sl.Value.Required && orderManager.LobbyInfo.ClientInSlot(sl.Key) == null);
                startGameButton.OnClick = () =>
                {
                    Func <KeyValuePair <string, Session.Slot>, bool> notReady = sl =>
                    {
                        var cl = orderManager.LobbyInfo.ClientInSlot(sl.Key);

                        // Bots and admins don't count
                        return(cl != null && !cl.IsAdmin && cl.Bot == null && !cl.IsReady);
                    };

                    if (orderManager.LobbyInfo.Slots.Any(notReady))
                    {
                        panel = PanelType.ForceStart;
                    }
                    else
                    {
                        startGame();
                    }
                };
            }

            var forceStartBin = Ui.LoadWidget("FORCE_START_DIALOG", lobby, new WidgetArgs());

            forceStartBin.IsVisible = () => panel == PanelType.ForceStart;
            forceStartBin.Get("KICK_WARNING").IsVisible               = () => orderManager.LobbyInfo.Clients.Any(c => c.IsInvalid);
            forceStartBin.Get <ButtonWidget>("OK_BUTTON").OnClick     = startGame;
            forceStartBin.Get <ButtonWidget>("CANCEL_BUTTON").OnClick = () => panel = PanelType.Players;

            // Options panel
            var allowCheats = optionsBin.GetOrNull <CheckboxWidget>("ALLOWCHEATS_CHECKBOX");

            if (allowCheats != null)
            {
                allowCheats.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
                allowCheats.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.Cheats.HasValue || configurationDisabled();
                allowCheats.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                           "allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats)));
            }

            var crates = optionsBin.GetOrNull <CheckboxWidget>("CRATES_CHECKBOX");

            if (crates != null)
            {
                crates.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.Crates;
                crates.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.Crates.HasValue || configurationDisabled();
                crates.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                      "crates {0}".F(!orderManager.LobbyInfo.GlobalSettings.Crates)));
            }

            var creeps = optionsBin.GetOrNull <CheckboxWidget>("CREEPS_CHECKBOX");

            if (creeps != null)
            {
                creeps.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.Creeps;
                creeps.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.Creeps.HasValue || configurationDisabled();
                creeps.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                      "creeps {0}".F(!orderManager.LobbyInfo.GlobalSettings.Creeps)));
            }

            var allybuildradius = optionsBin.GetOrNull <CheckboxWidget>("ALLYBUILDRADIUS_CHECKBOX");

            if (allybuildradius != null)
            {
                allybuildradius.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.AllyBuildRadius;
                allybuildradius.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.AllyBuildRadius.HasValue || configurationDisabled();
                allybuildradius.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                               "allybuildradius {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllyBuildRadius)));
            }

            var fragileAlliance = optionsBin.GetOrNull <CheckboxWidget>("FRAGILEALLIANCES_CHECKBOX");

            if (fragileAlliance != null)
            {
                fragileAlliance.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.FragileAlliances;
                fragileAlliance.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.FragileAlliances.HasValue || configurationDisabled();
                fragileAlliance.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                               "fragilealliance {0}".F(!orderManager.LobbyInfo.GlobalSettings.FragileAlliances)));
            }

            var shortGame = optionsBin.GetOrNull <CheckboxWidget>("SHORTGAME_CHECKBOX");

            if (shortGame != null)
            {
                shortGame.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.ShortGame;
                shortGame.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.ShortGame.HasValue || configurationDisabled();
                shortGame.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                         "shortgame {0}".F(!orderManager.LobbyInfo.GlobalSettings.ShortGame)));
            }

            var difficulty = optionsBin.GetOrNull <DropDownButtonWidget>("DIFFICULTY_DROPDOWNBUTTON");

            if (difficulty != null)
            {
                difficulty.IsVisible   = () => Map.Status == MapStatus.Available && Map.Map.Options.Difficulties.Any();
                difficulty.IsDisabled  = () => Map.Status != MapStatus.Available || configurationDisabled();
                difficulty.GetText     = () => orderManager.LobbyInfo.GlobalSettings.Difficulty;
                difficulty.OnMouseDown = _ =>
                {
                    var options = Map.Map.Options.Difficulties.Select(d => new DropDownOption
                    {
                        Title      = d,
                        IsSelected = () => orderManager.LobbyInfo.GlobalSettings.Difficulty == d,
                        OnClick    = () => orderManager.IssueOrder(Order.Command("difficulty {0}".F(d)))
                    });
                    Func <DropDownOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                    {
                        var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                        item.Get <LabelWidget>("LABEL").GetText = () => option.Title;
                        return(item);
                    };
                    difficulty.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", options.Count() * 30, options, setupItem);
                };

                optionsBin.Get <LabelWidget>("DIFFICULTY_DESC").IsVisible = difficulty.IsVisible;
            }

            var startingUnits = optionsBin.GetOrNull <DropDownButtonWidget>("STARTINGUNITS_DROPDOWNBUTTON");

            if (startingUnits != null)
            {
                var startUnitsInfo = modRules.Actors["world"].Traits.WithInterface <MPStartUnitsInfo>();
                var classes        = startUnitsInfo.Select(a => a.Class).Distinct();
                Func <string, string> className = c =>
                {
                    var selectedClass = startUnitsInfo.Where(s => s.Class == c).Select(u => u.ClassName).FirstOrDefault();
                    return(selectedClass != null ? selectedClass : c);
                };

                startingUnits.IsDisabled = () => Map.Status != MapStatus.Available ||
                                           !Map.Map.Options.ConfigurableStartingUnits || configurationDisabled();
                startingUnits.GetText = () => Map.Status != MapStatus.Available ||
                                        !Map.Map.Options.ConfigurableStartingUnits ? "Not Available" : className(orderManager.LobbyInfo.GlobalSettings.StartingUnitsClass);
                startingUnits.OnMouseDown = _ =>
                {
                    var options = classes.Select(c => new DropDownOption
                    {
                        Title      = className(c),
                        IsSelected = () => orderManager.LobbyInfo.GlobalSettings.StartingUnitsClass == c,
                        OnClick    = () => orderManager.IssueOrder(Order.Command("startingunits {0}".F(c)))
                    });

                    Func <DropDownOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                    {
                        var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                        item.Get <LabelWidget>("LABEL").GetText = () => option.Title;
                        return(item);
                    };

                    startingUnits.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", options.Count() * 30, options, setupItem);
                };

                optionsBin.Get <LabelWidget>("STARTINGUNITS_DESC").IsVisible = startingUnits.IsVisible;
            }

            var startingCash = optionsBin.GetOrNull <DropDownButtonWidget>("STARTINGCASH_DROPDOWNBUTTON");

            if (startingCash != null)
            {
                startingCash.IsDisabled = () => Map.Status != MapStatus.Available ||
                                          Map.Map.Options.StartingCash.HasValue || configurationDisabled();
                startingCash.GetText = () => Map.Status != MapStatus.Available ||
                                       Map.Map.Options.StartingCash.HasValue ? "Not Available" : "${0}".F(orderManager.LobbyInfo.GlobalSettings.StartingCash);
                startingCash.OnMouseDown = _ =>
                {
                    var options = modRules.Actors["player"].Traits.Get <PlayerResourcesInfo>().SelectableCash.Select(c => new DropDownOption
                    {
                        Title      = "${0}".F(c),
                        IsSelected = () => orderManager.LobbyInfo.GlobalSettings.StartingCash == c,
                        OnClick    = () => orderManager.IssueOrder(Order.Command("startingcash {0}".F(c)))
                    });

                    Func <DropDownOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                    {
                        var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                        item.Get <LabelWidget>("LABEL").GetText = () => option.Title;
                        return(item);
                    };

                    startingCash.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", options.Count() * 30, options, setupItem);
                };
            }

            var techLevel = optionsBin.GetOrNull <DropDownButtonWidget>("TECHLEVEL_DROPDOWNBUTTON");

            if (techLevel != null)
            {
                var techTraits = modRules.Actors["player"].Traits.WithInterface <ProvidesTechPrerequisiteInfo>().ToList();
                techLevel.IsVisible = () => techTraits.Count > 0;

                var techLevelDescription = optionsBin.GetOrNull <LabelWidget>("TECHLEVEL_DESC");
                if (techLevelDescription != null)
                {
                    techLevelDescription.IsVisible = () => techTraits.Count > 0;
                }

                techLevel.IsDisabled = () => Map.Status != MapStatus.Available ||
                                       Map.Map.Options.TechLevel != null || configurationDisabled() || techTraits.Count <= 1;
                techLevel.GetText = () => Map.Status != MapStatus.Available ||
                                    Map.Map.Options.TechLevel != null ? "Not Available" : "{0}".F(orderManager.LobbyInfo.GlobalSettings.TechLevel);
                techLevel.OnMouseDown = _ =>
                {
                    var options = techTraits.Select(c => new DropDownOption
                    {
                        Title      = "{0}".F(c.Name),
                        IsSelected = () => orderManager.LobbyInfo.GlobalSettings.TechLevel == c.Name,
                        OnClick    = () => orderManager.IssueOrder(Order.Command("techlevel {0}".F(c.Name)))
                    });

                    Func <DropDownOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                    {
                        var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                        item.Get <LabelWidget>("LABEL").GetText = () => option.Title;
                        return(item);
                    };

                    techLevel.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", options.Count() * 30, options, setupItem);
                };
            }

            var enableShroud = optionsBin.GetOrNull <CheckboxWidget>("SHROUD_CHECKBOX");

            if (enableShroud != null)
            {
                enableShroud.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.Shroud;
                enableShroud.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.Shroud.HasValue || configurationDisabled();
                enableShroud.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                            "shroud {0}".F(!orderManager.LobbyInfo.GlobalSettings.Shroud)));
            }

            var enableFog = optionsBin.GetOrNull <CheckboxWidget>("FOG_CHECKBOX");

            if (enableFog != null)
            {
                enableFog.IsChecked  = () => orderManager.LobbyInfo.GlobalSettings.Fog;
                enableFog.IsDisabled = () => Map.Status != MapStatus.Available || Map.Map.Options.Fog.HasValue || configurationDisabled();
                enableFog.OnClick    = () => orderManager.IssueOrder(Order.Command(
                                                                         "fog {0}".F(!orderManager.LobbyInfo.GlobalSettings.Fog)));
            }

            var disconnectButton = lobby.Get <ButtonWidget>("DISCONNECT_BUTTON");

            disconnectButton.OnClick = () => { CloseWindow(); onExit(); };

            if (skirmishMode)
            {
                disconnectButton.Text = "Back";
            }

            chatLabel = lobby.Get <LabelWidget>("LABEL_CHATTYPE");
            var chatTextField = lobby.Get <TextFieldWidget>("CHAT_TEXTFIELD");

            chatTextField.TakeKeyboardFocus();
            chatTextField.OnEnterKey = () =>
            {
                if (chatTextField.Text.Length == 0)
                {
                    return(true);
                }

                // Always scroll to bottom when we've typed something
                chatPanel.ScrollToBottom();

                orderManager.IssueOrder(Order.Chat(teamChat, chatTextField.Text));
                chatTextField.Text = "";
                return(true);
            };

            chatTextField.OnTabKey = () =>
            {
                var previousText = chatTextField.Text;
                chatTextField.Text           = tabCompletion.Complete(chatTextField.Text);
                chatTextField.CursorPosition = chatTextField.Text.Length;

                if (chatTextField.Text == previousText)
                {
                    return(SwitchTeamChat());
                }
                else
                {
                    return(true);
                }
            };

            chatTextField.OnEscKey = () => { chatTextField.Text = ""; return(true); };

            chatPanel    = lobby.Get <ScrollPanelWidget>("CHAT_DISPLAY");
            chatTemplate = chatPanel.Get("CHAT_TEMPLATE");
            chatPanel.RemoveChildren();

            var musicButton = lobby.GetOrNull <ButtonWidget>("MUSIC_BUTTON");

            if (musicButton != null)
            {
                musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs
                {
                    { "onExit", DoNothing },
                    { "world", worldRenderer.World }
                });
            }

            var settingsButton = lobby.GetOrNull <ButtonWidget>("SETTINGS_BUTTON");

            if (settingsButton != null)
            {
                settingsButton.OnClick = () => Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs
                {
                    { "onExit", DoNothing },
                    { "worldRenderer", worldRenderer }
                });
            }

            // Add a bot on the first lobbyinfo update
            if (skirmishMode)
            {
                Game.LobbyInfoChanged += WidgetUtils.Once(() =>
                {
                    var slot          = orderManager.LobbyInfo.FirstEmptyBotSlot();
                    var bot           = modRules.Actors["player"].Traits.WithInterface <IBotInfo>().Select(t => t.Name).FirstOrDefault();
                    var botController = orderManager.LobbyInfo.Clients.FirstOrDefault(c => c.IsAdmin);
                    if (slot != null && bot != null)
                    {
                        orderManager.IssueOrder(Order.Command("slot_bot {0} {1} {2}".F(slot, botController.Index, bot)));
                    }
                });
            }
        }
示例#28
0
文件: FrmOrder.cs 项目: fu-kim/-
        public void FrmOrder_Load(object sender, EventArgs e)
        {
            decimal sumPay = 0;

            Transmit.FrmOrder = this;
            flpPayMain.Controls.Clear();
            string       OrderId = Transmit.FrmFoodMain.lbOrderId.Text;
            List <Order> od      = OrderManager.SelectOrderInfo(OrderId);

            if (Transmit.FrmFoodMain.llbVIP.Text == "未登录")
            {
                lbviphj.Visible  = false;
                lbVIPSum.Visible = false;
                lbsumhj.Visible  = true;
                lbSumRmb.Visible = true;
            }
            else
            {
                lbviphj.Visible  = true;
                lbVIPSum.Visible = true;
                lbsumhj.Visible  = false;
                lbSumRmb.Visible = false;
            }
            if (Transmit.FrmFoodMain.IsPays)
            {
                lbSumRmb.Text = "0";
                #region 加载订单
                for (int i = 0; i < od.Count; i++)
                {
                    FrmOrderInfo2 foi2 = new FrmOrderInfo2();
                    foi2.BackgroundImage  = Image.FromFile(Application.StartupPath + @"\Images\主界面\小已结账框.png");
                    foi2.pbxAdd.Enabled   = false;
                    foi2.pbxMinus.Enabled = false;
                    foi2.pbxImage.Image   = Image.FromFile(Application.StartupPath + @"\Images\食物\" + od[i].FName + ".jpg");
                    foi2.lbFName.Text     = od[i].FName;
                    foi2.lbFNumber.Text   = od[i].FNumber.ToString();
                    foi2.lbRMB.Text       = od[i].FPrice.ToString().Substring(0, 5);
                    double vipsum = Convert.ToDouble(foi2.lbRMB.Text);
                    foi2.lbVIP.Text = (vipsum * 0.8).ToString();
                    flpPayMain.Controls.Add(foi2);
                }
                #endregion
            }
            else
            {
                #region 判断是否有订单
                if (od.Count == 0)
                {
                    lbSumRmb.Text = "0";
                    FrmImage fi = new FrmImage();
                    flpPayMain.Controls.Add(fi);
                }
                #endregion
                #region 加载订单
                for (int i = 0; i < od.Count; i++)
                {
                    sumPay       += od[i].FPrice * od[i].FNumber;
                    lbSumRmb.Text = sumPay.ToString().Substring(0, 5);
                    double Vipsum = Convert.ToDouble(lbSumRmb.Text);
                    lbVIPSum.Text = (Vipsum * 0.8).ToString();
                    FrmOrderInfo2 foi2 = new FrmOrderInfo2();
                    foi2.pbxImage.Image = Image.FromFile(Application.StartupPath + @"\Images\食物\" + od[i].FName + ".jpg");
                    foi2.lbFName.Text   = od[i].FName;
                    foi2.lbFNumber.Text = od[i].FNumber.ToString();
                    foi2.lbRMB.Text     = od[i].FPrice.ToString().Substring(0, 5);
                    double vipsum = Convert.ToDouble(foi2.lbRMB.Text);
                    foi2.lbVIP.Text = (vipsum * 0.8).ToString();
                    flpPayMain.Controls.Add(foi2);
                }
                #endregion
            }
        }
 public OrdersDetailViewModel()
 {
     SearchCommand  = new Command(SearchCustomerWithOrders);
     _orderManager  = new OrderManager();
     CustomerOrders = new ObservableCollection <CustomerOrderViewModel>();
 }
示例#30
0
        public override bool GetOrderManager(string requestData, ref OrderManager orderManger)
        {
            try
            {
                if (orderManger == null)
                {
                    m_lastError = "获得预约订单管理信息失败:预约订单管理对象为null";
                    Logger.WriteError(m_lastError);
                    return(false);
                }

                m_httpItem.URL               = requestData;
                m_httpItem.ResultType        = ResultType.String;
                m_httpItem.Method            = "GET";
                m_httpItem.Postdata          = string.Empty;
                m_httpItem.ContentType       = "text/html";
                m_httpItem.Allowautoredirect = false;
                HttpResult html = m_httpHelper.GetHtml(m_httpItem);
                if (html.RedirectUrl.Length == 0)
                {
                    m_htmlDocument.LoadHtml(html.Html);
                    HtmlNode htmlNode = m_htmlDocument.DocumentNode.SelectSingleNode(ORDER_INFO_XPATH);
                    if (htmlNode != null)
                    {
                        HtmlNodeCollection htmlNodeCollection = htmlNode.SelectNodes("div[@class='m_l']/div[@class='m_l_1']/div[@class='con_r']/p");
                        if (htmlNodeCollection != null && htmlNodeCollection.Count == 3)
                        {
                            orderManger.Doctor.Name         = htmlNodeCollection[0].InnerHtml.Trim();
                            orderManger.Doctor.HospitalName = htmlNodeCollection[2].InnerHtml.Trim();
                        }
                        HtmlNode htmlNode2 = htmlNode.SelectSingleNode("input[@name='hosId']");
                        if (htmlNode2 != null)
                        {
                            orderManger.Doctor.HospitalId = htmlNode2.GetAttributeValue("value", "");
                        }
                        HtmlNodeCollection htmlNodeCollection2 = htmlNode.SelectNodes("input");
                        if (htmlNodeCollection2 != null && htmlNodeCollection2.Count == 14)
                        {
                            StringBuilder stringBuilder = new StringBuilder();
                            stringBuilder.Append("numId={0}&resTime={1}&resNumber={2}&");
                            for (int i = 3; i < 14; i++)
                            {
                                stringBuilder.Append(htmlNodeCollection2[i].GetAttributeValue("name", ""));
                                stringBuilder.Append("=");
                                stringBuilder.Append(htmlNodeCollection2[i].GetAttributeValue("value", ""));
                                stringBuilder.Append("&");
                            }
                            stringBuilder.Append("num={3}");
                            orderManger.CheckOrderPostUrlFormat = stringBuilder.ToString();
                        }
                        HtmlNodeCollection htmlNodeCollection3 = htmlNode.SelectNodes("div[@class='m_l']/div[@class='m_l_2']/p/span");
                        if (htmlNodeCollection3 != null && htmlNodeCollection3.Count == 3)
                        {
                            orderManger.RegisterFee       = htmlNodeCollection3[0].InnerHtml.Trim();
                            orderManger.Doctor.Department = htmlNodeCollection3[1].InnerHtml.Trim();
                            orderManger.RegisterDate      = htmlNodeCollection3[2].InnerHtml.Trim().Replace("&nbsp;", " ");
                        }
                        HtmlNodeCollection htmlNodeCollection4 = htmlNode.SelectNodes("div[@class='m_r']/div[@class='m_r_1']/table/tr/td/input");
                        if (htmlNodeCollection4 == null)
                        {
                            m_lastError = "获得预约订单管理信息失败:预约订单信息解析失败";
                            Logger.WriteError(m_lastError);
                            return(false);
                        }
                        using (IEnumerator <HtmlNode> enumerator = ((IEnumerable <HtmlNode>)htmlNodeCollection4).GetEnumerator())
                        {
                            while (enumerator.MoveNext())
                            {
                                HtmlNode current = enumerator.Current;
                                string[] array   = current.GetAttributeValue("value", "").Split(new char[]
                                {
                                    ','
                                });
                                if (array != null && array.Length == 3)
                                {
                                    OrderInfo orderInfo = new OrderInfo();
                                    orderInfo.OrderNum  = array[2];
                                    orderInfo.OrderId   = array[0];
                                    orderInfo.OrderTime = array[1];
                                    orderManger.OrderInfos.Add(orderInfo);
                                }
                            }
                        }
                    }
                }
                else
                {
                    m_lastError = "获得预约订单管理信息失败:用户未登录";
                    Logger.WriteError(m_lastError);
                    return(false);
                }
            }
            catch (Exception err)
            {
                m_lastError = "获得预约订单管理信息失败:" + err.Message;
                Logger.WriteError("获得预约订单管理信息失败", err);
                return(false);
            }
            return(true);
        }
示例#31
0
        /// <summary>
        /// Change encryption private key
        /// </summary>
        /// <param name="NewEncryptionPrivateKey">New encryption private key</param>
        public static void ChangeEncryptionPrivateKey(string NewEncryptionPrivateKey)
        {
            if (String.IsNullOrEmpty(NewEncryptionPrivateKey) || NewEncryptionPrivateKey.Length != 16)
            {
                throw new NopException("Encryption private key must be 16 characters long");
            }

            string oldEncryptionPrivateKey = SettingManager.GetSettingValue("Security.EncryptionPrivateKey");

            if (oldEncryptionPrivateKey == NewEncryptionPrivateKey)
            {
                return;
            }

            OrderCollection orders = OrderManager.LoadAllOrders();

            foreach (Order order in orders)
            {
                string decryptedCardType               = Decrypt(order.CardType, oldEncryptionPrivateKey);
                string decryptedCardName               = Decrypt(order.CardName, oldEncryptionPrivateKey);
                string decryptedCardNumber             = Decrypt(order.CardNumber, oldEncryptionPrivateKey);
                string decryptedMaskedCreditCardNumber = Decrypt(order.MaskedCreditCardNumber, oldEncryptionPrivateKey);
                string decryptedCardCVV2               = Decrypt(order.CardCVV2, oldEncryptionPrivateKey);
                string decryptedCardExpirationMonth    = Decrypt(order.CardExpirationMonth, oldEncryptionPrivateKey);
                string decryptedCardExpirationYear     = Decrypt(order.CardExpirationYear, oldEncryptionPrivateKey);

                string encryptedCardType               = Encrypt(decryptedCardType, NewEncryptionPrivateKey);
                string encryptedCardName               = Encrypt(decryptedCardName, NewEncryptionPrivateKey);
                string encryptedCardNumber             = Encrypt(decryptedCardNumber, NewEncryptionPrivateKey);
                string encryptedMaskedCreditCardNumber = Encrypt(decryptedMaskedCreditCardNumber, NewEncryptionPrivateKey);
                string encryptedCardCVV2               = Encrypt(decryptedCardCVV2, NewEncryptionPrivateKey);
                string encryptedCardExpirationMonth    = Encrypt(decryptedCardExpirationMonth, NewEncryptionPrivateKey);
                string encryptedCardExpirationYear     = Encrypt(decryptedCardExpirationYear, NewEncryptionPrivateKey);

                OrderManager.UpdateOrder(order.OrderID, order.OrderGUID, order.CustomerID,
                                         order.CustomerLanguageID, order.CustomerTaxDisplayType,
                                         order.OrderSubtotalInclTax, order.OrderSubtotalExclTax, order.OrderShippingInclTax,
                                         order.OrderShippingExclTax, order.PaymentMethodAdditionalFeeInclTax, order.PaymentMethodAdditionalFeeExclTax,
                                         order.OrderTax, order.OrderTotal, order.OrderDiscount,
                                         order.OrderSubtotalInclTaxInCustomerCurrency, order.OrderSubtotalExclTaxInCustomerCurrency,
                                         order.OrderShippingInclTaxInCustomerCurrency, order.OrderShippingExclTaxInCustomerCurrency,
                                         order.PaymentMethodAdditionalFeeInclTaxInCustomerCurrency, order.PaymentMethodAdditionalFeeExclTaxInCustomerCurrency,
                                         order.OrderTaxInCustomerCurrency, order.OrderTotalInCustomerCurrency,
                                         order.CustomerCurrencyCode, order.OrderWeight,
                                         order.AffiliateID, order.OrderStatus, order.AllowStoringCreditCardNumber,
                                         encryptedCardType, encryptedCardName, encryptedCardNumber,
                                         encryptedMaskedCreditCardNumber, encryptedCardCVV2, encryptedCardExpirationMonth, encryptedCardExpirationYear,
                                         order.PaymentMethodID, order.PaymentMethodName, order.AuthorizationTransactionID,
                                         order.AuthorizationTransactionCode, order.AuthorizationTransactionResult,
                                         order.CaptureTransactionID, order.CaptureTransactionResult, order.PurchaseOrderNumber,
                                         order.PaymentStatus, order.BillingFirstName, order.BillingLastName, order.BillingPhoneNumber,
                                         order.BillingEmail, order.BillingFaxNumber, order.BillingCompany, order.BillingAddress1,
                                         order.BillingAddress2, order.BillingCity,
                                         order.BillingStateProvince, order.BillingStateProvinceID, order.BillingZipPostalCode,
                                         order.BillingCountry, order.BillingCountryID, order.ShippingStatus,
                                         order.ShippingFirstName, order.ShippingLastName, order.ShippingPhoneNumber,
                                         order.ShippingEmail, order.ShippingFaxNumber, order.ShippingCompany,
                                         order.ShippingAddress1, order.ShippingAddress2, order.ShippingCity,
                                         order.ShippingStateProvince, order.ShippingStateProvinceID, order.ShippingZipPostalCode,
                                         order.ShippingCountry, order.ShippingCountryID,
                                         order.ShippingMethod, order.ShippingRateComputationMethodID,
                                         order.ShippedDate, order.Deleted, order.CreatedOn);
            }

            SettingManager.SetParam("Security.EncryptionPrivateKey", NewEncryptionPrivateKey);
        }
示例#32
0
文件: Game.cs 项目: openra-rs/OpenRA
        static void InnerLogicTick(OrderManager orderManager)
        {
            var tick = RunTime;

            var world = orderManager.World;

            var uiTickDelta = tick - Ui.LastTickTime;

            if (uiTickDelta >= Timestep)
            {
                // Explained below for the world tick calculation
                var integralTickTimestep = (uiTickDelta / Timestep) * Timestep;
                Ui.LastTickTime += integralTickTimestep >= TimestepJankThreshold ? integralTickTimestep : Timestep;

                Sync.RunUnsynced(Settings.Debug.SyncCheckUnsyncedCode, world, Ui.Tick);
                Cursor.Tick();
            }

            var worldTimestep  = world == null ? Timestep : world.IsLoadingGameSave ? 1 : world.Timestep;
            var worldTickDelta = tick - orderManager.LastTickTime;

            if (worldTimestep != 0 && worldTickDelta >= worldTimestep)
            {
                using (new PerfSample("tick_time"))
                {
                    // Tick the world to advance the world time to match real time:
                    //    If dt < TickJankThreshold then we should try and catch up by repeatedly ticking
                    //    If dt >= TickJankThreshold then we should accept the jank and progress at the normal rate
                    // dt is rounded down to an integer tick count in order to preserve fractional tick components.
                    var integralTickTimestep = (worldTickDelta / worldTimestep) * worldTimestep;
                    orderManager.LastTickTime += integralTickTimestep >= TimestepJankThreshold ? integralTickTimestep : worldTimestep;

                    Sound.Tick();
                    Sync.RunUnsynced(Settings.Debug.SyncCheckUnsyncedCode, world, orderManager.TickImmediate);

                    if (world == null)
                    {
                        return;
                    }

                    var isNetTick = LocalTick % NetTickScale == 0;

                    if (!isNetTick || orderManager.IsReadyForNextFrame)
                    {
                        ++orderManager.LocalFrameNumber;

                        Log.Write("debug", "--Tick: {0} ({1})", LocalTick, isNetTick ? "net" : "local");

                        if (isNetTick)
                        {
                            orderManager.Tick();
                        }

                        Sync.RunUnsynced(Settings.Debug.SyncCheckUnsyncedCode, world, () =>
                        {
                            world.OrderGenerator.Tick(world);
                        });

                        world.Tick();

                        PerfHistory.Tick();
                    }
                    else if (orderManager.NetFrameNumber == 0)
                    {
                        orderManager.LastTickTime = RunTime;
                    }

                    // Wait until we have done our first world Tick before TickRendering
                    if (orderManager.LocalFrameNumber > 0)
                    {
                        Sync.RunUnsynced(Settings.Debug.SyncCheckUnsyncedCode, world, () => world.TickRender(worldRenderer));
                    }
                }

                benchmark?.Tick(LocalTick);
            }
        }
示例#33
0
	public void ImportFisReceptie(string filepath)
	{
		Ferme_CCL ferma = new Ferme_CCL();
		bool error = false;
		string strcodbare;
		string strConn;
		int posOfSlash = filepath.LastIndexOf(@"\");

		string dirServer = StaticDataHelper.SettingsManager.CaleFizicaServer;
		string saveDir = dirServer + @"Downloads\FisiereImportateAutomat";
		if (!Directory.Exists(saveDir))
			Directory.CreateDirectory(saveDir);
		saveDir = saveDir + @"\";

		//			DataTable schemaTable;
		strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filepath + ";" + "Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
		//You must use the $ after the object you reference in the spreadsheet"+numesheet+"
		//		OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]",strConn);
		OleDbConnection cn;
		DataTable dtTables;

		cn = new OleDbConnection(strConn);
		cn.Open();
		dtTables = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
		string tblstr = dtTables.Rows[dtTables.Rows.Count - 1]["TABLE_NAME"].ToString();
		//	OleDbCommand myCommand = new OleDbCommand ("SELECT * FROM [" + tblstr+ " $]", cn);
		// make log files
		string tbldate = tblstr.Substring(4, 8);
		loggerReceptie.Info("Data: " + DateTime.Now.ToString() + " nume sheet:" + tblstr);
		loggerReceptie.Info("*****************************************************************************");
		loggerReceptie.Info("*****************************************************************************");
		loggerReceptie.Info("Data: " + DateTime.Now.ToString() + " nume sheet:" + tblstr);
		// end log files
		filepath = filepath.Replace(@"\", @"\\");


		OleDbDataAdapter myCommand = new OleDbDataAdapter();
		myCommand.SelectCommand = new OleDbCommand("SELECT * FROM [" + tblstr + "]", cn);

		DataSet myDataSet = new DataSet();
		myCommand.Fill(myDataSet);

		DataTable table;
		table = myDataSet.Tables[0];
		cn.Close();

		// For each row, print the values of each column.
		string strDataPrelevare;
		string ferma_ccl_cod = "";
		int ferma_ccl_id = 0;
		int fabricaID = 0;
		int header = 0;
		string prelevator = "";
		string datat_testare = "";
		double prelid;
		bool isNum;
		string prelevatorini = table.Rows[0][1].ToString();

		List<Order> orders = new List<Order>();
		OrderManager oManager = new OrderManager(ctx);

		foreach (DataRow row in table.Rows)
		{
			header++;

			if (header > 2 && row[4].ToString().Trim() != "")
			{

				error = false;
				strcodbare = row[4].ToString().Trim();
				if (ExistaCodBare(strcodbare) != 0)
				{
					loggerReceptie.Info("Codul de bare:" + strcodbare + " exista deja");
					error = true;
				}
				else
				{
					datat_testare = tblstr.Substring(4);
					datat_testare = datat_testare.Substring(0, 2) + "/" + datat_testare.Substring(2, 2) + "/" + datat_testare.Substring(4, 4);
					//	strDataPrelevare = row[5].ToString().Trim().Replace(@".", @"\");
					strDataPrelevare = row[7].ToString().Trim();
					prelevator = row[1].ToString().Trim();
					/*
						if (prelevator == "")
						  prelevator = prelevatorini;
						else
						  prelevatorini = prelevator;
					 */
					isNum = double.TryParse(prelevator, NumberStyles.Integer, CultureInfo.CurrentCulture, out prelid);


					loggerReceptie.Info("Codul de bare: " + strcodbare + " are inhibitor:" + row[5].ToString().Trim());
					string nrComanda = row[0].ToString().Trim();
					string strDataPrimirii = row[8].ToString().Trim();
					string numeFerma = string.Empty;

					if (!isNum)
					{
						numeFerma = row[9].ToString().Trim();
						AddMostraFCB(0, Convert.ToInt32(row[3].ToString().Trim()), strcodbare, nrComanda,
							prelevator, row[2].ToString().Trim(), strDataPrelevare, strDataPrimirii,
							datat_testare, datat_testare, numeFerma, row[10].ToString().Trim(),
							row[11].ToString().Trim(), row[12].ToString().Trim(), 0, 0, "0", "0", "0", "0", "0", "0", row[5].ToString().Trim(), "0", "0", "0");
					}
					else
					{
						if (Convert.ToInt32(prelevator) == 0)
							prelevator = strcodbare.Substring(0, 5);
						ferma_ccl_cod = strcodbare.Substring(0, 5);
						ferma_ccl_id = GetFermeCCL_ID(ferma_ccl_cod);
						if (ferma_ccl_id == 0)
						{
							loggerReceptie.Info("La id Zilnic : " + row[3].ToString().Trim() + " Codul de ferma :" + ferma_ccl_cod + " nu exista !!! Mostra nu a fost importata");
							error = true;
						}
						else
						{
							fabricaID = ferma.GetFerma(ferma_ccl_id, out numeFerma);
							loggerReceptie.Info("Gasit Ferma id: {0}; nume: {1}", ferma_ccl_id, numeFerma);
						}
						if (!error)
							try
							{
								AddMostra(0, Convert.ToInt32(row[3].ToString().Trim()), strcodbare, nrComanda, ferma_ccl_cod, ferma_ccl_id, fabricaID
									, row[5].ToString().Trim(), "0", "0", "0", "0", "0", strDataPrelevare, "0", strDataPrimirii,
									"0", datat_testare, "0", Convert.ToInt32(prelevator), 0, 0, datat_testare, "0", "0", "0");
							}
							catch (Exception ex)
							{
								loggerReceptie.Info("Adaugare mostra esuata:" + strcodbare + " " + ex.Message);
							}
					}
					Order currentOrder = orders.FirstOrDefault(o => o.FullOrderNumber == nrComanda);
					if (currentOrder != null)
					{
						currentOrder.SampleCount++;
						currentOrder.AnalyzedSampleCount++;
					}
					else
					{
						string[] arr = nrComanda.Split('-', '/');
						int orderNumber;
						if (arr.Length == 2 && int.TryParse(arr[0], out orderNumber))
						{
							DateTime dataPrimirii;
							if (!DateTime.TryParseExact(strDataPrimirii, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dataPrimirii))
							{
								dataPrimirii = DateTime.Now;
							}

							DateTime dataPrelevare;
							if (!DateTime.TryParseExact(strDataPrelevare, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dataPrelevare))
							{
								dataPrelevare = DateTime.Now;
							}

							currentOrder = new Order
							{
								AnalyzedSampleCount = 1,
								ClientId = fabricaID > 0 ? fabricaID : -1,
								ClientName = numeFerma + " (" + fabricaID + ")",
								FullOrderNumber = nrComanda,
								Imported = true,
								OrderNumber = orderNumber,
								ReceivedDate = dataPrimirii,
								SampleCount = 1,
								SampleDate = dataPrelevare
							};
							orders.Add(currentOrder);
						}
						else
						{
							loggerReceptie.Info("Adaugare comanda esuata: " + nrComanda);
						}
					}

				}
			}

		}

		oManager.Save(orders);
		ctx.SaveChanges();

		loggerReceptie.Info("Importarea fisierului de receptie a fost efectuata!");
	}
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        Boolean proceed = true;
        String[] items = SessionVariableManager.getOrderItems();
        List<InventoryItem> orderInventory = new List<InventoryItem>();
        List<TextBox> textboxes = new List<TextBox>();

        OrderManager orderManager = new OrderManager();

        foreach (String item in items)
        {
            if (item != "")
            {
                orderInventory.Add(InventoryManager.getSingleItem(Convert.ToInt32(item)));
            }
        }
        foreach (RepeaterItem rptItem in rptOrderItem.Items)
        {
            textboxes.Add((TextBox)rptItem.FindControl("txtCount"));
        }

        if (orderInventory.Count == textboxes.Count)
        {

            for (int i = 0; i < orderInventory.Count; i++)
            {
               bool success = orderManager.addItemToOrder(orderInventory[i], Convert.ToInt32(textboxes[i].Text));
               if (!success)
               {
                   lblMessage.Text = "You cannot order more than we have in inventory. Please try again! (" + orderInventory[i].getProductName() + ")";
                   proceed = false;
                   return;
               }
            }

        }
        PaymentInformation userCreditCard = PaymentManager.getUserCreditCard(Convert.ToInt32(ddlPaymentMethod.SelectedValue));
        orderManager.addPaymentInfo(userCreditCard);
        orderManager.setIsCollectOnDelivery(cbCollectOnDelivery.Checked);
        orderManager.setPaymentAmount(Convert.ToDouble(txtPaymentAmount.Text));
        if (proceed)
        {
            int orderNumber = orderManager.submitOrder();
            if (orderNumber > 0)
            {
                lblMessage.Text = "Thank you for your order. Your order number is " + orderNumber + ". Keep this number for reference.";
                btnCalculateOrder.Enabled = false;
                btnSubmit.Enabled = false;
                paymentAmountValidator.Enabled = false;
                paymentAmountRequiredValidator.Enabled = false;

                foreach (InventoryItem item in orderInventory)
                {
                    SessionVariableManager.removeItemFromCart(item.getInventoryId());

                }
            }
            else
            {
                lblMessage.Text = "Sorry, there was an error with your order. Please review your selection and try again.";
            }
        }
    }
示例#35
0
    public void VerificareBV(string filepath, string filescan)
    {
        string strConn;
        int posOfSlash = filepath.LastIndexOf(@"\");

        string dirServer = StaticDataHelper.SettingsManager.CaleFizicaServer;

        loggerReceptie.Info("*************************************************************************************************");
        loggerReceptie.Info("*************************************************************************************************");
        loggerReceptie.Info("Verificare BV start pentru fisierul {0}", filescan);

        SqlConnection cnn = new SqlConnection(CopConnectionString);
        filepath = filepath.Replace(@"\", @"\\");
        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filepath + ";" +
                  "Extended Properties='Excel 8.0;HDR=No;IMEX=1;READONLY=FALSE;'";

        OleDbConnection cn;
        DataTable dtTables;
        cn = new OleDbConnection(strConn);

        cn.Open();
        dtTables = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
        string tblstr = dtTables.Rows[dtTables.Rows.Count - 1]["TABLE_NAME"].ToString();

        OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + tblstr + "]", cn);
        OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);

        DataSet dataset = new DataSet();
        adapter.Fill(dataset);
        adapter.FillSchema(dataset, SchemaType.Source);
        DataTable table;
        table = dataset.Tables[0];
        cn.Close();
        filescan = filescan.Replace(@"\", @"\\");
        string strConns = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filescan + ";" +
                          "Extended Properties='Excel 8.0;HDR=No;IMEX=1;READONLY=FALSE'";

        OleDbConnection cns;
        DataTable dtScanTables;
        cns = new OleDbConnection(strConns);
        cns.Open();
        dtScanTables = cns.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
        string tblscan = dtScanTables.Rows[0]["TABLE_NAME"].ToString();
        OleDbDataAdapter secCommand = new OleDbDataAdapter();
        secCommand.SelectCommand = new OleDbCommand("SELECT * FROM [" + tblscan + "]", cns);
        DataSet secDataSet = new DataSet();
        secCommand.Fill(secDataSet);
        DataTable scan;
        scan = secDataSet.Tables[0];
        cns.Close();
        try
        {
            // For each row, print the values of each column.
            string dataprelevare = "";
            double litri = 0.0;
            bool isNum;
            string nrmatricol = "";
            string codbare = "";
            string prelevator = "";
            string serieanaliza = "";
            Ferme_CCL ferma = new Ferme_CCL();
            string filename = Path.GetFileNameWithoutExtension(filescan);
            string[] tokens = filename.Split('_');
            string codexpl = string.Empty;
            if (tokens.Count() > 2)
            {
                codexpl = tokens[2].Replace(" ", "").Replace("-", "");
            }
            if (string.IsNullOrEmpty(codexpl))
            {
                throw new Exception(string.Format("Nu am putut extrage cod de exploatatie din numele fisierului: {0}", filename));
            }
            loggerReceptie.Info("Am obtinut codul de exploatatie: {0} din numele fisierului: {1}", codexpl, filename);
            string numeFerma;
            int fermaid = ferma.GetFermeExpl(codexpl, out numeFerma);
            if (fermaid <= 0)
            {
                throw new Exception(string.Format("Nu am gasit ID pentru codul de exploatatie: {0}", codexpl));
            }
            loggerReceptie.Info("Am gasit ID-ul de ferma: {0} cu numele {1} pentrul codul de exploatatie: {2}", fermaid, numeFerma, codexpl);

            List<Order> orders = new List<Order>();
            OrderManager oManager = new OrderManager(ctx);

            for (int j = 1; j < scan.Rows.Count; j++)
            {
                DataRow row = scan.Rows[j];
                serieanaliza = row[0].ToString().Trim();
                nrmatricol = row[1].ToString().Trim();
                codbare = row[2].ToString().Trim();
                dataprelevare = row[3].ToString().Trim();
                string cant = row[4].ToString().Trim();
                prelevator = row[5].ToString().Trim();
                if (cant.Length > 0)
                {
                    isNum = double.TryParse(cant, NumberStyles.Integer, CultureInfo.CreateSpecificCulture("en-GB"),
                        out litri);
                }

                bool found = false;
                if (codbare.Length > 0 && nrmatricol.Length > 0)
                {
                    for (int i = 2; i < dataset.Tables[0].Rows.Count; i++)
                    {
                        if (codbare.Equals(dataset.Tables[0].Rows[i][4].ToString().Trim()))
                        {
                            found = true;
                            dataset.Tables[0].Rows[i][0] = serieanaliza;
                            dataset.Tables[0].Rows[i][3] = nrmatricol;
                            dataset.Tables[0].Rows[i][1] = prelevator;
                            dataset.Tables[0].Rows[i][5] = cant;
                            dataset.Tables[0].Rows[i][7] = dataprelevare;
                            dataset.Tables[0].Rows[i].AcceptChanges();
                            break;
                        }
                    }
                    if (!found)
                    {
                        loggerReceptie.Info("Codul de bare: {0} - {1} nu exista!", codbare, nrmatricol);
                    }
                }
            }
            //  adapter.Update(dataset.Tables[0]);
            dataset.Tables[0].AcceptChanges();
            dataset.AcceptChanges();

            if (false)
            {
                WriteMergedFileForDebug(dataset);
            }

            table = dataset.Tables[0];
            //
            // For each row, print the values of each column.
            DateTime dataPrelevare = DateTime.Now;
            string ferma_ccl_cod = "";
            string crot = "";
            string rasa = "";
            int ferma_ccl_id = 0;
            int fabricaID = 0;
            int header = 0;
            bool error = false;
            string strcodbare = "";
            string prelevatorini = table.Rows[0][1].ToString();
            DateTime datat_testare = new DateTime(int.Parse(tblstr.Substring(8, 4)), int.Parse(tblstr.Substring(6, 2)), int.Parse(tblstr.Substring(4, 2)));

            error = !VerificareFisierReceptie(table, 8, 7);
            if (error)
            {
                loggerReceptie.Error("Eroare la verificare fisierului, oprire import");
                return;
            }

            foreach (DataRow row in table.Rows)
            {
                header++;

                if (header > 2 && row[3].ToString().Trim() != "")
                {
                    error = false;
                    crot = row[3].ToString().Trim();
                    strcodbare = row[4].ToString().Trim();
                    if (ExistaCodBare(strcodbare) != 0)
                    {
                        loggerReceptie.Info("Codul de bare: {0} exista deja!", strcodbare);
                        error = true;
                    }
                    else
                    {
                        //	strDataPrelevare = row[5].ToString().Trim().Replace(@".", @"\");
                        //try
                        //{
                        dataPrelevare = DateTime.ParseExact(row[7].ToString().Trim().Substring(0, 10), "dd/MM/yyyy", new CultureInfo("fr-FR"));
                        //}
                        //catch (Exception de)
                        //{
                        //    loggerReceptie.Error("Eroare la interpretarea date pentru crotalie: {0}, data: {1}, eroare: {2}", crot, dataPrelevare.ToShortDateString(), de.Message);
                        //}
                        prelevator = row[1].ToString().Trim();

                        string lit = row[5].ToString().Trim();
                        ferma_ccl_cod = crot;
                        ferma_ccl_id = fermaid;


                        if (ferma_ccl_id == 0)
                        {
                            error = true;
                            loggerReceptie.Error("Nu exista ferma pt. codul de exploatatie:" + codexpl);
                        }
                        else
                        {
                            string crotalia = ferma.GetFermeCrot(crot, fermaid);
                            if (crotalia == null || crotalia.Trim().Length == 0)
                                loggerReceptie.Error("Nu exista crotalie pt. codul: {0}, crotalia: {1}", strcodbare, crot);
                        }
                        string farmName;
                        fabricaID = ferma.GetFerma(ferma_ccl_id, out farmName);
                        rasa = ferma.GetFermeRasa(crot, fermaid);
                        if (!error)
                        {
                            try
                            {
                                string nrComanda = row[0].ToString().Trim();

                                DateTime dataPrimirii = DateTime.ParseExact(row[8].ToString().Trim(), "dd/MM/yyyy", new CultureInfo("fr-FR"));

                                AddMostra(0, Convert.ToInt32(row[2].ToString().Trim()), strcodbare, nrComanda,
                                    ferma_ccl_cod, ferma_ccl_id, fabricaID, "", lit
                                    , "0", "0", "0", "0", dataPrelevare, "0", dataPrimirii,
                                    "0", datat_testare, "0", 0, prelevator, 0, 0, datat_testare, "0", "0", "0", rasa);
                                //loggerReceptie.Info("Mostra cod bare {0} pentru ferma Id {1}, fabrica Id {2}, nr comanda {3} adaugata cu succes.", strcodbare, ferma_ccl_id, fabricaID, nrComanda);
                                Order currentOrder = orders.FirstOrDefault(o => o.FullOrderNumber == nrComanda);
                                if (currentOrder != null)
                                {
                                    currentOrder.SampleCount++;
                                    currentOrder.AnalyzedSampleCount++;
                                }
                                else
                                {
                                    string[] arr = nrComanda.Split('-', '/');
                                    int orderNumber;
                                    if (arr.Length == 3 && int.TryParse(arr[1], out orderNumber))
                                    {
                                        currentOrder = new Order
                                        {
                                            AnalyzedSampleCount = 1,
                                            ClientId = fabricaID > 0 ? fabricaID : -1,
                                            ClientName = farmName + " (" + fabricaID + ")",
                                            FullOrderNumber = nrComanda,
                                            Imported = true,
                                            OrderNumber = orderNumber,
                                            ReceivedDate = dataPrimirii,
                                            SampleCount = 1,
                                            SampleDate = dataPrelevare
                                        };
                                        orders.Add(currentOrder);
                                    }
                                    else
                                    {
                                        loggerReceptie.Error("Adaugare comanda esuata: {0}", nrComanda);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                loggerReceptie.Error("Adaugare mostra esuata: {0} , eroare: {1}", strcodbare, ex.Message);
                            }
                        }
                    }
                }
            }

            oManager.Save(orders);
            ctx.SaveChanges();

            loggerReceptie.Info("Importarea fisierului de receptie a fost efectuata!");
            string filepath_ver = filepath.Replace(".xls", "_" + tblstr.Substring(1, tblstr.IndexOf("cop") - 5) + ".xls");

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = cnn;
            cmd.CommandText =
                "SELECT NrComanda, NumePrelevator,IdZilnic,CodFerma,CodBare,CantitateLaPrelevare,DataPrelevare,DataPrimirii from MostreTancuri Where DataTestare = CONVERT(date, '" +
                datat_testare.ToShortDateString() + "', 103)";
            cnn.Open();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            table = ds.Tables[0];
            CreateExcelFile(table, filepath_ver);
        }
        catch (Exception ex)
        {
            loggerReceptie.Error("Eroare receptie: {0}", ex.Message);
        }
        finally
        {
            cnn.Close();
            cn.Close();
        }
    }
示例#36
0
        public ReplayControlBarLogic(Widget widget, World world, OrderManager orderManager)
        {
            if (world.IsReplay)
            {
                var container      = widget.Get("REPLAY_PLAYER");
                var connection     = (ReplayConnection)orderManager.Connection;
                var replayNetTicks = connection.TickCount;

                var background = widget.Parent.GetOrNull("OBSERVER_CONTROL_BG");
                if (background != null)
                {
                    background.Bounds.Height += container.Bounds.Height;
                }

                container.Visible = true;
                var speed            = PlaybackSpeed.Regular;
                var originalTimestep = world.Timestep;

                var pauseButton = widget.Get <ButtonWidget>("BUTTON_PAUSE");
                pauseButton.IsVisible = () => world.ReplayTimestep != 0 && orderManager.NetFrameNumber < replayNetTicks;
                pauseButton.OnClick   = () => world.ReplayTimestep = 0;

                var playButton = widget.Get <ButtonWidget>("BUTTON_PLAY");
                playButton.IsVisible  = () => world.ReplayTimestep == 0 || orderManager.NetFrameNumber >= replayNetTicks;
                playButton.OnClick    = () => world.ReplayTimestep = (int)Math.Ceiling(originalTimestep * multipliers[speed]);
                playButton.IsDisabled = () => orderManager.NetFrameNumber >= replayNetTicks;

                var slowButton = widget.Get <ButtonWidget>("BUTTON_SLOW");
                slowButton.IsHighlighted = () => speed == PlaybackSpeed.Slow;
                slowButton.IsDisabled    = () => orderManager.NetFrameNumber >= replayNetTicks;
                slowButton.OnClick       = () =>
                {
                    speed = PlaybackSpeed.Slow;
                    if (world.ReplayTimestep != 0)
                    {
                        world.ReplayTimestep = (int)Math.Ceiling(originalTimestep * multipliers[speed]);
                    }
                };

                var normalSpeedButton = widget.Get <ButtonWidget>("BUTTON_REGULAR");
                normalSpeedButton.IsHighlighted = () => speed == PlaybackSpeed.Regular;
                normalSpeedButton.IsDisabled    = () => orderManager.NetFrameNumber >= replayNetTicks;
                normalSpeedButton.OnClick       = () =>
                {
                    speed = PlaybackSpeed.Regular;
                    if (world.ReplayTimestep != 0)
                    {
                        world.ReplayTimestep = (int)Math.Ceiling(originalTimestep * multipliers[speed]);
                    }
                };

                var fastButton = widget.Get <ButtonWidget>("BUTTON_FAST");
                fastButton.IsHighlighted = () => speed == PlaybackSpeed.Fast;
                fastButton.IsDisabled    = () => orderManager.NetFrameNumber >= replayNetTicks;
                fastButton.OnClick       = () =>
                {
                    speed = PlaybackSpeed.Fast;
                    if (world.ReplayTimestep != 0)
                    {
                        world.ReplayTimestep = (int)Math.Ceiling(originalTimestep * multipliers[speed]);
                    }
                };

                var maximumButton = widget.Get <ButtonWidget>("BUTTON_MAXIMUM");
                maximumButton.IsHighlighted = () => speed == PlaybackSpeed.Maximum;
                maximumButton.IsDisabled    = () => orderManager.NetFrameNumber >= replayNetTicks;
                maximumButton.OnClick       = () =>
                {
                    speed = PlaybackSpeed.Maximum;
                    if (world.ReplayTimestep != 0)
                    {
                        world.ReplayTimestep = (int)Math.Ceiling(originalTimestep * multipliers[speed]);
                    }
                };
            }
        }
示例#37
0
 /// <summary>
 /// Sets up managers when a user is logged in
 /// </summary>
 /// <param name="user">User.</param>
 public static void UserLoggedIn(User user)
 {
     Log.WriteLine (Log.Layer.AL, typeof(Application), "User logged in: " + user);
     User = user;
     GameStatusManager = new GameStatusManager (user);
     InfoManager = new InfoManager (user);
     ItemManager = new ItemManager (user);
     OrderTypeManager = new OrderTypeManager (user);
     PositionManager = new PositionManager (user);
     StarSystemManager = new StarSystemManager (user);
     OrderManager = new OrderManager (user);
     NotificationManager = new NotificationManager (user);
 }
示例#38
0
    private List <Order> GetData(bool paged, out int count)
    {
        List <Order> orders   = null;
        OrderManager oManager = new OrderManager(StaticDataHelper.FCCLDbContext);

        #region filter
        DateTime date;
        long     no;
        DateTime?receiveDateStart = null;
        DateTime?receiveDateEnd   = null;
        long?    orderNoStart     = null;
        long?    orderNoEnd       = null;

        if (!string.IsNullOrWhiteSpace(txtRDStart.Text))
        {
            if (DateTime.TryParseExact(txtRDStart.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
            {
                receiveDateStart = date;
            }
            else
            {
                receiveDateStart = null;
            }
        }
        if (!string.IsNullOrWhiteSpace(txtRDEnd.Text))
        {
            if (DateTime.TryParseExact(txtRDEnd.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
            {
                receiveDateEnd = date;
            }
            else
            {
                receiveDateEnd = null;
            }
        }
        if (!string.IsNullOrWhiteSpace(txtONStart.Text))
        {
            if (long.TryParse(txtONStart.Text, out no))
            {
                orderNoStart = no;
            }
            else
            {
                orderNoStart = null;
            }
        }
        if (!string.IsNullOrWhiteSpace(txtONEnd.Text))
        {
            if (long.TryParse(txtONEnd.Text, out no))
            {
                orderNoEnd = no;
            }
            else
            {
                orderNoEnd = null;
            }
        }
        #endregion

        if (paged)
        {
            orders = oManager.GetOrdersPaged(receiveDateStart, receiveDateEnd, orderNoStart, orderNoEnd, txtCN.Text, grdOrders.PageIndex, grdOrders.PageSize);
            count  = oManager.GetOrdersCount(receiveDateStart, receiveDateEnd, orderNoStart, orderNoEnd, txtCN.Text);
        }
        else
        {
            orders = oManager.GetOrdersFiltered(receiveDateStart, receiveDateEnd, orderNoStart, orderNoEnd, txtCN.Text);
            count  = orders.Count;
        }
        return(orders);
    }
        protected void BindData(DateTime?startDate, DateTime?endDate)
        {
            DateTime?timezoneStartDate = DateTimeUtil.GetEastCoastStartDate(rangeDateControlCriteria.StartDateValueLocal);
            DateTime?timezoneEndDate   = DateTimeUtil.GetEastCoastDate(rangeDateControlCriteria.EndDateValueLocal.Value);
            //Passsing custom field value as 1000 which is combination of mid and sid. Special case for dermwand.com only
            List <ReportFields> ItemList = new OrderManager().GetOrderCustomFieldReport(timezoneStartDate, timezoneEndDate, 1, false);

            Data rptData = new ReportWSSoapClient().GetDataFromTimeframe(hitsLinkUserName, hitsLinkPassword, ReportsEnum.eCommerceActivitySummary, TimeFrameEnum.Daily, Convert.ToDateTime(startDate), Convert.ToDateTime(endDate), 100000000, 0, 0);

            for (int i = 0; i <= rptData.Rows.GetUpperBound(0); i++)
            {
                HitLinkVisitor.Add(rptData.Rows[i].Columns[0].Value.ToLower(), rptData.Rows[i].Columns[3].Value);
            }

            List <string> keysAdded = new List <string>();

            //Update Version List information

            foreach (ReportFields item in ItemList)
            {
                if (HitLinkVisitor.ContainsKey(item.Title))
                {
                    keysAdded.Add(item.Title);

                    decimal visitor = Convert.ToDecimal(HitLinkVisitor[item.Title].ToString());

                    visitor             = Math.Abs(visitor);
                    item.UniqueVisitors = visitor;
                    if (visitor > 0)
                    {
                        item.Conversion      = Math.Round((Convert.ToDecimal(item.TotalOrders) * 100) / visitor, 1);
                        item.RevenuePerVisit = Convert.ToDecimal(item.TotalRevenue) / visitor;
                    }
                    else
                    {
                        item.UniqueVisitors  = 0;
                        item.Conversion      = 0;
                        item.RevenuePerVisit = 0;
                    }
                    if (item.Title.ToUpper() == "NON-CAMPAIGN")
                    {
                        item.Title = "DIRECT TRAFFIC";
                    }
                }
                else
                {
                    item.UniqueVisitors  = 0;
                    item.Conversion      = 0;
                    item.RevenuePerVisit = 0;
                }

                if (string.IsNullOrEmpty(item.Title))
                {
                    item.Title = "(none)";
                }
            }

            // add keys not already list (visits but no orders)
            foreach (string key in HitLinkVisitor.Keys)
            {
                if (!keysAdded.Contains(key))
                {
                    ReportFields item = new ReportFields();

                    item.Title = key;
                    decimal visitor = Convert.ToDecimal(HitLinkVisitor[item.Title].ToString());
                    visitor = Math.Abs(visitor);
                    if (item.Title.ToUpper() == "NON-CAMPAIGN")
                    {
                        item.Title = "DIRECT TRAFFIC";
                        ReportFields dtField = ItemList.First(x => x.Title.ToUpper() == "NON-CAMPAIGN");

                        if (visitor > 0)
                        {
                            item.UniqueVisitors = visitor;

                            item.Conversion      = Math.Round((Convert.ToDecimal(dtField.TotalOrders) * 100) / visitor, 1);
                            item.RevenuePerVisit = Convert.ToDecimal(dtField.TotalRevenue) / visitor;
                        }
                    }
                    else
                    {
                        item.UniqueVisitors  = visitor;
                        item.Conversion      = 0;
                        item.RevenuePerVisit = 0;
                        ItemList.Add(item);
                    }
                }
            }

            ItemList = ItemList.OrderBy(o => o.Title).ToList();

            dlVersionList.DataSource = ItemList;
            dlVersionList.DataBind();

            //FCLiteral.Text = CreateCharts(dtCollectionList[1dtCollectionList
        }
示例#40
0
        internal LobbyLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, OrderManager orderManager,
                            Action onExit, Action onStart, bool skirmishMode, Dictionary <string, MiniYaml> logicArgs)
        {
            map                = MapCache.UnknownMap;
            lobby              = widget;
            this.modData       = modData;
            this.orderManager  = orderManager;
            this.worldRenderer = worldRenderer;
            this.onStart       = onStart;
            this.onExit        = onExit;
            this.skirmishMode  = skirmishMode;

            // TODO: This needs to be reworked to support per-map tech levels, bots, etc.
            this.modRules = modData.DefaultRules;
            shellmapWorld = worldRenderer.World;

            services = modData.Manifest.Get <WebServices>();

            orderManager.AddChatLine    += AddChatLine;
            Game.LobbyInfoChanged       += UpdateCurrentMap;
            Game.LobbyInfoChanged       += UpdatePlayerList;
            Game.BeforeGameStart        += OnGameStart;
            Game.ConnectionStateChanged += ConnectionStateChanged;

            var name = lobby.GetOrNull <LabelWidget>("SERVER_NAME");

            if (name != null)
            {
                name.GetText = () => orderManager.LobbyInfo.GlobalSettings.ServerName;
            }

            var mapContainer = Ui.LoadWidget("MAP_PREVIEW", lobby.Get("MAP_PREVIEW_ROOT"), new WidgetArgs
            {
                { "orderManager", orderManager },
                { "getMap", (Func <MapPreview>)(() => map) },
                { "onMouseDown", (Action <MapPreviewWidget, MapPreview, MouseInput>)((preview, mapPreview, mi) =>
                                                                                     LobbyUtils.SelectSpawnPoint(orderManager, preview, mapPreview, mi)) },
                { "getSpawnOccupants", (Func <MapPreview, Dictionary <CPos, SpawnOccupant> >)(mapPreview => LobbyUtils.GetSpawnOccupants(orderManager.LobbyInfo, mapPreview)) },
                { "showUnoccupiedSpawnpoints", true },
            });

            mapContainer.IsVisible = () => panel != PanelType.Servers;

            UpdateCurrentMap();

            var playerBin = Ui.LoadWidget("LOBBY_PLAYER_BIN", lobby.Get("TOP_PANELS_ROOT"), new WidgetArgs());

            playerBin.IsVisible = () => panel == PanelType.Players;

            players = playerBin.Get <ScrollPanelWidget>("LOBBY_PLAYERS");
            editablePlayerTemplate       = players.Get("TEMPLATE_EDITABLE_PLAYER");
            nonEditablePlayerTemplate    = players.Get("TEMPLATE_NONEDITABLE_PLAYER");
            emptySlotTemplate            = players.Get("TEMPLATE_EMPTY");
            editableSpectatorTemplate    = players.Get("TEMPLATE_EDITABLE_SPECTATOR");
            nonEditableSpectatorTemplate = players.Get("TEMPLATE_NONEDITABLE_SPECTATOR");
            newSpectatorTemplate         = players.Get("TEMPLATE_NEW_SPECTATOR");
            colorPreview       = lobby.Get <ColorPreviewManagerWidget>("COLOR_MANAGER");
            colorPreview.Color = Game.Settings.Player.Color;

            foreach (var f in modRules.Actors["world"].TraitInfos <FactionInfo>())
            {
                factions.Add(f.InternalName, new LobbyFaction {
                    Selectable = f.Selectable, Name = f.Name, Side = f.Side, Description = f.Description
                });
            }

            var         gameStarting          = false;
            Func <bool> configurationDisabled = () => !Game.IsHost || gameStarting ||
                                                panel == PanelType.Kick || panel == PanelType.ForceStart ||
                                                !map.RulesLoaded || map.InvalidCustomRules ||
                                                orderManager.LocalClient == null || orderManager.LocalClient.IsReady;

            var mapButton = lobby.GetOrNull <ButtonWidget>("CHANGEMAP_BUTTON");

            if (mapButton != null)
            {
                mapButton.IsVisible  = () => panel != PanelType.Servers;
                mapButton.IsDisabled = () => gameStarting || panel == PanelType.Kick || panel == PanelType.ForceStart ||
                                       orderManager.LocalClient == null || orderManager.LocalClient.IsReady;
                mapButton.OnClick = () =>
                {
                    var onSelect = new Action <string>(uid =>
                    {
                        // Don't select the same map again
                        if (uid == map.Uid)
                        {
                            return;
                        }

                        orderManager.IssueOrder(Order.Command("map " + uid));
                        Game.Settings.Server.Map = uid;
                        Game.Settings.Save();
                    });

                    Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
                    {
                        { "initialMap", map.Uid },
                        { "initialTab", MapClassification.System },
                        { "onExit", DoNothing },
                        { "onSelect", Game.IsHost ? onSelect : null },
                        { "filter", MapVisibility.Lobby },
                    });
                };
            }

            var slotsButton = lobby.GetOrNull <DropDownButtonWidget>("SLOTS_DROPDOWNBUTTON");

            if (slotsButton != null)
            {
                slotsButton.IsVisible  = () => panel != PanelType.Servers;
                slotsButton.IsDisabled = () => configurationDisabled() || panel != PanelType.Players ||
                                         (orderManager.LobbyInfo.Slots.Values.All(s => !s.AllowBots) &&
                                          orderManager.LobbyInfo.Slots.Count(s => !s.Value.LockTeam && orderManager.LobbyInfo.ClientInSlot(s.Key) != null) == 0);

                slotsButton.OnMouseDown = _ =>
                {
                    var botTypes = map.Rules.Actors["player"].TraitInfos <IBotInfo>().Select(t => t.Type);
                    var options  = new Dictionary <string, IEnumerable <DropDownOption> >();

                    var botController = orderManager.LobbyInfo.Clients.FirstOrDefault(c => c.IsAdmin);
                    if (orderManager.LobbyInfo.Slots.Values.Any(s => s.AllowBots))
                    {
                        var botOptions = new List <DropDownOption>()
                        {
                            new DropDownOption()
                            {
                                Title      = "Add",
                                IsSelected = () => false,
                                OnClick    = () =>
                                {
                                    foreach (var slot in orderManager.LobbyInfo.Slots)
                                    {
                                        var bot = botTypes.Random(Game.CosmeticRandom);
                                        var c   = orderManager.LobbyInfo.ClientInSlot(slot.Key);
                                        if (slot.Value.AllowBots == true && (c == null || c.Bot != null))
                                        {
                                            orderManager.IssueOrder(Order.Command("slot_bot {0} {1} {2}".F(slot.Key, botController.Index, bot)));
                                        }
                                    }
                                }
                            }
                        };

                        if (orderManager.LobbyInfo.Clients.Any(c => c.Bot != null))
                        {
                            botOptions.Add(new DropDownOption()
                            {
                                Title      = "Remove",
                                IsSelected = () => false,
                                OnClick    = () =>
                                {
                                    foreach (var slot in orderManager.LobbyInfo.Slots)
                                    {
                                        var c = orderManager.LobbyInfo.ClientInSlot(slot.Key);
                                        if (c != null && c.Bot != null)
                                        {
                                            orderManager.IssueOrder(Order.Command("slot_open " + slot.Value.PlayerReference));
                                        }
                                    }
                                }
                            });
                        }

                        options.Add("Configure Bots", botOptions);
                    }

                    var teamCount = (orderManager.LobbyInfo.Slots.Count(s => !s.Value.LockTeam && orderManager.LobbyInfo.ClientInSlot(s.Key) != null) + 1) / 2;
                    if (teamCount >= 1)
                    {
                        var teamOptions = Enumerable.Range(2, teamCount - 1).Reverse().Select(d => new DropDownOption
                        {
                            Title      = "{0} Teams".F(d),
                            IsSelected = () => false,
                            OnClick    = () => orderManager.IssueOrder(Order.Command("assignteams {0}".F(d.ToString())))
                        }).ToList();

                        if (orderManager.LobbyInfo.Slots.Any(s => s.Value.AllowBots))
                        {
                            teamOptions.Add(new DropDownOption
                            {
                                Title      = "Humans vs Bots",
                                IsSelected = () => false,
                                OnClick    = () => orderManager.IssueOrder(Order.Command("assignteams 1"))
                            });
                        }

                        teamOptions.Add(new DropDownOption
                        {
                            Title      = "Free for all",
                            IsSelected = () => false,
                            OnClick    = () => orderManager.IssueOrder(Order.Command("assignteams 0"))
                        });

                        options.Add("Configure Teams", teamOptions);
                    }

                    Func <DropDownOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                    {
                        var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                        item.Get <LabelWidget>("LABEL").GetText = () => option.Title;
                        return(item);
                    };
                    slotsButton.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 175, options, setupItem);
                };
            }

            var optionsBin = Ui.LoadWidget("LOBBY_OPTIONS_BIN", lobby.Get("TOP_PANELS_ROOT"), new WidgetArgs()
            {
                { "orderManager", orderManager },
                { "getMap", (Func <MapPreview>)(() => map) },
                { "configurationDisabled", configurationDisabled }
            });

            optionsBin.IsVisible = () => panel == PanelType.Options;

            var musicBin = Ui.LoadWidget("LOBBY_MUSIC_BIN", lobby.Get("TOP_PANELS_ROOT"), new WidgetArgs
            {
                { "onExit", DoNothing },
                { "world", worldRenderer.World }
            });

            musicBin.IsVisible = () => panel == PanelType.Music;

            ServerListLogic serverListLogic = null;

            if (!skirmishMode)
            {
                Action <GameServer> doNothingWithServer = _ => { };

                var serversBin = Ui.LoadWidget("LOBBY_SERVERS_BIN", lobby.Get("TOP_PANELS_ROOT"), new WidgetArgs
                {
                    { "onJoin", doNothingWithServer },
                });

                serverListLogic      = serversBin.LogicObjects.Select(l => l as ServerListLogic).FirstOrDefault(l => l != null);
                serversBin.IsVisible = () => panel == PanelType.Servers;
            }

            var tabContainer = skirmishMode ? lobby.Get("SKIRMISH_TABS") : lobby.Get("MULTIPLAYER_TABS");

            tabContainer.IsVisible = () => true;

            var optionsTab = tabContainer.Get <ButtonWidget>("OPTIONS_TAB");

            optionsTab.IsHighlighted = () => panel == PanelType.Options;
            optionsTab.IsDisabled    = OptionsTabDisabled;
            optionsTab.OnClick       = () => panel = PanelType.Options;
            optionsTab.GetText       = () => !map.RulesLoaded ? "Loading..." : optionsTab.Text;

            var playersTab = tabContainer.Get <ButtonWidget>("PLAYERS_TAB");

            playersTab.IsHighlighted = () => panel == PanelType.Players;
            playersTab.IsDisabled    = () => panel == PanelType.Kick || panel == PanelType.ForceStart;
            playersTab.OnClick       = () => panel = PanelType.Players;

            var musicTab = tabContainer.Get <ButtonWidget>("MUSIC_TAB");

            musicTab.IsHighlighted = () => panel == PanelType.Music;
            musicTab.IsDisabled    = () => panel == PanelType.Kick || panel == PanelType.ForceStart;
            musicTab.OnClick       = () => panel = PanelType.Music;

            var serversTab = tabContainer.GetOrNull <ButtonWidget>("SERVERS_TAB");

            if (serversTab != null)
            {
                serversTab.IsHighlighted = () => panel == PanelType.Servers;
                serversTab.IsDisabled    = () => panel == PanelType.Kick || panel == PanelType.ForceStart;
                serversTab.OnClick       = () =>
                {
                    // Refresh the list when switching to the servers tab
                    if (serverListLogic != null && panel != PanelType.Servers)
                    {
                        serverListLogic.RefreshServerList();
                    }

                    panel = PanelType.Servers;
                };
            }

            // Force start panel
            Action startGame = () =>
            {
                gameStarting = true;
                orderManager.IssueOrder(Order.Command("startgame"));
            };

            var startGameButton = lobby.GetOrNull <ButtonWidget>("START_GAME_BUTTON");

            if (startGameButton != null)
            {
                startGameButton.IsDisabled = () => configurationDisabled() || map.Status != MapStatus.Available ||
                                             orderManager.LobbyInfo.Slots.Any(sl => sl.Value.Required && orderManager.LobbyInfo.ClientInSlot(sl.Key) == null) ||
                                             (!orderManager.LobbyInfo.GlobalSettings.EnableSingleplayer && orderManager.LobbyInfo.NonBotPlayers.Count() < 2);

                startGameButton.OnClick = () =>
                {
                    // Bots and admins don't count
                    if (orderManager.LobbyInfo.Clients.Any(c => c.Slot != null && !c.IsAdmin && c.Bot == null && !c.IsReady))
                    {
                        panel = PanelType.ForceStart;
                    }
                    else
                    {
                        startGame();
                    }
                };
            }

            var forceStartBin = Ui.LoadWidget("FORCE_START_DIALOG", lobby.Get("TOP_PANELS_ROOT"), new WidgetArgs());

            forceStartBin.IsVisible = () => panel == PanelType.ForceStart;
            forceStartBin.Get("KICK_WARNING").IsVisible               = () => orderManager.LobbyInfo.Clients.Any(c => c.IsInvalid);
            forceStartBin.Get <ButtonWidget>("OK_BUTTON").OnClick     = startGame;
            forceStartBin.Get <ButtonWidget>("CANCEL_BUTTON").OnClick = () => panel = PanelType.Players;

            var disconnectButton = lobby.Get <ButtonWidget>("DISCONNECT_BUTTON");

            disconnectButton.OnClick = () => { Ui.CloseWindow(); onExit(); };

            if (skirmishMode)
            {
                disconnectButton.Text = "Back";
            }

            chatLabel = lobby.Get <LabelWidget>("LABEL_CHATTYPE");
            var chatTextField = lobby.Get <TextFieldWidget>("CHAT_TEXTFIELD");

            chatTextField.MaxLength = UnitOrders.ChatMessageMaxLength;

            chatTextField.TakeKeyboardFocus();
            chatTextField.OnEnterKey = () =>
            {
                if (chatTextField.Text.Length == 0)
                {
                    return(true);
                }

                // Always scroll to bottom when we've typed something
                lobbyChatPanel.ScrollToBottom();

                orderManager.IssueOrder(Order.Chat(teamChat, chatTextField.Text));
                chatTextField.Text = "";
                return(true);
            };

            chatTextField.OnTabKey = () =>
            {
                var previousText = chatTextField.Text;
                chatTextField.Text           = tabCompletion.Complete(chatTextField.Text);
                chatTextField.CursorPosition = chatTextField.Text.Length;

                if (chatTextField.Text == previousText)
                {
                    return(SwitchTeamChat());
                }
                else
                {
                    return(true);
                }
            };

            chatTextField.OnEscKey = () => { chatTextField.Text = ""; return(true); };

            lobbyChatPanel = lobby.Get <ScrollPanelWidget>("CHAT_DISPLAY");
            chatTemplate   = lobbyChatPanel.Get("CHAT_TEMPLATE");
            lobbyChatPanel.RemoveChildren();

            var settingsButton = lobby.GetOrNull <ButtonWidget>("SETTINGS_BUTTON");

            if (settingsButton != null)
            {
                settingsButton.OnClick = () => Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs
                {
                    { "onExit", DoNothing },
                    { "worldRenderer", worldRenderer }
                });
            }

            // Add a bot on the first lobbyinfo update
            if (skirmishMode)
            {
                addBotOnMapLoad = true;
            }

            MiniYaml yaml;

            if (logicArgs.TryGetValue("ChatLineSound", out yaml))
            {
                chatLineSound = yaml.Value;
            }
        }
示例#41
0
        static void Main(string[] args)
        {
            Gamer gamer1 = new Gamer();

            gamer1.Id        = 1;
            gamer1.FirstName = "Nizes";

            Gamer gamer2 = new Gamer();

            gamer1.Id        = 2;
            gamer1.FirstName = "Lore";


            GameManager gameManager = new GameManager();

            gameManager.Add(new Game {
                Id = 1, Name = "Saklambaç", Price = 50
            });
            gameManager.Add(new Game {
                Id = 2, Name = "Köşe kapmaca", Price = 60
            });
            gameManager.Add(new Game {
                Id = 3, Name = "Mendil kapmaca", Price = 70
            });

            GamerManager gamerManager = new GamerManager();

            gamerManager.Add(new Gamer {
                Id = 1, FirstName = "Nizes"
            });
            gamerManager.Add(new Gamer {
                Id = 2, FirstName = "Lore"
            });

            CampaignManager campaignManager = new CampaignManager();

            campaignManager.Add(new Campaign {
                Id = 1, Name = "1 alana % 10"
            });
            campaignManager.Add(new Campaign {
                Id = 2, Name = "2 alana % 20"
            });
            campaignManager.Add(new Campaign {
                Id = 3, Name = "3 alana % 30"
            });


            OrderManager orderManager = new OrderManager();

            orderManager.Add(new Order {
                Id = 1, CampaignName = 1
            });
            orderManager.Add(new Order {
                Id = 2, CampaignName = 2
            });
            orderManager.Add(new Order {
                Id = 3, CampaignName = 3
            });


            Console.WriteLine();
        }
示例#42
0
 public void Bind(OrderManager orderManager, WorldRenderer worldRenderer, Session.Client client)
 {
     this.orderManager  = orderManager;
     this.worldRenderer = worldRenderer;
     this.client        = client;
 }
示例#43
0
        static void Main(string[] args)
        {
            OrderManager manager = new OrderManager();

            User  CurrentUser = new User("789", "YYZ");
            Order NewOrder    = new Order("001", CurrentUser);

            manager.AddOrder(NewOrder);

            OrderItem NewItem = new OrderItem("10001", "精品蔬菜", 5, 5);

            manager.AddItemToOrder("001", NewItem);
            NewItem = new OrderItem("10002", "精品水果", 10, 2);
            manager.AddItemToOrder("001", NewItem);

            CurrentUser = new User("987", "AAA");
            NewOrder    = new Order("002", CurrentUser);
            manager.AddOrder(NewOrder);

            NewItem = new OrderItem("10001", "精品蔬菜", 5, 10);
            manager.AddItemToOrder("002", NewItem);
            NewItem = new OrderItem("10003", "精品猪肉", 50, 1);
            manager.AddItemToOrder("002", NewItem);

            string str1, str2, str3;
            double price; int count;

            while (true)
            {
                Console.WriteLine("---------------------------------");
                Console.WriteLine("欢迎使用YYZ的订单查询系统!\n操作码:(a)添加订单 (b)向指定订单添加商品 (c)删除订单 (d)删除商品\n(e)查询订单号 (f)查询含有某商品的订单 (g)查询某用户的订单\n(h)显示所有订单 (i)对所有订单按编号排序 (j)导出订单 (k)导入xml文件(x)退出");
                Console.Write("请输入操作码:");
                string str = Console.ReadLine();
                char   op;
                while (!char.TryParse(str, out op))
                {
                    Console.WriteLine("非法字符!请重新输入!");
                    str = Console.ReadLine();
                }
                try
                {
                    switch (op)
                    {
                    case 'a':
                        Console.WriteLine("请输入订单号:");
                        str1 = Console.ReadLine();
                        Console.WriteLine("请输入用户ID:");
                        str2 = Console.ReadLine();
                        Console.WriteLine("请输入用户名称:");
                        str3 = Console.ReadLine();
                        Console.WriteLine("---------------------------------");
                        CurrentUser = new User(str2, str3);
                        NewOrder    = new Order(str1, CurrentUser);
                        manager.AddOrder(NewOrder);
                        break;

                    case 'b':
                        Console.WriteLine("请输入订单号:");
                        str1 = Console.ReadLine();
                        Console.WriteLine("请输入商品编号:");
                        str2 = Console.ReadLine();
                        Console.WriteLine("请输入商品名称:");
                        str3 = Console.ReadLine();
                        Console.WriteLine("请输入商品单价:");
                        price = double.Parse(Console.ReadLine());
                        Console.WriteLine("请输入商品数量:");
                        count = int.Parse(Console.ReadLine());
                        Console.WriteLine("---------------------------------");
                        NewItem = new OrderItem(str2, str3, price, count);
                        manager.AddItemToOrder(str1, NewItem);
                        break;

                    case 'c':
                        Console.WriteLine("请输入订单号:");
                        str1 = Console.ReadLine();
                        Console.WriteLine("---------------------------------");
                        manager.DeleteOrder(str1);
                        break;

                    case 'd':
                        Console.WriteLine("请输入订单号:");
                        str1 = Console.ReadLine();
                        Console.WriteLine("请输入商品编号:");
                        str2 = Console.ReadLine();
                        Console.WriteLine("---------------------------------");
                        NewItem = new OrderItem(str2);
                        manager.DeleteItemInOrder(str1, NewItem);
                        break;

                    case 'e':
                        Console.WriteLine("请输入订单号:");
                        str1 = Console.ReadLine();
                        Console.WriteLine("---------------------------------");
                        manager.FindOrderNumber(str1);
                        break;

                    case 'f':
                        Console.WriteLine("请输入商品编号:");
                        str2 = Console.ReadLine();
                        Console.WriteLine("---------------------------------");
                        NewItem = new OrderItem(str2);
                        manager.FindItem(NewItem);
                        break;

                    case 'g':
                        Console.WriteLine("请输入用户ID:");
                        str2 = Console.ReadLine();
                        Console.WriteLine("---------------------------------");
                        CurrentUser = new User(str2, null);
                        manager.FindCustomer(CurrentUser);
                        break;

                    case 'h':
                        Console.WriteLine("---------------------------------");
                        manager.GetAll(); break;

                    case 'i':
                        Console.WriteLine("---------------------------------");
                        manager.SortOrder(); break;

                    case 'j':
                        Console.WriteLine("---------------------------------");
                        manager.Export(null); break;

                    case 'k':
                        Console.WriteLine("---------------------------------");
                        manager.Import(null); break;

                    case 'x': break;

                    default: Console.WriteLine("无效操作符!"); break;
                    }
                }
                catch (EditFailException e)
                {
                    Console.WriteLine("操作失败,原因:" + e.message);
                }
                if (op == 'x')
                {
                    break;
                }
            }
        }
示例#44
0
        internal LobbySSLogic(Widget widget, ModData modData, WorldRenderer worldRenderer, OrderManager orderManager,
                              Action onExit, Action onStart, bool skirmishMode, Dictionary <string, MiniYaml> logicArgs)
        {
            map                = MapCache.UnknownMap;
            lobby              = widget;
            this.modData       = modData;
            this.orderManager  = orderManager;
            this.worldRenderer = worldRenderer;
            this.onStart       = onStart;
            this.onExit        = onExit;
            this.skirmishMode  = skirmishMode;

            // TODO: This needs to be reworked to support per-map tech levels, bots, etc.
            modRules = modData.DefaultRules;

            services = modData.Manifest.Get <WebServices>();

            orderManager.AddTextNotification += AddChatLine;
            Game.LobbyInfoChanged            += UpdateCurrentMap;
            Game.LobbyInfoChanged            += UpdatePlayerList;
            Game.LobbyInfoChanged            += UpdateDiscordStatus;
            Game.LobbyInfoChanged            += UpdateSpawnOccupants;
            Game.BeforeGameStart             += OnGameStart;
            Game.ConnectionStateChanged      += ConnectionStateChanged;

            var name = lobby.GetOrNull <LabelWidget>("SERVER_NAME");

            if (name != null)
            {
                name.GetText = () => orderManager.LobbyInfo.GlobalSettings.ServerName;
            }

            var mapContainer = Ui.LoadWidget("MAP_PREVIEW", lobby.Get("MAP_PREVIEW_ROOT"), new WidgetArgs
            {
                { "orderManager", orderManager },