Example #1
0
        private async void BtnNew_Click(object sender, EventArgs e)
        {
            if (ContainsEmail())
            {
                var email = new Email
                {
                    Deleted     = false,
                    CreateDate  = DateTime.Now,
                    Description = TbDescription.Text,
                    Mail        = TbEmail.Text
                };
                _emails.Add(email);
                TvEmails.AddObject(email);
                if (_isOpenedByEditor)
                {
                    return;
                }
                var db = new DataBase();
                switch (_index)
                {
                case 1:
                    var nodeToOrga = new EmailToOrganization
                    {
                        CreateDate     = DateTime.Now,
                        Deleted        = false,
                        EmailId        = email.Id,
                        OrganizationId = _id
                    };
                    db.EmailToOrganizationNode.Add(nodeToOrga);
                    break;

                case 2:
                    var nodeToGroup = new EmailToGroup
                    {
                        CreateDate = DateTime.Now,
                        Deleted    = false,
                        EmailId    = email.Id,
                        GroupId    = _id
                    };
                    db.EmailToGroupNode.Add(nodeToGroup);
                    break;

                case 3:
                    var nodeToMember = new EmailToMember
                    {
                        CreateDate = DateTime.Now,
                        Deleted    = false,
                        EmailId    = email.Id,
                        MemberId   = _id
                    };
                    db.EmailToMemberNode.Add(nodeToMember);
                    break;
                }
                db.Emails.Add(email);
                await db.SaveChangesAsync();
            }
        }
        private async void BtnSave_Click(object sender, EventArgs e)
        {
            _organization.City        = TbCity.Text;
            _organization.Country     = TbCountry.Text;
            _organization.Description = TbDescription.Text;
            _organization.HouseNumber = TbHouseNumber.Text;
            _organization.Name        = TbName.Text;
            _organization.State       = TbState.Text;
            _organization.Street      = TbStreet.Text;
            _organization.Type        = TbType.Text;
            _organization.PostalCode  = TbZipCode.Text;
            _organization.Founded     = DtpFounded.Value;
            var db = new DataBase();

            if (_organization.Id == 0)
            {
                _organization.CreateDate = DateTime.Now;
                db.Organizations.Add(_organization);
            }
            else
            {
                db.Entry(_organization).State = EntityState.Modified;
            }

            if (_gotEmails)
            {
                foreach (var email in _emails)
                {
                    var organizationNode = await db.EmailToOrganizationNode.FirstOrDefaultAsync(d => d.OrganizationId == _organization.Id && d.EmailId == email.Id);

                    if (organizationNode != null)
                    {
                        continue;
                    }
                    var emailToOrganizationNode = new EmailToOrganization
                    {
                        EmailId        = email.Id,
                        CreateDate     = DateTime.Now,
                        Deleted        = false,
                        OrganizationId = _organization.Id
                    };
                    db.EmailToOrganizationNode.Add(emailToOrganizationNode);
                }
                db.Emails.AddRange(_emails);
            }

            if (_gotHomepage)
            {
                foreach (var homepage in _homepages)
                {
                    var organizationNode = await db.HomepageToOrganizationNode.FirstOrDefaultAsync(d => d.OrganizationId == _organization.Id && d.HomepageId == homepage.Id);

                    if (organizationNode != null)
                    {
                        continue;
                    }

                    var homepageToOrganizationNode = new HomepageToOrganization
                    {
                        HomepageId     = homepage.Id,
                        CreateDate     = DateTime.Now,
                        Deleted        = false,
                        OrganizationId = _organization.Id
                    };
                    db.HomepageToOrganizationNode.Add(homepageToOrganizationNode);
                }
                db.Homepages.AddRange(_homepages);
            }

            if (_gotPhone)
            {
                foreach (var number in _phoneNumbers)
                {
                    var organizationNode = await db.PhoneToOrganizationNode.FirstOrDefaultAsync(d => d.OrganizationId == _organization.Id && d.PhoneNumberId == number.Id);

                    if (organizationNode != null)
                    {
                        continue;
                    }
                    var phoneToOrganizationNode = new PhoneToOrganization
                    {
                        PhoneNumberId  = number.Id,
                        CreateDate     = DateTime.Now,
                        Deleted        = false,
                        OrganizationId = _organization.Id
                    };
                    db.PhoneToOrganizationNode.Add(phoneToOrganizationNode);
                }
                db.PhoneNumbers.AddRange(_phoneNumbers);
            }
            await db.SaveChangesAsync();

            Close();
        }