Exemplo n.º 1
0
 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);
        }
Exemplo n.º 3
0
 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));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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));
 }
Exemplo n.º 11
0
        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();
                }
            }
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
 public List <Event> GetCreativeTeamEvents([FromBody] CreativeTeam creativeteam)
 {
     return(_eventsRepository.GetCreativeTeamEvents(creativeteam));
 }