Ejemplo n.º 1
0
        public CCreateWindow(CFaceWithContactID faceWithContactID)
        {
            InitializeComponent();

            if (faceWithContactID != null)
            {
                FaceWithContactID = faceWithContactID;
            }
            else
            {
                _faceWithContactID = new CFaceWithContactID(new CIndividual("1", "1", "1"), ETypeFace.Individual);
            }
        }
Ejemplo n.º 2
0
        private CFaceWithContactID GetFaceWithContact()//Только для таблицы Лица
        {
            DataRowView item       = (DataRowView)dataGrid.SelectedItem;
            string      family     = item.Row.ItemArray[3].ToString();
            string      name       = item.Row.ItemArray[4].ToString();
            string      patronymic = item.Row.ItemArray[5].ToString();
            CIndividual individual = new CIndividual(family, name, patronymic);
            ETypeFace   typeFace   = ETypeFace.Individual;

            if (item.Row.ItemArray[1].ToString() == "Юридическое лицо")
            {
                string post         = item.Row.ItemArray[2].ToString();
                string organization = item.Row.ItemArray[5].ToString();
                individual = new CEntityIndividual(family, name, patronymic, post, organization);
                typeFace   = ETypeFace.Entity;
            }

            DataTable dataTable = SelectQuery("SELECT * FROM FC_CONTACT WHERE FC_CONTACT.ID_FC = " + item.Row.ItemArray[0].ToString());

            CFaceWithContactID faceWithContact = new CFaceWithContactID(individual, typeFace);

            foreach (DataRow row in dataTable.Rows)
            {
                switch (Convert.ToInt32(row[2].ToString()))
                {
                case (int)ETypeContract.Phone: {
                    faceWithContact.CContactIds.Add(new CContactId(new CPhoneContact(row[3].ToString(), row[4].ToString()), row[0].ToString()));
                    break;
                }

                case (int)ETypeContract.Address: {
                    faceWithContact.CContactIds.Add(new CContactId(new CAddressContact(row[3].ToString(), row[4].ToString()), row[0].ToString()));
                    break;
                }

                case (int)ETypeContract.Email: {
                    faceWithContact.CContactIds.Add(new CContactId(new CEmailContact(row[3].ToString(), row[4].ToString()), row[0].ToString()));
                    break;
                }
                }
            }
            return(faceWithContact);
        }
Ejemplo n.º 3
0
        private void ButtonChange_Click(object sender, RoutedEventArgs e)
        {
            try {
                if (dataGrid.SelectedIndex == -1)
                {
                    throw new Exception("Выберете строку!");
                }

                switch (comboBox.SelectedIndex)
                {
                case 0: {//Контакты
                    var            v      = GetContact();
                    CContactWindow window = new CContactWindow(GetContact());
                    window.ShowDialog();
                    if (window.Have)
                    {
                        DataRowView item   = (DataRowView)dataGrid.SelectedItem;
                        string      id     = item.Row.ItemArray[0].ToString();
                        string      idFace = item.Row.ItemArray[1].ToString();

                        CContact pContact    = window.Contact;
                        string   sContact    = pContact.GetContact();
                        string   description = pContact.Description;

                        switch (pContact.GetTypeContract())
                        {
                        case ETypeContract.Phone: {
                            SelectQuery($"UPDATE FC_CONTACT SET ID_FC = {idFace}, ID_TYPE = \"{(int)ETypeContract.Phone}\", " +
                                        $"CONTACT = \"{sContact}\", DESCRIPTION = \"{description}\" WHERE ID = {id};");
                            break;
                        }

                        case ETypeContract.Address: {
                            SelectQuery($"UPDATE FC_CONTACT SET ID_FC = {idFace}, ID_TYPE = \"{(int)ETypeContract.Address}\", " +
                                        $"CONTACT = \"{sContact}\", DESCRIPTION = \"{description}\" WHERE ID = {id};");
                            break;
                        }

                        case ETypeContract.Email: {
                            SelectQuery($"UPDATE FC_CONTACT SET ID_FC = {idFace}, ID_TYPE = \"{(int)ETypeContract.Email}\", " +
                                        $"CONTACT = \"{sContact}\", DESCRIPTION = \"{description}\" WHERE ID = {id};");
                            break;
                        }
                        }
                    }

                    break;
                }

                case 2: {//Лица
                    CCreateWindow      window          = new CCreateWindow(GetFaceWithContact());
                    CFaceWithContactID faceWithContact = GetFaceWithContact();
                    window.ShowDialog();
                    if (window.Have)
                    {
                        CIndividual individual = window.FaceWithContactID.Individual;
                        DataRowView item       = (DataRowView)dataGrid.SelectedItem;
                        string      id         = item.Row.ItemArray[0].ToString();

                        if (individual is CEntityIndividual entityIndividual)
                        {
                            SelectQuery($"UPDATE FC_FACE SET ID_TYPE = {(int)ETypeFace.Entity}, POST = \"{entityIndividual.Post}\", " +
                                        $"FAMILY = \"{entityIndividual.Family}\", NAME1 = \"{entityIndividual.Name}\", NAME2 = \"{entityIndividual.Patronymic}\"" +
                                        $", NAME = \"{entityIndividual.Organization}\" WHERE ID = {id};");
                        }
                        else
                        {
                            SelectQuery($"UPDATE FC_FACE SET ID_TYPE = {(int)ETypeFace.Individual}, POST = \"\", " +
                                        $"FAMILY = \"{individual.Family}\", NAME1 = \"{individual.Name}\", NAME2 = \"{individual.Patronymic}\"" +
                                        $", NAME = \"\" WHERE ID = {id};");
                        }

                        DataTable dataTable = SelectQuery("select max(id) from FC_FACE;");
                        DataRow   row       = dataTable.Rows[0];
                        int       iCounter  = 0;

                        foreach (CContactId contactId in faceWithContact.CContactIds)
                        {
                            bool flagOnDelete = true;
                            iCounter++;

                            foreach (CContactId windowContactId in window.FaceWithContactID.CContactIds)
                            {
                                if (contactId.ID == windowContactId.ID)
                                {
                                    SelectQuery($"UPDATE FC_CONTACT SET ID_TYPE = \"{(int)windowContactId.Contact.GetTypeContract()}\", " +
                                                $"CONTACT = \"{windowContactId.Contact.GetContact()}\", DESCRIPTION = \"{windowContactId.Contact.Description}\" " +
                                                $"WHERE FC_CONTACT.ID = {windowContactId.ID} AND FC_CONTACT.ID_FC = {id};");//Изменение контактов
                                    flagOnDelete = false;
                                    break;
                                }
                            }

                            if (flagOnDelete)
                            {
                                SelectQuery($"DELETE FROM FC_CONTACT WHERE FC_CONTACT.ID = {contactId.ID}");//Удаление контактов
                                iCounter--;
                            }
                        }

                        for (int iIndex = iCounter; iIndex < window.FaceWithContactID.CContactIds.Count; iIndex++)
                        {
                            CContactId windowContactId = window.FaceWithContactID.CContactIds[iIndex];
                            SelectQuery($"INSERT INTO FC_CONTACT (ID_FC, ID_TYPE, CONTACT, DESCRIPTION) VALUES({id}, " +
                                        $"{(int)windowContactId.Contact.GetTypeContract()}, \"{windowContactId.Contact.GetContact()}\", " +
                                        $"\"{windowContactId.Contact.Description}\"); ");//Добавление контактов
                        }
                    }

                    break;
                }

                default: {
                    throw new Exception("В данной таблице нельзя изменить запись!");
                }
                }
                Update();
            } catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }