Esempio n. 1
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();
     }
 }
Esempio n. 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(cbDescription.Text)) 
                return;
            _clonedEquipment.Description = cbDescription.Text;
            _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;
                    _dataContexts.AccEquipmentV2Entities.Equipments.Add(_clonedEquipment);
                    _dataContexts.AccEquipmentV2Entities.SaveChanges();
                    Cursor = Cursors.Default;
                    DialogResult = DialogResult.OK;
                }
                catch (Exception)
                {
                    throw;
                }
            }
            else
            {
                //update
                
                {
                    try
                    {
                        Cursor = Cursors.WaitCursor;
                        if (IsDifferentEquipment(_manageEquipment, _clonedEquipment))
                        {
                            _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())
                            {
                                _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;
            }
        }
Esempio n. 3
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;
 }
Esempio n. 4
0
 private void cbDescription_SelectedIndexChanged(object sender, EventArgs e)
 {
     EquipmentTemplate selectedTemplate = cbDescription.SelectedItem as EquipmentTemplate;
     if (selectedTemplate == null) return;
     Cursor = Cursors.WaitCursor;
     SuspendLayout();
     _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();
     ResumeLayout();
     Cursor = Cursors.Default;
 }