public override bool Create(RepositoryModel model) { if (model == null) throw new ArgumentException("model"); if (model.Name == null) throw new ArgumentException("name"); using (var database = CreateContext()) { model.Id = Guid.NewGuid(); var repository = new Repository { Id = model.Id, Name = model.Name, Logo = model.Logo, Group = model.Group, Description = model.Description, Anonymous = model.AnonymousAccess, AuditPushUser = model.AuditPushUser, }; database.Repositories.Add(repository); AddMembers(model.Users.Select(x => x.Id), model.Administrators.Select(x => x.Id), model.Teams.Select(x => x.Id), repository, database); try { database.SaveChanges(); } catch (DbUpdateException) { return false; } catch (UpdateException) { return false; } return true; } }
public bool Create(RepositoryModel model) { if (model == null) throw new ArgumentException("model"); if (model.Name == null) throw new ArgumentException("name"); using (var database = new BonoboGitServerContext()) { var repository = new Repository { Name = model.Name, Logo = model.Logo, Group = model.Group, Description = model.Description, Anonymous = model.AnonymousAccess, AuditPushUser = model.AuditPushUser, }; database.Repositories.Add(repository); AddMembers(model.Users, model.Administrators, model.Teams, repository, database); try { database.SaveChanges(); } catch (UpdateException) { return false; } } return true; }
public bool Create(RepositoryModel model) { if (model == null) throw new ArgumentException("model"); if (model.Name == null) throw new ArgumentException("name"); using (var database = new DataEntities()) { var repository = new Repository { Name = model.Name, Description = model.Description, Anonymous = model.AnonymousAccess, }; database.AddToRepository(repository); AddMembers(model.Users, model.Administrators, model.Teams, repository, database); try { database.SaveChanges(); } catch (UpdateException) { return false; } } return true; }
private RepositoryModel ConvertToModel(Repository item) { if (item == null) { return null; } return new RepositoryModel { Name = item.Name, Group = item.Group, Description = item.Description, AnonymousAccess = item.Anonymous, Users = item.Users.Select(i => i.Username).ToArray(), Teams = item.Teams.Select(i => i.Name).ToArray(), Administrators = item.Administrators.Select(i => i.Username).ToArray(), AuditPushUser = item.AuditPushUser, Logo = item.Logo }; }
private void AddMembers(IEnumerable<string> users, IEnumerable<string> admins, IEnumerable<string> teams, Repository repo, BonoboGitServerContext database) { if (admins != null) { var administrators = database.Users.Where(i => admins.Contains(i.Username)); foreach (var item in administrators) { repo.Administrators.Add(item); } } if (users != null) { var permittedUsers = database.Users.Where(i => users.Contains(i.Username)); foreach (var item in permittedUsers) { repo.Users.Add(item); } } if (teams != null) { var permittedTeams = database.Teams.Where(i => teams.Contains(i.Name)); foreach (var item in permittedTeams) { repo.Teams.Add(item); } } }
/// <summary> /// Create a new Repository object. /// </summary> /// <param name="name">Initial value of the Name property.</param> /// <param name="anonymous">Initial value of the Anonymous property.</param> public static Repository CreateRepository(global::System.String name, global::System.Boolean anonymous) { Repository repository = new Repository(); repository.Name = name; repository.Anonymous = anonymous; return repository; }
/// <summary> /// Deprecated Method for adding a new object to the Repository EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToRepository(Repository repository) { base.AddObject("Repository", repository); }
private RepositoryModel ConvertToModel(Repository item) { if (item != null) { return new RepositoryModel { Name = item.Name, Description = item.Description, AnonymousAccess = item.Anonymous, Users = item.Users.Select(i => i.Username).ToArray(), Teams = item.Teams.Select(i => i.Name).ToArray(), Administrators = item.Administrators.Select(i => i.Username).ToArray(), }; } return null; }
private void AddMembers(string[] users, string[] admins, string[] teams, Repository repo, DataEntities database) { if (admins != null) { var administrators = database.User.Where(i => admins.Contains(i.Username)); foreach (var item in administrators) { repo.Administrators.Add(item); } } if (users != null) { var permittedUsers = database.User.Where(i => users.Contains(i.Username)); foreach (var item in permittedUsers) { repo.Users.Add(item); } } if (teams != null) { var permittedTeams = database.Team.Where(i => teams.Contains(i.Name)); foreach (var item in permittedTeams) { repo.Teams.Add(item); } } }
private RepositoryModel ConvertToModel(Repository item) { if (item == null) { return null; } return new RepositoryModel { Id = item.Id, Name = item.Name, Group = item.Group, Description = item.Description, AnonymousAccess = item.Anonymous, Users = item.Users.Select(user => user.ToModel()).ToArray(), Teams = item.Teams.Select(TeamToTeamModel).ToArray(), Administrators = item.Administrators.Select(user => user.ToModel()).ToArray(), AuditPushUser = item.AuditPushUser, AllowAnonymousPush = item.AllowAnonymousPush, Logo = item.Logo, LinksRegex = item.LinksRegex, LinksUrl = item.LinksUrl, LinksUseGlobal = item.LinksUseGlobal }; }
public bool Create(RepositoryModel model) { if (model == null) throw new ArgumentException("model"); if (model.Name == null) throw new ArgumentException("name"); using (var database = CreateContext()) { model.EnsureCollectionsAreValid(); model.Id = Guid.NewGuid(); var repository = new Repository { Id = model.Id, Name = model.Name, Logo = model.Logo, Group = model.Group, Description = model.Description, Anonymous = model.AnonymousAccess, AllowAnonymousPush = model.AllowAnonymousPush, AuditPushUser = model.AuditPushUser, LinksUseGlobal = model.LinksUseGlobal, LinksUrl = model.LinksUrl, LinksRegex = model.LinksRegex }; database.Repositories.Add(repository); AddMembers(model.Users.Select(x => x.Id), model.Administrators.Select(x => x.Id), model.Teams.Select(x => x.Id), repository, database); try { database.SaveChanges(); } catch (DbUpdateException ex) { Trace.TraceWarning("Failed to create repo {0} - {1}", model.Name, ex); return false; } catch (UpdateException) { return false; } return true; } }