public async Task <RelationDetailsViewModel> PostRelationAsync(RelationDetailsCreateModel relationModel)
        {
            TryFormatPostalCode(relationModel);

            Relation relation = new Relation()
            {
                Id              = relationModel.Id,
                Name            = relationModel.Name,
                FullName        = relationModel.FullName,
                TelephoneNumber = relationModel.TelephoneNumber,
                EmailAddress    = relationModel.EmailAddress
            };

            RelationAddress relationAddress = new RelationAddress()
            {
                RelationId  = relation.Id,
                CountryName = relationModel.Country,
                City        = relationModel.City,
                Street      = relationModel.Street,
                Number      = relationModel.StreetNumber,
                PostalCode  = relationModel.PostalCode
            };

            _context.Relations.Add(relation);
            _context.RelationAddresses.Add(relationAddress);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException ex)
            {
                if (RelationExists(relation.Id))
                {
                    throw ex;
                }
                else
                {
                    throw;
                }
            }

            RelationDetailsViewModel relationView = await _context.Relations.Where(r => r.Id == relation.Id).Select(v => new RelationDetailsViewModel
            {
                Id              = v.Id,
                Name            = v.Name,
                FullName        = v.FullName,
                TelephoneNumber = v.TelephoneNumber,
                EmailAddress    = v.EmailAddress,
                Country         = v.RelationAddress.CountryName,
                City            = v.RelationAddress.City,
                Street          = v.RelationAddress.Street,
                StreetNumber    = v.RelationAddress.Number,
                PostalCode      = v.RelationAddress.PostalCode
            }).FirstOrDefaultAsync();

            return(relationView);
        }
        public async Task <RelationDetailsEditModel> PutRelation(Guid id, RelationDetailsEditModel relationModel)
        {
            Relation relation = new Relation()
            {
                Id              = id,
                Name            = relationModel.Name,
                FullName        = relationModel.FullName,
                TelephoneNumber = relationModel.TelephoneNumber,
                EmailAddress    = relationModel.EmailAddress
            };

            RelationAddress relationAddress = new RelationAddress()
            {
                RelationId  = id,
                CountryName = relationModel.Country,
                City        = relationModel.City,
                Street      = relationModel.Street,
                Number      = relationModel.StreetNumber,
                PostalCode  = relationModel.PostalCode
            };

            _context.Entry(relation).State        = EntityState.Modified;
            _context.Entry(relationAddress).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                if (!RelationExists(id))
                {
                    throw ex;
                }
                else
                {
                    throw;
                }
            }

            return(relationModel);
        }
        protected void ButtonNew_Click(object sender, EventArgs e)
        {
            RelationAddress   NewObj  = new RelationAddress();
            ModelTMSContainer Temp    = new ModelTMSContainer(Session["CustomerConnectString"].ToString(), Session);
            EntityKey         TempKey = new EntityKey("ModelTMSContainer.RelationSet", "Id", Guid.Parse(Request.Params["Id"]));
            Relation          TempObj = Temp.GetObjectByKey(TempKey) as Relation;

            NewObj.Relation = TempObj;

            NewObj.AdressLine1 = "";
            NewObj.AdressLine2 = "";
            NewObj.AdressLine3 = "";
            NewObj.City        = "";
            NewObj.Country     = "";
            NewObj.AdressType  = "";
            NewObj.ZIPcode     = "";

            Temp.AddToRelationAddressSet(NewObj);
            Temp.SaveChanges(SaveOptions.DetectChangesBeforeSave);

            WebUserControlCustomerRelationAddress1.KeyID   = NewObj.Id;
            WebUserControlCustomerRelationAddress1.Visible = true;
        }