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); }
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(); }
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")); }