public CreativeTeam GetCreativeTeamById(Guid creativeTeamId) { using (var connection = new NpgsqlConnection(_connectionString)) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandText = "select * from creativeteam where id = @creativeteamid"; command.Parameters.AddWithValue("@creativeteamid", creativeTeamId); using (var reader = command.ExecuteReader()) { if (!reader.Read()) { throw new ArgumentException($"Творческого коллектива с Id {creativeTeamId} не нашлось"); } var newCreativeTeam = new CreativeTeam() { Id = reader.GetGuid(reader.GetOrdinal("id")), About = reader.GetString(reader.GetOrdinal("about")), SubscribersCount = reader.GetInt32(reader.GetOrdinal("subscriberscount")), Email = reader.GetString(reader.GetOrdinal("email")), Photo = reader.GetGuid(reader.GetOrdinal("photo")), Name = reader.GetString(reader.GetOrdinal("name")), Password = reader.GetString(reader.GetOrdinal("password")), Genre = reader.GetString(reader.GetOrdinal("genre")), Rating = reader.GetDouble(reader.GetOrdinal("rating")) }; return(newCreativeTeam); } } } }
public void ShouldUpdateCreativeTeam() { var creativeteam = new CreativeTeam { About = "", Email = "*****@*****.**", Genre = "rock/hardcore/post-punk", Name = "dicklovers", Password = "******", Rating = 3.2, SubscribersCount = 0 }; var photo = new File { Bytes = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 }, FileExtension = ".jpeg", Filename = "dicklovers.jpeg" }; var creativeteamrepository = new CreativeTeamRepository(_connectionString); var newcreativetem = creativeteamrepository.CreateCreativeTeam(creativeteam, photo.Bytes, photo.Filename); _tempCreativeteam.Add(newcreativetem.Id); newcreativetem.Email = "*****@*****.**"; var result = creativeteamrepository.UpdateCreativeTeam(newcreativetem); Assert.AreEqual(newcreativetem.Email, result.Email); }
public CreativeTeam UpdateCreativeTeam(CreativeTeam newCreativeTeam) { using (var connection = new NpgsqlConnection(_connectionString)) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandText = "update creativeteam set name = @name, " + "genre = @genre, " + "about = @about, " + "subscriberscount = @subscriberscount, " + "photo = @photo, " + "rating = @rating, " + "password = @password, " + "email = @email " + "WHERE id = @creativeteamid"; command.Parameters.AddWithValue("@creativeteamid", newCreativeTeam.Id); command.Parameters.AddWithValue("@name", newCreativeTeam.Name); command.Parameters.AddWithValue("@genre", newCreativeTeam.Genre); command.Parameters.AddWithValue("@subscriberscount", newCreativeTeam.SubscribersCount); command.Parameters.AddWithValue("@photo", newCreativeTeam.Photo); command.Parameters.AddWithValue("@password", newCreativeTeam.Password); command.Parameters.AddWithValue("@rating", newCreativeTeam.Rating); command.Parameters.AddWithValue("@email", newCreativeTeam.Email); command.Parameters.AddWithValue("@about", newCreativeTeam.About); command.ExecuteNonQuery(); } } return(newCreativeTeam); }
public CreativeTeam Create([FromBody] CreateCreativeTeamParameters parameters) { CreativeTeam creativeTeam = parameters.creativeTeam; var photo = parameters.photo; var filename = parameters.filename; return(_creativeTeamRepository.CreateCreativeTeam(creativeTeam, photo, filename)); }
public CreativeTeam CreateCreativeTeam(CreativeTeam creativeTeam, byte[] photo, string filename) { using (var connection = new NpgsqlConnection(_connectionString)) { try { connection.Open(); } catch (NpgsqlException ex) { throw ex; } using (var tran = connection.BeginTransaction()) { File file = new File(); file.Id = Guid.NewGuid(); file.Bytes = photo; file.Filename = filename; file.FileExtension = filename.Split('.').Last(); creativeTeam.Id = Guid.NewGuid(); creativeTeam.Photo = file.Id; using (var command = connection.CreateCommand()) { command.Transaction = tran; command.CommandText = "insert into files (id, filename, fileextension, bytes)" + "values (@id, @filename, @fileextension, @bytes)"; command.Parameters.AddWithValue("@id", file.Id); command.Parameters.AddWithValue("@filename", file.Filename); command.Parameters.AddWithValue("@fileextension", file.FileExtension); command.Parameters.AddWithValue("@bytes", file.Bytes); command.ExecuteNonQuery(); } using (var command = connection.CreateCommand()) { command.Transaction = tran; command.CommandText = "insert into creativeteam (id, name, genre, about, subscriberscount, rating, password, email, photo)" + " values (@id, @name, @genre, @about, @subscriberscount, @rating, @password, @email, @photo)"; command.Parameters.AddWithValue("@id", creativeTeam.Id); command.Parameters.AddWithValue("@name", creativeTeam.Name); command.Parameters.AddWithValue("@genre", creativeTeam.Genre); command.Parameters.AddWithValue("@about", creativeTeam.About); command.Parameters.AddWithValue("@photo", creativeTeam.Photo); command.Parameters.AddWithValue("@subscriberscount", creativeTeam.SubscribersCount); command.Parameters.AddWithValue("@rating", creativeTeam.Rating); command.Parameters.AddWithValue("@password", creativeTeam.Password); command.Parameters.AddWithValue("@email", creativeTeam.Email); command.ExecuteNonQuery(); } tran.Commit(); } } return(creativeTeam); }
public void ShouldGoToEvent() { var user = new User { Age = 18, City = "Питер", Email = "*****@*****.**", Name = "Марина", Surname = "Купцова", Password = "******", }; var file = new File { Bytes = new byte[0], FileExtension = ".jpg", Filename = "fotka" }; var creativeteam = new CreativeTeam(); creativeteam.About = "test"; creativeteam.Email = "*****@*****.**"; creativeteam.Genre = "rock/hardcore/post-punk"; creativeteam.Name = "testband"; creativeteam.Password = "******"; creativeteam.Rating = 3.2; creativeteam.SubscribersCount = 0; var teamevent = new Event { Place = "СПб", DateAndTime = DateTime.Now, Description = "", ParticipantCount = 13 }; var Bytes = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 }; var FileExtension = ".jpeg"; var Filename = "test.jpeg"; var usersRepository = new UserRepository(_connectionString); var eventRepository = new EventRepository(_connectionString); var creativeteamRepository = new CreativeTeamRepository(_connectionString); var newcreativeteam = creativeteamRepository.CreateCreativeTeam(creativeteam, Bytes, Filename); _tempCreativeTeam.Add(newcreativeteam.Id); var newuser = usersRepository.CreateUser(user, file); _tempUsers.Add(newuser.Id); var newevent = eventRepository.CreateEvent(teamevent, Bytes, Filename, newcreativeteam.Id); _tempEvents.Add(newevent.Id); usersRepository.GoToEvent(newuser.Id, newevent.Id); }
public void ShouldUpdateEvent() { var creativeteam = new CreativeTeam { About = "test", Email = "*****@*****.**", Genre = "rock/hardcore/post-punk", Name = "testband", Password = "******", Rating = 3.2, SubscribersCount = 0 }; var photo = new File { Bytes = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 }, FileExtension = ".jpeg", Filename = "test.jpeg" }; var newEvent = new Event { DateAndTime = DateTime.Now, Description = "Big concert on the street of your city!", ParticipantCount = 0, Place = "Saint-Petersburg, Russia" }; var file = new File { Bytes = new byte[] { 1, 12, 123, 13 }, FileExtension = ".jpg", Filename = "fotka" }; var creativeteamRepository = new CreativeTeamRepository(_connectionString); var newcreativeteam = creativeteamRepository.CreateCreativeTeam(creativeteam, photo.Bytes, photo.Filename); _tempCreativeTeam.Add(newcreativeteam.Id); var eventrepository = new EventRepository(_connectionString); var teamEvent = eventrepository.CreateEvent(newEvent, file.Bytes, file.Filename, newcreativeteam.Id); _tempEvent.Add(teamEvent.Id); teamEvent.Description = "Big concert!!!!!!!!!!!!!!!!!"; var result = eventrepository.UpdateEvent(teamEvent); Assert.AreEqual(teamEvent.Description, result.Description); }
public void Subscribe() { var user = new User { Age = 18, City = "Питер", Email = "*****@*****.**", Name = "Марина", Surname = "Купцова", Password = "******", }; var file = new File { Bytes = new byte[0], FileExtension = ".jpg", Filename = "fotka" }; var Bytes = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 }; var Filename = "test.jpeg"; var creativeteam = new CreativeTeam(); creativeteam.About = "test"; creativeteam.Email = "*****@*****.**"; creativeteam.Genre = "rock/hardcore/post-punk"; creativeteam.Name = "testband"; creativeteam.Password = "******"; creativeteam.Rating = 3.2; creativeteam.SubscribersCount = 0; var usersRepository = new UserRepository(_connectionString); var creativeteamRepository = new CreativeTeamRepository(_connectionString); var newUser = usersRepository.CreateUser(user, file); _tempUsers.Add(newUser.Id); var team = creativeteamRepository.CreateCreativeTeam(creativeteam, Bytes, Filename); _tempCreativeTeam.Add(team.Id); usersRepository.Subscribe(newUser.Id, team.Id); }
public List <Event> GetCreativeTeamEvents(CreativeTeam creativeTeam) { List <Event> creativeTeamEvents = new List <Event>(); using (var connection = new NpgsqlConnection(_connectionString)) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandText = "select e.id, e.datetime, e.photo, e.description, e.participantcount, e.place " + "FROM event e " + "join creativeteamevent cte ON e.id = cte.eventid " + "join creativeteam ct ON cte.creativeteamid = ct.id " + "where ct.id = @creativeteamid"; command.Parameters.AddWithValue("@creativeteamid", creativeTeam.Id); using (var reader = command.ExecuteReader()) { try { while (reader.Read()) { Event curEvent = new Event(); curEvent.Id = reader.GetGuid(reader.GetOrdinal("id")); curEvent.Description = reader.GetString(reader.GetOrdinal("description")); curEvent.DateAndTime = reader.GetDateTime(reader.GetOrdinal("datetime")); curEvent.ParticipantCount = reader.GetInt32(reader.GetOrdinal("participantcount")); curEvent.Photo = reader.GetGuid(reader.GetOrdinal("photo")); curEvent.Place = reader.GetString(reader.GetOrdinal("place")); creativeTeamEvents.Add(curEvent); } } catch (Exception ex) { throw ex; } } } } return(creativeTeamEvents); }
public CreativeTeam Update([FromBody] CreativeTeam newCreativeTeam) { return(_creativeTeamRepository.UpdateCreativeTeam(newCreativeTeam)); }
public void DeleteCreativeTeam(CreativeTeam creativeTeam) { using (var connection = new NpgsqlConnection(_connectionString)) { try { connection.Open(); } catch (NpgsqlException ex) { throw ex; } using (var tran = connection.BeginTransaction()) { using (var command = connection.CreateCommand()) { command.Transaction = tran; command.CommandText = "update creativeteam set photo=null where id=@id"; command.Parameters.AddWithValue("@id", creativeTeam.Id); command.ExecuteNonQuery(); } using (var command = connection.CreateCommand()) { command.Transaction = tran; command.CommandText = "delete from files where id=@photoid"; command.Parameters.AddWithValue("@photoid", creativeTeam.Photo); command.ExecuteNonQuery(); } using (var command = connection.CreateCommand()) { command.Transaction = tran; command.CommandText = "delete from subscribes where creativeteamid=@id"; command.Parameters.AddWithValue("@id", creativeTeam.Id); command.ExecuteNonQuery(); } List <Event> events = new List <Event>(); EventRepository eventrepo = new EventRepository(_connectionString); events = eventrepo.GetCreativeTeamEvents(creativeTeam); foreach (var e in events) { eventrepo.DeleteEvent(e); } using (var command = connection.CreateCommand()) { command.Transaction = tran; command.CommandText = "delete from creativeteam where id=@id"; command.Parameters.AddWithValue("@id", creativeTeam.Id); command.ExecuteNonQuery(); } tran.Commit(); } } }
public void ShoulGetUserUpcomingEvents() { var user = new User { Age = 18, City = "Москва", Email = "*****@*****.**", Name = "Марина", Surname = "Купцова", Password = "******", }; var creativeteam = new CreativeTeam { About = "test", Email = "*****@*****.**", Genre = "rock/hardcore/post-punk", Name = "testband", Password = "******", Rating = 3.2, SubscribersCount = 0 }; var photo = new File { Bytes = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 }, FileExtension = ".jpeg", Filename = "test.jpeg" }; var newEvent = new Event { DateAndTime = DateTime.Now, Description = "Big concert on the street of your city!", ParticipantCount = 0, Place = "Saint-Petersburg, Russia1" }; var newEvent2 = new Event { DateAndTime = DateTime.Now, Description = "Big concert!!!!!", ParticipantCount = 0, Place = "Saint-Petersburg, Russia1" }; var file = new File { Bytes = new byte[] { 1, 12, 123, 13 }, FileExtension = ".jpg", Filename = "fotka" }; var userRepository = new UserRepository(_connectionString); var eventRepository = new EventRepository(_connectionString); var creativeteamRepository = new CreativeTeamRepository(_connectionString); var newUser = userRepository.CreateUser(user, file); _tempUsers.Add(newUser.Id); var newCreativeteam = creativeteamRepository.CreateCreativeTeam(creativeteam, photo.Bytes, photo.Filename); _tempCreativeTeam.Add(newCreativeteam.Id); var teamEvent = eventRepository.CreateEvent(newEvent, photo.Bytes, photo.Filename, newCreativeteam.Id); var teamEvent2 = eventRepository.CreateEvent(newEvent2, photo.Bytes, photo.Filename, newCreativeteam.Id); _tempEvent.Add(teamEvent.Id); _tempEvent.Add(teamEvent2.Id); userRepository.GoToEvent(newUser.Id, teamEvent2.Id); var usersEvents = new List <Event>(); usersEvents = eventRepository.GetUserUpcomingEvents(newUser); var result = usersEvents.Find(x => x.Id == teamEvent2.Id); Assert.AreEqual(teamEvent2.Description, result.Description); }
public List <Event> GetCreativeTeamEvents([FromBody] CreativeTeam creativeteam) { return(_eventsRepository.GetCreativeTeamEvents(creativeteam)); }