コード例 #1
0
        public RelationDetailsCreateModel TryFormatPostalCode(RelationDetailsCreateModel relationModel)
        {
            string postalCodeMask = GetPostalCodeMask(relationModel);

            relationModel.PostalCode = ModifyPostalCode(relationModel.PostalCode, postalCodeMask);

            return(relationModel);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public async Task <ActionResult <RelationDetailsViewModel> > PostRelation(RelationDetailsCreateModel relationModel)
        {
            try
            {
                var relation = await _relationsService.CreateModel(relationModel);

                return(CreatedAtAction("GetRelation", new { id = relation.Id }, relation));
            }
            catch (Exception ex)
            {
                return(base.BadRequest(new ProblemDetails()
                {
                    Title = ex.Message, Detail = ex.ToString()
                }));
            }
        }
コード例 #4
0
        public string GetPostalCodeMask(RelationDetailsCreateModel relationModel)
        {
            string postalCodeFormatMask;

            if (relationModel.PostalCode != null && relationModel.Country != null)
            {
                postalCodeFormatMask = _context.Countries
                                       .Where(n => n.Name == relationModel.Country && n.PostalCodeFormat != null)
                                       .Select(n => n.PostalCodeFormat).FirstOrDefault();

                if (postalCodeFormatMask != null)
                {
                    return(postalCodeFormatMask);
                }
                else
                {
                    return("");
                }
            }
            else
            {
                return("");
            }
        }
コード例 #5
0
        public async Task <RelationDetailsViewModel> CreateModel(RelationDetailsCreateModel relationModel)
        {
            var relation = await _repositoryWrapper.Relations.PostRelationAsync(relationModel);

            return(relation);
        }