Пример #1
0
        /// <summary>
        /// delete phone and all the childrens and operations
        /// </summary>
        /// <param name="phoneNode"> target phone node </param>
        void DeletePhone(TreeNode phoneNode)
        {
            foreach (TreeNode node in phoneNode.Nodes)
            {
                if (node.Text == "Operations")
                {
                    List <TreeNode> rem = new List <TreeNode>();
                    foreach (TreeNode opNode in node.Nodes)
                    {
                        DeleteOperation(opNode);
                        rem.Add(opNode);
                    }

                    foreach (TreeNode nds in rem)
                    {
                        node.Nodes.Remove(nds);
                    }
                }
                else
                {
                    DeletePhone(node);
                }
            }

            phoneNode.Nodes.Clear();

            PhoneModel phone = phoneNode.Tag as PhoneModel;

            SQLWorker.GetInstance().SqlComm("delete from tblPhoneModels where id=" + phone.id);
            parentPhoneBox.Items.Remove(phone);

            deletePhoneModelEvent?.Invoke(phone);
        }
Пример #2
0
        /// <summary>
        /// Change phone's name and parent model
        /// </summary>
        void EditPhoneModel()
        {
            PhoneModel phone = selectedNode.Tag as PhoneModel;

            phone.name = phoneNameBox.Text;

            var node = selectedNode;

            PhoneModel parentModel = (parentPhoneBox.SelectedItem as PhoneModel);

            if (parentModel.id != phone.parentId)
            {
                var parentNode = FindNodeById(parentModel.id);
                if (parentNode != node)
                {
                    selectedNode.Parent.Nodes.Remove(node);
                    phone.parentId = parentModel.id;
                    parentNode.Nodes.Add(node);
                }
                else
                {
                    return;
                }
            }

            node.Text = phone.name;

            SQLWorker.GetInstance().SqlComm("update tblPhoneModels set Name='" + phone.name + "' " +
                                            (phone.parentId > 0 ? ", ParentId=" + phone.parentId.ToString() : " ") +
                                            " where Id=" + phone.id + "; ");

            changePhoneModelEvent?.Invoke(phone);
        }
Пример #3
0
        /// <summary>
        /// virtual method for copying objects
        /// </summary>
        /// <param name="obj">source</param>
        public override void CopyFrom(DataObject obj)
        {
            PhoneModel phone = obj as PhoneModel;

            name     = phone.name;
            parentId = phone.parentId;
        }
Пример #4
0
        /// <summary>
        /// add a phone into treeVeiw and parent combobox
        /// </summary>
        /// <param name="model"> phone </param>
        void AddPhone(PhoneModel model)
        {
            parentPhoneBox.Items.Add(model);
            var parent = FindNodeById(model.parentId);

            TreeNode node = new TreeNode(model.name);

            node.Tag = model;
            parent.Nodes.Add(node);
            lastPhoneId = model.id > lastPhoneId ? model.id : lastPhoneId;
        }
Пример #5
0
        /// <summary>
        /// Add new phone from the form.
        /// Also, save it in the database
        /// </summary>
        /// <param name="parent"> parent phone </param>
        void AddNewPhone(int parent)
        {
            PhoneModel model = new PhoneModel();

            model.id       = lastPhoneId + 1;
            model.parentId = parent;
            model.name     = phoneNameBox.Text;
            SQLWorker.GetInstance().SqlComm("insert into tblPhoneModels values("
                                            + model.id + ",'" + model.name + "'," + model.parentId + ")");
            AddPhone(model);

            addPhoneModelEvent?.Invoke(model);
        }
Пример #6
0
        /// <summary>
        /// change operation phone model and price
        /// </summary>
        void EditOperation()
        {
            Operation op = selectedNode.Tag as Operation;

            op.price = (int)(float.Parse(operationPriceBox.Text) * 100.0f);

            PhoneModel parentModel = (parentPhoneBox.SelectedItem as PhoneModel);

            if (op.deviceID != parentModel.id)
            {
                op.deviceID = parentModel.id;
                var parNode = FindNodeById(op.deviceID);

                var node = selectedNode;
                selectedNode.Parent.Nodes.Remove(node);

                TreeNode oper = null;
                foreach (TreeNode opNode in parNode.Nodes)
                {
                    if (opNode.Text == "Operations")
                    {
                        oper = opNode;
                        break;
                    }
                }

                if (oper == null)
                {
                    oper = parNode.Nodes.Add("Operations");
                }

                oper.Nodes.Add(node);
            }

            Function func = operationNameBox.SelectedItem as Function;

            if (op.functionID != func.id)
            {
                op.functionID     = func.id;
                selectedNode.Text = func.name;
            }

            phoneNameBox.Enabled           = true;;
            operationNameBox.DropDownStyle = ComboBoxStyle.DropDown;

            SQLWorker.GetInstance().SqlComm("update tblOperations set DeviceId=" + op.deviceID +
                                            ", FunctionId=" + op.functionID +
                                            ", Price=" + op.price + " where Id=" + op.id + "; ");

            changeOperationEvent?.Invoke(op);
        }
Пример #7
0
        /// <summary>
        /// looking for a price then device is changed
        /// </summary>
        private void DeviceBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            PhoneModel phone = deviceBox.SelectedItem as PhoneModel;
            Function   func  = descriptionBox.SelectedItem as Function;

            if (func != null)
            {
                float price = (float)func.price / 100;

                if (phone != null)
                {
                    foreach (Operation op in operations)
                    {
                        if (op.deviceID == phone.id && op.functionID == func.id)
                        {
                            price = (float)op.price / 100;
                        }
                    }
                }
                priceBox.Text = ((price).ToString());
            }
        }
Пример #8
0
        /// <summary>
        /// add new object. All the data god from form's fields
        /// </summary>
        void AddNewObject()
        {
            int parentId = 0;

            if (parentPhoneBox.SelectedIndex >= 0)
            {
                PhoneModel parent = parentPhoneBox.SelectedItem as PhoneModel;
                parentId = parent.id;
            }

            if (phoneNameBox.TextLength == 0 && parentId == 0)
            {
                AddNewFunction();
            }
            else if (operationNameBox.Text.Length == 0)
            {
                AddNewPhone(parentId);
            }
            else
            {
                AddNewOperation(parentId);
            }
        }