コード例 #1
0
        private void IccardBindingSource_CurrentChanged(object sender, EventArgs e)
        {
            if (iccardBindingSource.Current == null)
            {
                return;
            }
            Iccard card = ((ObjectView <Iccard>)iccardBindingSource.Current).Object;

            icmapBindingSource.DataSource = db.Icmaps.Where(m => m.C_icno == card.C_icno).ToList();
        }
コード例 #2
0
 private void BtnCardMod_Click(object sender, EventArgs e)
 {
     if (iccardBindingSource.Current != null)
     {
         Iccard        card    = ((ObjectView <Iccard>)iccardBindingSource.Current).Object;
         DialogCardAdd addcard = new DialogCardAdd(db, card);
         addcard.ShowDialog();
         BtnRefresh_Click(this, e);
     }
     else
     {
         MessageBox.Show("Choose the item you want to modify");
     }
 }
コード例 #3
0
 public DialogCardAdd(ICMDBContext db, Iccard card = null)
 {
     InitializeComponent();
     this.db = db;
     m_Card  = card;
 }
コード例 #4
0
        private void AddCard_Load(object sender, EventArgs e)
        {
            ComboBoxOnUse.SelectedIndex      = 1;                    //默认有效
            ComboBoxIsResident.SelectedIndex = 0;
            listViewUnRelate.Columns.Add(strings.UnrelatedDev, 189); //"未开聯设备", 189);
            listViewRelate.Columns.Add(strings.RelatedDev, 206);     //"开聯设备", 206);

            // Moding mode
            if (m_Card != null)
            {
                //using (ICMDBContext db = new ICMDBContext())
                {
                    List <string> IdPool = new List <string>();

                    var card = (from c in db.Iccards
                                where c.C_icno == m_Card.C_icno
                                select c).FirstOrDefault();

                    m_Card = card;

                    id = card.C_icid;
                    textBoxICCard.Text               = card.C_icno;
                    textBoxRo.Text                   = card.C_roomid;
                    textBoxResidentName.Text         = card.C_username;
                    ComboBoxIsResident.SelectedIndex = (int)(card.C_ictype ?? 0);
                    ComboBoxOnUse.SelectedIndex      = (int)(card.C_available ?? 0);
                    checkBoxStartDate.Checked        = (card.C_uptime != null);
                    checkBoxEndDate.Checked          = (card.C_downtime != null);
                    dateTimePickerStart.Value        = (card.C_uptime != null) ? card.C_uptime.Value : DateTime.Now;
                    dateTimePickerEnd.Value          = (card.C_downtime != null) ? card.C_downtime.Value : DateTime.Now;

                    var relatedDevices = (from icno in db.Icmaps
                                          where icno.C_icno == m_Card.C_icno
                                          select icno).ToArray();
                    foreach (var dev in relatedDevices)
                    {
                        List <string> sublist = new List <string>();
                        string        room    = DevicesAddressConverter.RoToChStr(dev.C_entrancedoor);
                        sublist.Add(room);
                        sublist.Add(dev.C_id.ToString());
                        // 开聯设备
                        listViewRelate.Items.Add(new ListViewItem(sublist.ToArray()));

                        IdPool.Add(dev.C_entrancedoor);
                    }

                    var queryEntrance = from foo in db.Devices
                                        where foo.type <(int)DeviceType.Indoor_Phone && foo.type> (int) DeviceType.Control_Server
                                        select foo;
                    foreach (var dev in queryEntrance)
                    {
                        bool equal = false;
                        foreach (var a in IdPool)
                        {
                            if (a == dev.roomid)
                            {
                                equal = true;
                                break;
                            }
                        }
                        if (equal)
                        {
                            continue;
                        }
                        List <string> sublist = new List <string>();
                        string        room    = DevicesAddressConverter.RoToChStr(dev.roomid);
                        sublist.Add(room);
                        sublist.Add(dev.id.ToString());
                        listViewUnRelate.Items.Add(new ListViewItem(sublist.ToArray()));
                    }
                }
                // Moding mode
            }
            else
            {
                InitAddNewCard();
            }
        }
コード例 #5
0
        private void BtnSave_Click(object sender, EventArgs e)
        {
            if (m_Card != null)// Moding mode
            {
                if ((textBoxRo.Text != "") && (textBoxResidentName.Text != ""))
                {
                    //using (ICMDBContext db = new ICMDBContext())
                    {
                        int lastMap = 0;
                        try
                        {
                            lastMap = db.Icmaps.OrderByDescending(p => p.C_id).Select(r => r.C_id).First();
                        }
                        catch { }
                        var card = (from c in db.Iccards
                                    where c.C_icno == m_Card.C_icno
                                    select c).FirstOrDefault();
                        if (card != null)
                        {
                            db.Iccards.Remove(card);
                            db.SaveChanges();
                            card.C_icno      = textBoxICCard.Text;
                            card.C_roomid    = textBoxRo.Text;
                            card.C_available = ComboBoxOnUse.SelectedIndex;
                            card.C_ictype    = ComboBoxIsResident.SelectedIndex;
                            card.C_username  = textBoxResidentName.Text;
                            if (checkBoxStartDate.Checked)
                            {
                                card.C_uptime = dateTimePickerStart.Value;
                            }
                            else
                            {
                                card.C_uptime = null;
                            }
                            if (checkBoxEndDate.Checked)
                            {
                                card.C_downtime = dateTimePickerEnd.Value;
                            }
                            else
                            {
                                card.C_downtime = null;
                            }
                            card.C_icid = id;

                            db.Iccards.Add(card);
                            db.SaveChanges();
                        }
                        // delete map
                        var map = from foo in db.Icmaps
                                  where foo.C_icno == card.C_icno
                                  select foo;
                        db.Icmaps.RemoveRange(map);
                        db.SaveChanges();
                        // del end

                        foreach (ListViewItem tmp in listViewRelate.Items)
                        {
                            string ro = tmp.SubItems[0].Text;

                            icmap MapSave = new icmap
                            {
                                C_icno         = textBoxICCard.Text,
                                C_entrancedoor = DevicesAddressConverter.ChStrToRo(ro),
                                C_id           = lastMap + 1
                            };
                            db.Icmaps.Add(MapSave);
                        }
                        db.SaveChanges();

                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show(strings.CardRoNameCannotBeNull);//"卡号、房号、姓名不得为空!");
                }
            }
            else// Adding mode
            {
                if (Check())
                {
                    //using (ICMDBContext db = new ICMDBContext())
                    {
                        int last    = 0;
                        int lastMap = 0;
                        try
                        {
                            last = db.Iccards.OrderByDescending(p => p.C_icid).Select(r => r.C_icid).First();
                        }
                        catch { }
                        try
                        {
                            lastMap = db.Icmaps.OrderByDescending(p => p.C_id).Select(r => r.C_id).First();
                        }
                        catch {}
                        Iccard CardSave = new Iccard
                        {
                            C_icno      = textBoxICCard.Text,
                            C_roomid    = textBoxRo.Text,
                            C_available = ComboBoxOnUse.SelectedIndex,
                            C_ictype    = ComboBoxIsResident.SelectedIndex,
                            C_username  = textBoxResidentName.Text,
                            C_uptime    = dateTimePickerStart.Value,
                            C_downtime  = dateTimePickerEnd.Value,
                            C_icid      = last + 1
                        };
                        foreach (ListViewItem tmp in listViewRelate.Items)
                        {
                            string ro = tmp.SubItems[0].Text;

                            icmap MapSave = new icmap
                            {
                                C_icno         = textBoxICCard.Text,
                                C_entrancedoor = DevicesAddressConverter.ChStrToRo(ro),
                                C_id           = lastMap + 1
                            };
                            db.Icmaps.Add(MapSave);
                        }
                        db.Iccards.Add(CardSave);
                        db.SaveChanges();
                        this.Close();
                    }
                }
            }
        }