/// <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); }
/// <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); }
/// <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; }
/// <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; }
/// <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); }
/// <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); }
/// <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()); } }
/// <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); } }