Ejemplo n.º 1
0
        public async Task <Result <Customer> > RegisterCustomerAsync(RegisterCustomerOptions options)
        {
            if (string.IsNullOrWhiteSpace(options.Name))
            {
                return new Result <Customer>()
                       {
                           Code    = ResultCodes.BadRequest,
                           Message = $"Customer name is empty!"
                       }
            }
            ;

            if (string.IsNullOrWhiteSpace(options.SurName))
            {
                return new Result <Customer>()
                       {
                           Code    = ResultCodes.BadRequest,
                           Message = $"Customer sure name is empty!"
                       }
            }
            ;

            if (options.VatNumber.Length != 9)
            {
                return new Result <Customer>()
                       {
                           Code    = ResultCodes.BadRequest,
                           Message = $"VAT Number length is invalid!"
                       }
            }
            ;

            long vatNumber = 0;

            if (!long.TryParse(options.VatNumber, out vatNumber))
            {
                return new Result <Customer>()
                       {
                           Code    = ResultCodes.BadRequest,
                           Message = $"VAT number must be numeric!"
                       }
            }
            ;

            var customer = new Customer()
            {
                Name      = options.Name,
                SurName   = options.SurName,
                VatNumber = options.VatNumber,
                CustType  = options.CustType,
                Address   = options.Address
            };

            await _dbContext.AddAsync <Customer>(customer);

            await _dbContext.SaveChangesAsync();

            return(new Result <Customer>()
            {
                Code = ResultCodes.Success,
                Data = customer
            });
        }