コード例 #1
0
        public Channel AddChannel(string name, string description, string tagsToString, string type)
        {
            using (var db = new MishMashDbContext())
            {
                var channel = new Channel
                {
                    Name        = name,
                    Description = description,
                    Type        = Enum.Parse <Type>(type)
                };

                db.Channels.Add(channel);
                db.SaveChanges();

                var tags = tagsToString.Split(new[] { ' ', ',', ';' }, StringSplitOptions.RemoveEmptyEntries);
                var list = new List <Tag>();
                foreach (var tagString in tags)
                {
                    var tag = new Tag
                    {
                        Name      = tagString,
                        ChannelId = channel.Id
                    };
                    list.Add(tag);
                }

                db.Tags.AddRange(list);
                db.SaveChanges();

                return(channel);
            }
        }
コード例 #2
0
        public void CreateChannel(CreateChannelModel model)
        {
            var tagNames = model.Tags.Split(new[] { ", ", "," }, StringSplitOptions.RemoveEmptyEntries);


            var type    = Enum.Parse <ChannelType>(model.Type, true);
            var channel = new Channel
            {
                Name        = model.Name,
                Description = model.Description,
                Type        = type
            };

            context.Channels.Add(channel);
            context.SaveChanges();

            var tags = new List <Tag>();

            foreach (var name in tagNames)
            {
                var tag = this.context.Tags.FirstOrDefault(p => p.Name == name);
                if (tag == null)
                {
                    tag = new Tag
                    {
                        Name = name
                    };
                }
                tags.Add(tag);
            }

            context.AddRange(tags);
            context.SaveChanges();

            var channelTags = new List <ChannelTag>();

            foreach (var tag in tags)
            {
                var channelTag = new ChannelTag
                {
                    Channel = channel,
                    Tag     = tag
                };

                channelTags.Add(channelTag);
            }
            context.ChannelTags.AddRange(channelTags);
            context.SaveChanges();
        }
コード例 #3
0
        public void AddChannel(ChannelDetailsViewModel model)
        {
            using (var db = new MishMashDbContext())
            {
                var channel = new Channel
                {
                    Name        = model.Name,
                    Description = model.Description,
                    Type        = Enum.Parse <ChannelType>(model.Type)
                };

                if (!string.IsNullOrWhiteSpace(model.Tags))
                {
                    string[] tags = model.Tags.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string tag in tags)
                    {
                        Tag dbTag = db.Tags.FirstOrDefault(t => t.Name == tag);

                        if (dbTag == null)
                        {
                            dbTag = new Tag {
                                Name = tag
                            };

                            db.Tags.Add(dbTag);
                            db.SaveChanges();
                        }

                        channel.Tags.Add(new TagChannel {
                            TagId = dbTag.Id
                        });
                    }
                }

                db.Channels.Add(channel);
                db.SaveChanges();
            }
        }
コード例 #4
0
        public void UnfollowChannel(int channelId, string username)
        {
            using (var db = new MishMashDbContext())
            {
                int userId = db.Users.FirstOrDefault(u => u.Username == username).Id;

                UserChannel userChannel = db.UserChannels
                                          .FirstOrDefault(uc => uc.UserId == userId && uc.ChannelId == channelId);

                if (userChannel != null)
                {
                    db.UserChannels.Remove(userChannel);

                    db.SaveChanges();
                }
            }
        }
コード例 #5
0
        public void FollowChannel(int channelId, string username)
        {
            using (var db = new MishMashDbContext())
            {
                int userId = db.Users.FirstOrDefault(u => u.Username == username).Id;

                if (!db.UserChannels.Any(uc => uc.UserId == userId && uc.ChannelId == channelId))
                {
                    db.UserChannels.Add(new UserChannel
                    {
                        UserId    = userId,
                        ChannelId = channelId
                    });

                    db.SaveChanges();
                }
            }
        }
コード例 #6
0
        public void AddUser(RegisterViewModel model)
        {
            using (var db = new MishMashDbContext())
            {
                Role role = db.Users.Any() ? Role.User : Role.Admin;

                var user = new User
                {
                    Username = model.Username,
                    Password = model.Password,
                    Email    = model.Email,
                    Role     = role
                };

                db.Users.Add(user);
                db.SaveChanges();
            }
        }
コード例 #7
0
        public User AddUser(string username, string password, string email)
        {
            using (var db = new MishMashDbContext())
            {
                var user = new User
                {
                    Username = username,
                    Password = password,
                    Email    = email,
                    Role     = Role.User
                };

                if (!db.Users.Any())
                {
                    user.Role = Role.Admin;
                }

                db.Users.Add(user);
                db.SaveChanges();

                return(user);
            }
        }
コード例 #8
0
        private static void SeedData()
        {
            var db = new MishMashDbContext();

            var user1 = new User
            {
                Username = "******",
                Email    = "*****@*****.**",
                Password = "******",
                Role     = Role.User
            };

            var user2 = new User
            {
                Username = "******",
                Email    = "*****@*****.**",
                Password = "******",
                Role     = Role.User
            };

            var user3 = new User
            {
                Username = "******",
                Email    = "*****@*****.**",
                Password = "******",
                Role     = Role.Admin
            };

            db.Add(user1);
            db.Add(user2);
            db.Add(user3);
            db.SaveChanges();

            var channel1 = new Channel
            {
                Name        = "Markiplier",
                Description = "Gaming stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "games"
                    }, new Tag {
                        Content = "fun"
                    }, new Tag {
                        Content = "shooter"
                    }
                },
                Type = Type.Game
            };

            var channel2 = new Channel
            {
                Name        = "NiggaHigga",
                Description = "Comedy stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "laugh"
                    }, new Tag {
                        Content = "fun"
                    }, new Tag {
                        Content = "jokes"
                    }
                },
                Type = Type.Other
            };

            var channel3 = new Channel
            {
                Name        = "SoftUni",
                Description = "IT stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "programming"
                    }, new Tag {
                        Content = "IT"
                    }, new Tag {
                        Content = ".net"
                    }
                },
                Type = Type.Lessons
            };

            var channel4 = new Channel
            {
                Name        = "Trainings",
                Description = "Sports stuff",
                Tags        = new List <Tag> {
                    new Tag {
                        Content = "exercises"
                    }, new Tag {
                        Content = "jogging"
                    }, new Tag {
                        Content = "sports"
                    }
                },
                Type = Type.Motivation
            };

            db.Add(channel1);
            db.Add(channel2);
            db.Add(channel3);
            db.Add(channel4);
            db.SaveChanges();

            var userchannels1 = new UserChannels()
            {
                Channel = channel1,
                User    = user1
            };

            var userchannels2 = new UserChannels()
            {
                Channel = channel2,
                User    = user2
            };

            var userchannels3 = new UserChannels()
            {
                Channel = channel3,
                User    = user2
            };

            var userchannels4 = new UserChannels()
            {
                Channel = channel1,
                User    = user3
            };

            var userchannels5 = new UserChannels()
            {
                Channel = channel2,
                User    = user3
            };
            var userchannels6 = new UserChannels()
            {
                Channel = channel4,
                User    = user3
            };

            db.Add(userchannels1);
            db.Add(userchannels2);
            db.Add(userchannels3);
            db.Add(userchannels4);
            db.Add(userchannels5);
            db.SaveChanges();
        }