private static void TestSeedMethod(ChatSystemContext context)
        {
            var channels = context.Channels
                .Select(c => new
                {
                    c.Name,
                    Messages = c.ChannelMessages.Select(m => new
                    {
                        m.Content,
                        SentOn = m.Datetime,
                        m.User.Username
                    })
                });

            foreach (var channel in channels)
            {
                Console.WriteLine(channel.Name);

                foreach (var msg in channel.Messages)
                {
                    Console.WriteLine("Content: {0} / Sent on: {1} / User {2}",
                        msg.Content,
                        msg.SentOn.ToShortDateString(),
                        msg.Username);
                }

                Console.WriteLine();
            }
        }
        public static void Main()
        {
            var context = new ChatSystemContext();

            TestSeedMethod(context);
            ImportUserMessagesFromJson(context);
        }
        private static void ImportUserMessagesFromJson(ChatSystemContext context)
        {
            var filePath = "../../messages.json";
            var fileTextContent = File.ReadAllText(filePath);

            var userMessages = JsonConvert.DeserializeObject<List<JsonUserMessage>>(fileTextContent);
            foreach (var msg in userMessages)
            {
                if (msg.Content == null || msg.DateTime == null || msg.Sender == null || msg.Recipient == null)
                {
                    Console.WriteLine("All fields are required!");
                }
                else
                {
                    var datetime = msg.DateTime;
                    var sender = context.Users.FirstOrDefault(u => u.Username.Equals(msg.Sender));
                    var recipient = context.Users.FirstOrDefault(u => u.Username.Equals(msg.Recipient));

                    context.UserMessages.Add(new UserMessage()
                    {
                        Content = msg.Content,
                        DateTime = datetime,
                        Sender = sender,
                        Recipient = recipient
                    });

                    Console.WriteLine("Message: " + msg.Content);
                }

                context.SaveChanges();
            }
        }
        private void seedUsers()
        {
            var context = new ChatSystemContext();

            if (context.Users.Any())
            {
                return;
            }
            var users = new List <User>()
            {
                new User {
                    Username = "******", FullName = "Vladimir Georgiev", PhoneNumber = "0894545454"
                },
                new User {
                    Username = "******", FullName = "Svetlin Nakov", PhoneNumber = "0897878787"
                },
                new User {
                    Username = "******", FullName = "Angel Georgiev", PhoneNumber = "0897121212"
                },
                new User {
                    Username = "******", FullName = "Alexandra Svilarova", PhoneNumber = "0894151417"
                },
                new User {
                    Username = "******", FullName = "Petya Grozdarska", PhoneNumber = "0895464646"
                }
            };

            foreach (var user in users)
            {
                context.Users.Add(user);
            }
            context.SaveChanges();
        }
        private void seedChannels()
        {
            var context = new ChatSystemContext();

            if (context.Channels.Any())
            {
                return;
            }
            var channels = new List <Channel>()
            {
                new Channel {
                    Name = "Malinki"
                },
                new Channel {
                    Name = "SoftUni"
                },
                new Channel {
                    Name = "Admins"
                },
                new Channel {
                    Name = "Programmers"
                },
                new Channel {
                    Name = "Geeks"
                }
            };

            foreach (var channel in channels)
            {
                context.Channels.Add(channel);
            }
            context.SaveChanges();
        }
Beispiel #6
0
        private static void ImportMessageToDB(MessageDTO message)
        {
            if (string.IsNullOrWhiteSpace(message.Content))
            {
                throw new ArithmeticException("Content is required");
            }

            if (string.IsNullOrWhiteSpace(message.Recipient))
            {
                throw new ArithmeticException("Recipient is required");
            }

            if (string.IsNullOrWhiteSpace(message.Sender))
            {
                throw new ArithmeticException("Sender is required");
            }

            var context = new ChatSystemContext();

            var recipientId = context.Users
                              .Where(u => u.Username == message.Recipient)
                              .Select(r => r.Id)
                              .FirstOrDefault();

            var senderId = context.Users
                           .Where(u => u.Username == message.Sender)
                           .Select(s => s.Id)
                           .FirstOrDefault();

            var userMessage = new UserMessage()
            {
                Content     = message.Content,
                DateTime    = message.DateTime,
                RecipientId = recipientId,
                SenderId    = senderId
            };

            context.UserMessages.Add(userMessage);
            context.SaveChanges();
        }
        private void seedChannelMessages()
        {
            var context = new ChatSystemContext();

            if (context.ChannelMessages.Any())
            {
                return;
            }

            var chanelMalinki = context.Channels.FirstOrDefault(c => c.Name == "Malinki");
            var nakov         = context.Users.FirstOrDefault(c => c.Username == "Nakov");
            var vlado         = context.Users.FirstOrDefault(c => c.Username == "VGeorgiev");
            var petya         = context.Users.FirstOrDefault(c => c.Username == "Petya");

            var channelMsgs = new List <ChannelMessage>()
            {
                new ChannelMessage {
                    ChannelId = chanelMalinki.Id, Content = "Hey dudes, are you ready for tonight?", DateTime = DateTime.Now, UserId = petya.Id
                },
                new ChannelMessage {
                    ChannelId = chanelMalinki.Id, Content = "Hey Petya, this is the SoftUni chat.", DateTime = DateTime.Now, UserId = vlado.Id
                },
                new ChannelMessage {
                    ChannelId = chanelMalinki.Id, Content = "Hahaha, we are ready!", DateTime = DateTime.Now, UserId = nakov.Id
                },
                new ChannelMessage {
                    ChannelId = chanelMalinki.Id, Content = "Oh my god. I mean for drinking some beer!", DateTime = DateTime.Now, UserId = petya.Id
                },
                new ChannelMessage {
                    ChannelId = chanelMalinki.Id, Content = "We are sure!", DateTime = DateTime.Now, UserId = vlado.Id
                },
            };

            foreach (var chMsg in channelMsgs)
            {
                context.ChannelMessages.Add(chMsg);
            }

            context.SaveChanges();
        }
        protected override void Seed(ChatSystemContext context)
        {
            if (!context.Database.Exists())
            {
                var vGeorgiev = new User()
                {
                    Username    = "******",
                    FullName    = "Vladimir Georgiev",
                    PhoneNumber = "089454848"
                };
                context.Users.Add(vGeorgiev);

                var Nakov = new User()
                {
                    Username    = "******",
                    FullName    = "Svetlin Nakov",
                    PhoneNumber = "089454848"
                };
                context.Users.Add(Nakov);

                var Ache = new User()
                {
                    Username    = "******",
                    FullName    = "Angel Georgiev",
                    PhoneNumber = "089454848"
                };
                context.Users.Add(Ache);

                var Alex = new User()
                {
                    Username    = "******",
                    FullName    = "Alexandra Svilarova",
                    PhoneNumber = "089454848"
                };
                context.Users.Add(Alex);

                var Petya = new User()
                {
                    Username    = "******",
                    FullName    = "Petya Grozdarska",
                    PhoneNumber = "089454848"
                };
                context.Users.Add(Petya);

                var Malinki = new Channel()
                {
                    Name = "Malinki"
                };
                context.Channels.Add(Malinki);

                var Softuni = new Channel()
                {
                    Name = "Softuni"
                };
                context.Channels.Add(Softuni);

                var Admins = new Channel()
                {
                    Name = "Admins"
                };
                context.Channels.Add(Admins);

                var Programmers = new Channel()
                {
                    Name = "Programmers"
                };
                context.Channels.Add(Programmers);

                var Geeks = new Channel()
                {
                    Name = "Geeks"
                };
                context.Channels.Add(Geeks);

                var ChannelMessage1 = new ChannelMessage()
                {
                    Channel  = Malinki,
                    Content  = "Hey dudes, are you ready for tonight?",
                    DateTime = DateTime.Now,
                    User     = Petya
                };
                context.ChannelMessages.Add(ChannelMessage1);

                var ChannelMessage2 = new ChannelMessage()
                {
                    Channel  = Malinki,
                    Content  = "Hey Petya, this is the SoftUni chat.",
                    DateTime = DateTime.Now,
                    User     = vGeorgiev
                };
                context.ChannelMessages.Add(ChannelMessage2);


                var ChannelMessage3 = new ChannelMessage()
                {
                    Channel  = Malinki,
                    Content  = "Hahaha, we are ready.",
                    DateTime = DateTime.Now,
                    User     = Nakov
                };
                context.ChannelMessages.Add(ChannelMessage3);


                var ChannelMessage4 = new ChannelMessage()
                {
                    Channel  = Malinki,
                    Content  = "Oh my god. I mean for drinking beers!",
                    DateTime = DateTime.Now,
                    User     = Petya
                };
                context.ChannelMessages.Add(ChannelMessage4);


                var ChannelMessage5 = new ChannelMessage()
                {
                    Channel  = Malinki,
                    Content  = "Oh my god. I mean for drinking beers!",
                    DateTime = DateTime.Now,
                    User     = vGeorgiev
                };
                context.ChannelMessages.Add(ChannelMessage5);

                context.SaveChanges();
            }
        }
Beispiel #9
0
        static void Main(string[] args)
        {
            var context = new ChatSystemContext();

            //6.ListAllChannelsWithTheirMessages
            //var channels = context.Channels
            //    .Select(c => new
            //    {
            //        c.Name,
            //        Messages = c.ChannelMessages
            //            .Select(cm => new 
            //            {
            //                cm.Content,
            //                cm.DateTime,
            //                User = cm.User.Username
            //            })
            //    });

            //foreach (var channel in channels)
            //{
            //    Console.WriteLine("{0}\n--Messages:--", channel.Name);

            //    foreach (var message in channel.Messages)
            //    {
            //        Console.WriteLine("Content: {0}, DateTime: {1}, User: {2}", message.Content, message.DateTime, message.User);
            //    }

            //    Console.WriteLine();
            //}

            var settings = new JsonSerializerSettings()
            {
                MissingMemberHandling = MissingMemberHandling.Ignore
            };

            var json = File.ReadAllText("../../messages.json");
            dynamic messages = JsonConvert.DeserializeObject(json, settings);

            foreach (var message in messages)
            {
                if (message.content == null)
                {
                    Console.WriteLine("Error: Content is required");

                    continue;
                }


                if (message.datetime == null)
                {
                    Console.WriteLine("Error: DateTime is required");

                    continue;
                }

                if (message.recipient == null)
                {
                    Console.WriteLine("Error: Recipient is required");

                    continue;
                }

                if (message.sender == null)
                {
                    Console.WriteLine("Error: Sender is required");

                    continue;
                }

                string recipientUsername = message.recipient;
                string senderUsername = message.sender;

                context.UserMessages.Add(new UserMessage()
                {
                    Content = message.content,
                    Datetime = message.datetime,
                    RecipientId = context.Users.Where(u => u.Username == recipientUsername).FirstOrDefault().Id,
                    SenderId = context.Users.Where(u => u.Username == senderUsername).FirstOrDefault().Id
                });

                Console.WriteLine("Message {0} imported", message.content);
            }

            context.SaveChanges();
        }