コード例 #1
0
        public ICollection <string> ValidateCar(AddCarFormViewModel car)
        {
            var errors = new List <string>();

            if (string.IsNullOrWhiteSpace(car.Model) || car.Model.Length < CarModelMinLength || car.Model.Length > DefaultMaxLength)
            {
                errors.Add($"Model '{car.Model}' is not valid. It must be between {CarModelMinLength} and {DefaultMaxLength} characters long.");
            }

            if (car.Year == null)
            {
                errors.Add($"Car's year can not be empty");
            }

            Uri  uriResult;
            bool result = Uri.TryCreate(car.Image, UriKind.Absolute, out uriResult) &&
                          uriResult.Scheme == Uri.UriSchemeHttp;

            if (result)
            {
                errors.Add($"Invalid url address \"{car.Image}\"");
            }

            if (!Regex.IsMatch(car.PlateNumber, @"[A-Z]{2}[0-9]{4}[A-Z]{2}"))
            {
                errors.Add($"Invalid plate number \"{car.PlateNumber}\"");
            }


            return(errors);
        }
コード例 #2
0
        public void Add(AddCarFormViewModel car, string ownerId)
        {
            db.Add(new Car
            {
                Model       = car.Model,
                Year        = car.Year,
                PictureUrl  = car.Image,
                PlateNumber = car.PlateNumber,
                OwnerId     = ownerId,
            });

            db.SaveChanges();
        }
コード例 #3
0
        public HttpResponse Add(AddCarFormViewModel car)
        {
            if (!User.IsAuthenticated)
            {
                return(Error($"401 Unauthorized"));
            }

            var modelErrors = this.validator.ValidateCar(car);

            if (modelErrors.Any())
            {
                return(Error(modelErrors));
            }

            carsService.Add(car, User.Id);

            return(Redirect("Cars/All"));
        }