Exemple #1
0
 private string GetPortFullDescription(EquipmentPort port)
 {
     string info = string.Format("Узел: {0}, Оборудование: {1}, Порт: {2}, Тип порта: {3} {4}", port.Equipment.Area.Description, port.Equipment.Description,
         port.Description, port.PortType.Description,
         !string.IsNullOrEmpty(port.Equipment.NetworkDescription) ? " [" + port.Equipment.NetworkDescription + "]" : string.Empty);
     return info;
 }
Exemple #2
0
 private string GetPortFullDescription(EquipmentPort port)
 {
     string info;
     if (port.Equipment != null)
     {
         info = string.Format("Узел: {0}, Оборудование: {1}, Порт: {2}, Тип порта: {3} {4}", port.Equipment.Area.Description, port.Equipment.Description,
             port.Description, port.PortType.Description,
             !string.IsNullOrEmpty(port.Equipment.NetworkDescription) ? " [" + port.Equipment.NetworkDescription + "]" : string.Empty);
     }
     else
     {
         info = "Ошибка в получении данных, попробуйте попытку позже.";
     }
     return info;
 }
 private string GetPortShortDescription(EquipmentPort port)
 {
     string netEquipmentName = !string.IsNullOrEmpty(port.Equipment.NetworkDescription) ? " [" + port.Equipment.NetworkDescription + "]" : "unk";
     string info = string.Format("{0} {1} {2} {3} {4}", port.Equipment.Area.Description, port.Equipment.Description,
         port.Description, port.PortType.Description, netEquipmentName);
     return info;
 }
Exemple #4
0
 private void cmiPortAdd_Click(object sender, EventArgs e)
 {
     NewPortsForm input = new NewPortsForm { cbxTypes = { DataSource = _dataContexts.AccEquipmentV2Entities.PortTypes.OrderBy(portl => portl.Description).ToList() } };
     if (input.ShowDialog(this) == DialogResult.OK)
     {
         int start = Convert.ToInt16(input.tbNumberStart.Text);
         int count = start + Convert.ToInt16(input.tbCount.Text);
         PortType pt = input.cbxTypes.SelectedItem as PortType;
         if (pt==null)
             throw new Exception("invalid data in combobox");
         List<EquipmentPort> newPorts=new List<EquipmentPort>();
         for (int i = start; i < count; i++)
         {
             EquipmentPort newPort=new EquipmentPort
             {
                 PortId = Guid.NewGuid(),
                 EquipmentOwnerId = _clonedEquipment.EquipmentId,
                 Equipment = _clonedEquipment,
                 Description = input.tbDescription.Text + i,
                 PortTypeId = pt.PortTypeId,
                 PortType = pt
             };
             newPorts.Add(newPort);
         }
         var dupPortNames = from np in newPorts
             from op in _clonedEquipment.EquipmentPorts
             where np.Description == op.Description
             select np;
         newPorts = newPorts.Except(dupPortNames).ToList();
         newPorts.ForEach(np=> _clonedEquipment.EquipmentPorts.Add(np));
         lbPorts.DataSource = _clonedEquipment.EquipmentPorts.OrderBy(portn => portn, new PortNameComparer()).ThenBy(portl => portl.PortType.Description).ToList();
     }
 }
Exemple #5
0
 private bool IsDifferentPort(EquipmentPort left, EquipmentPort right)
 {
     if (left == null || right == null)
         return true;
     if (left.Description!=right.Description) return true;
     if (left.SideLinkId != right.SideLinkId) return true;
     if (left.PortTypeId!=right.PortTypeId) return true;
     return false;
 }
Exemple #6
0
        private void button1_Click(object sender, EventArgs e)
        {
            string description = tbDescription.Visible ? tbDescription.Text.Trim() : cbDescription.Text.Trim();
            if (string.IsNullOrEmpty(description))
                return;
            _clonedEquipment.Description = description;
            _clonedEquipment.NetworkDescription = tbNetworkDescription.Text;
            _clonedEquipment.SerialNumber = tbSerialNumber.Text;
            _clonedEquipment.OwnerType = cbOwner.SelectedIndex;
            _clonedEquipment.PlaceType = cbSide.SelectedIndex;
            _clonedEquipment.Comments = tbComments.Text;
            if (_manageEquipment == null)
            {
                //add
                try
                {
                    Cursor = Cursors.WaitCursor;
                    ListSelectionForm listSelectionForm = new ListSelectionForm(_dataContexts, _clonedEquipment, EquipmentListTypes.toReceive)
                    {
                        Text = @"Списки оборудования на получение",
                        cbLists = { SelectedItem = SharedAppData.LastSelectedReceiveList },
                        btnCreateList = {Enabled = SharedAppData.IsFlagSet(EquipmentListsForm.ObjectAccessId, RightsFlags.Add)}
                    };
                    if (listSelectionForm.ShowDialog(this) == DialogResult.OK)
                    {
                        EquipmentList list = listSelectionForm.cbLists.SelectedItem as EquipmentList;
                        if (list==null)
                            throw new Exception("Неправильный список оборудования!!!!");
                        SharedAppData.LastSelectedReceiveList = list;
                        List<EquipmentListsDetail> details = new List<EquipmentListsDetail>
                        {
                            new EquipmentListsDetail
                            {
                                Comments = _clonedEquipment.Comments,
                                Description = _clonedEquipment.Description,
                                SerialNumber = _clonedEquipment.SerialNumber,
                                SideData = GetSideData(_clonedEquipment),
                                Id = Guid.NewGuid(),
                                EquipmentList = list
                            }
                        };
                        if (_clonedEquipment.ChildEquipments.Any())
                            details.AddRange(_clonedEquipment.ChildEquipments.Select(childEquipment => new EquipmentListsDetail
                            {
                                Comments = childEquipment.Comments,
                                Description = childEquipment.Description,
                                SerialNumber = childEquipment.SerialNumber,
                                SideData = GetSideData(_clonedEquipment),
                                Id = Guid.NewGuid(),
                                EquipmentList = list
                            }));
                        _dataContexts.AccEquipmentV2Entities.EquipmentListsDetails.AddRange(details);
                        _dataContexts.AccEquipmentV2Entities.Equipments.Add(_clonedEquipment);
                        _dataContexts.AccEquipmentV2Entities.SaveChanges();
                    }
                    else
                    {
                        Cursor = Cursors.Default;
                        return;
                    }
                    Cursor = Cursors.Default;
                    DialogResult = DialogResult.OK;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            else
            {
                //update
                
                {
                    try
                    {
                        Cursor = Cursors.WaitCursor;
                        string diff;
                        if (IsDifferentEquipment(_manageEquipment, _clonedEquipment, out diff))
                        {
                            SharedAppData.HistoryStore.AddHistoryEvent("Change Equipment " + _manageEquipment.Description, diff);
                            _manageEquipment.Description = _clonedEquipment.Description;
                            _manageEquipment.NetworkDescription = _clonedEquipment.NetworkDescription;
                            _manageEquipment.SerialNumber = _clonedEquipment.SerialNumber;
                            _manageEquipment.OwnerType = _clonedEquipment.OwnerType;
                            _manageEquipment.PlaceType = _clonedEquipment.PlaceType;
                            _manageEquipment.Comments = _clonedEquipment.Comments;
                            _dataContexts.AccEquipmentV2Entities.SaveChanges();
                        }
                        if (IsDifferentChildEquipments(_manageEquipment, _clonedEquipment))
                        {
                            _dataContexts.AccEquipmentV2Entities.Equipments.RemoveRange(_manageEquipment.ChildEquipments);
                            _dataContexts.AccEquipmentV2Entities.SaveChanges();
                            foreach (Equipment equipment in _clonedEquipment.ChildEquipments)
                            {
                                equipment.ParentEquipment = _manageEquipment;
                                _manageEquipment.ChildEquipments.Add(equipment);
                            }
                            _dataContexts.AccEquipmentV2Entities.SaveChanges();
                        }
                        if (IsDifferentPorts(_manageEquipment, _clonedEquipment))
                        {
                            List<EquipmentPort> deletedPorts= _manageEquipment.EquipmentPorts.Where(mport => _clonedEquipment.EquipmentPorts.All(port => port.PortId != mport.PortId)).ToList();
                            if (deletedPorts.Any())
                            {
                                var eventPorts =
                                    _dataContexts.AccEquipmentV2Entities.Events.Where(Extensions.BuildContainsExpression<Event, Guid>(ec => ec.EquipmentPortId.Value,
                                        deletedPorts.Select(dp => dp.PortId)));
                                if (eventPorts.Any())
                                {
                                    foreach (Event @event in eventPorts)
                                    {
                                        @event.Description = "Порт был удален из оборудования: " + _dataContexts.GetPortFullDescription(@event.EquipmentPort)+ Environment.NewLine + @event.Description;
                                        @event.EquipmentPort = null;
                                        @event.EquipmentPortId = null;
                                        System.Diagnostics.Debug.WriteLine("Remove events ports from parent");
                                    }
                                   // _dataContexts.AccEquipmentV2Entities.SaveChanges();
                                }
                                
                                _dataContexts.AccEquipmentV2Entities.EquipmentPorts.RemoveRange(deletedPorts);
                                _dataContexts.AccEquipmentV2Entities.SaveChanges();
                            }
                            foreach (EquipmentPort cport in _clonedEquipment.EquipmentPorts)
                            {
                                var mports = _manageEquipment.EquipmentPorts.Where(port => port.PortId == cport.PortId).ToList();
                                if (mports.Count == 0)
                                {
                                    var nport = new EquipmentPort { PortId = Guid.NewGuid(), Equipment = _manageEquipment, PortType = cport.PortType, Description = cport.Description };
                                    _manageEquipment.EquipmentPorts.Add(nport);
                                    continue;
                                }
                                if (mports.Count > 1)
                                    throw new Exception("Invalid data struct in ports");
                                var mport = mports.First();
                                mport.Description = cport.Description;
                                mport.PortTypeId = cport.PortTypeId;
                            }
                            _dataContexts.AccEquipmentV2Entities.SaveChanges();
                        }
                        if (IsDifferentSideLink(_manageEquipment, _clonedEquipment))
                        {
                            if (_clonedEquipment.SideLink == null)
                            {
                                _dataContexts.AccEquipmentV2Entities.SideLinks.Remove(_manageEquipment.SideLink);
                            }
                            else
                            {
                                if (_manageEquipment.SideLink == null)
                                {
                                    _manageEquipment.SideLink = new SideLink() {LinkId = Guid.NewGuid()};
                                    _dataContexts.AccEquipmentV2Entities.SideLinks.Add(_manageEquipment.SideLink);
                                }
                                _manageEquipment.SideLink.LinkType = _clonedEquipment.SideLink.LinkType;
                                if (_clonedEquipment.SideLink.LinkType == (int) SideLinkType.toCustomData)
                                {
                                    _manageEquipment.SideLink.CustomData = _clonedEquipment.SideLink.CustomData;
                                }
                                else
                                {
                                    _manageEquipment.SideLink.LinkCustomerSideId = _clonedEquipment.SideLink.LinkCustomerSideId;    
                                }

                            }
                            _dataContexts.AccEquipmentV2Entities.SaveChanges();
                        }
                        Cursor = Cursors.Default;
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
                DialogResult = DialogResult.OK;
            }
        }
Exemple #7
0
 private void ChangeTemplate(EquipmentTemplate newTemplate)
 {
     EquipmentTemplate selectedTemplate = newTemplate;
     if (selectedTemplate == null) return;
     Cursor = Cursors.WaitCursor;
     _clonedEquipment.Description = selectedTemplate.Description;
     var allTemplates = selectedTemplate.ChildElementTemplates.Flatten(x => x.ChildElementTemplates).ToList();
     List<Equipment> equipmentCards=new List<Equipment>();
     List<EquipmentPort> equipmentPorts=new List<EquipmentPort>();
     if (allTemplates.Count != 0)
     {
         List<EquipmentTemplate> cardTemplates = allTemplates.Where(eqt => eqt.ElementType == (int) ElementType.Card).ToList();
         if (cardTemplates.Any())
         {
             equipmentCards.AddRange(cardTemplates.Select(template => new Equipment()
             {
                 EquipmentId = Guid.NewGuid(),
                 Description = template.Description,
                 OwnerType = cbOwner.SelectedIndex,
                 PlaceType = cbSide.SelectedIndex,
                 Area = _area,
                 ParentEquipment = _clonedEquipment
             }));
         }
         List<EquipmentTemplate> portTemplates = allTemplates.Where(eqt => eqt.ElementType == (int)ElementType.Port).ToList();
         if (portTemplates.Any())
         {
             foreach (EquipmentTemplate template in portTemplates)
             {
                 string prefix = GetPrefixedName(template);
                 for (int i = template.NumberStart; i < (template.NumberStart+template.PortCount) ; i++)
                 {
                     EquipmentPort port = new EquipmentPort {PortId = Guid.NewGuid(), Equipment = _clonedEquipment, PortType = template.PortType, Description = prefix + i};
                     equipmentPorts.Add(port);
                 }
             }
         }
     }
     _clonedEquipment.ChildEquipments.Clear();
     _clonedEquipment.EquipmentPorts.Clear();
     foreach (Equipment equipmentCard in equipmentCards)
     {
         _clonedEquipment.ChildEquipments.Add(equipmentCard);
     }
     foreach (EquipmentPort equipmentPort in equipmentPorts)
     {
         _clonedEquipment.EquipmentPorts.Add(equipmentPort);
     }
     lbCards.DataSource = _clonedEquipment.ChildEquipments.OrderBy(equ=>equ.Description).ToList();
     lbPorts.DataSource = _clonedEquipment.EquipmentPorts.OrderBy(portn => portn, new PortNameComparer()).ThenBy(port => port.PortType.Description).ToList();
     Cursor = Cursors.Default;
 }
 public void SetEquipmentPortSelection(EquipmentPort selectedPort)
 {
     Equipment selectedEquipment = selectedPort.Equipment;
     var treeAreaItem = areasTree.AllNodes.SingleOrDefault(node => ((AreaTreeItem) node.Tag).Tag is Equipment & ((AreaTreeItem) node.Tag).Id == selectedEquipment.EquipmentId);
     if (treeAreaItem != null)
     {
         areasTree.SelectedNode = treeAreaItem;
         equipmentDetails.SetPortSelection(selectedPort);
     }
 }