public ICollection <string> ValidateRepository(RepositoryFormModel model)
        {
            var errors = new List <string>();

            if (model.Name.Length < RepositoryMinName || model.Name.Length > RepositoryMaxName)
            {
                errors.Add($"Repository '{model.Name}' is not valid. It must be between {RepositoryMinName} and {RepositoryMaxName} characters long.");
            }

            if (model.RepositoryType != RepositoryPublicType && model.RepositoryType != RepositoryPrivateType)
            {
                errors.Add($"Repository type can be either '{RepositoryPublicType}' or '{RepositoryPrivateType}'.");
            }

            return(errors);
        }
        public HttpResponse Create(RepositoryFormModel model)
        {
            var modelErrors = this.validator.ValidateRepository(model);

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

            var repository = new Repository
            {
                Name     = model.Name,
                IsPublic = model.RepositoryType == RepositoryPublicType,
                OwnerId  = this.User.Id
            };

            this.data.Repositories.Add(repository);

            this.data.SaveChanges();

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