Beispiel #1
0
        public static string ExportCommentsOnPosts(InstagraphContext context)
        {
            var users = context.Users
                        .Select(u => new
            {
                Username           = u.Username,
                PostsCommentsCount = u.Posts.Select(p => p.Comments.Count()).ToArray()
            });

            // при селекцията гърми ако взимаме 1 ст-ст от базата, която е int, но ако взимаме масив той може да е празен и не гърми


            var userDtos = new List <UserTopPostDto>();

            var xmlDoc = new XDocument();

            xmlDoc.Add(new XElement("users")); // това е root-a

            foreach (var user in users)
            {
                int mostComents = 0;
                if (user.PostsCommentsCount.Any())
                {
                    mostComents = user.PostsCommentsCount.OrderByDescending(c => c).First();
                }

                // правим ДТО (string, int) за ст-те които да запомни и подаде на XML-a
                var userDto = new UserTopPostDto()
                {
                    Username     = user.Username,
                    MostComments = mostComents
                };

                userDtos.Add(userDto);
            }

            userDtos = userDtos.OrderByDescending(u => u.MostComments).ThenBy(u => u.Username).ToList();


            foreach (var u in userDtos)
            {
                xmlDoc.Root.Add(new XElement("user",
                                             new XElement("Username", u.Username),
                                             new XElement("MostComments", u.MostComments)));
            }

            //foreach (var u in userDtos)
            //{
            //    var userNames = new XElement("user");
            //    userNames.Add(new XElement("Username", u.Username));
            //    userNames.Add(new XElement("MostComments", u.MostComments));
            //    xmlDoc.Root.Add(userNames);
            //}


            string xmlString = xmlDoc.ToString();

            return(xmlString);
        }
Beispiel #2
0
        public static string ExportCommentsOnPosts(InstagraphContext context)
        {
            var users = context
                        .Users
                        .Select(u => new
            {
                u.Username,
                PostCommentCount = u.Posts.Select(p => p.Comments.Count)
            })
                        .ToArray();

            var usersDtos = new List <UserTopPostDto>();

            foreach (var user in users)
            {
                var mostComments = 0;

                if (user.PostCommentCount.Any())
                {
                    mostComments = user.PostCommentCount.OrderByDescending(c => c).First();
                }

                var userDto = new UserTopPostDto()
                {
                    Username     = user.Username,
                    MostComments = mostComments
                };

                usersDtos.Add(userDto);
            }

            usersDtos = usersDtos
                        .OrderByDescending(u => u.MostComments)
                        .ThenBy(u => u.Username)
                        .ToList();

            var xDoc = new XDocument(new XElement("users"));

            foreach (var user in usersDtos)
            {
                xDoc
                .Root
                .Add(new XElement("user",
                                  new XElement("Username", user.Username),
                                  new XElement("MostComments", user.MostComments)));
            }

            return(xDoc.ToString());
        }
Beispiel #3
0
        public static string ExportCommentsOnPosts(InstagraphContext context)
        {
            var users = context.Users
                        .Select(u => new
            {
                Username          = u.Username,
                PostsCommentCount = u.Posts.Select(p => p.Comments.Count).ToArray()
            });

            var userDtos = new List <UserTopPostDto>();

            var xDoc = new XDocument();

            xDoc.Add(new XElement("users"));

            foreach (var u in users)
            {
                int mostComments = 0;
                if (u.PostsCommentCount.Any())
                {
                    mostComments = u.PostsCommentCount.OrderByDescending(c => c).First();
                }

                var userDto = new UserTopPostDto()
                {
                    Username     = u.Username,
                    MostComments = mostComments
                };

                userDtos.Add(userDto);
            }

            userDtos = userDtos.OrderByDescending(u => u.MostComments)
                       .ThenBy(u => u.Username).ToList();

            var sb = new StringBuilder();

            var serializer = new XmlSerializer(typeof(List <UserTopPostDto>), new XmlRootAttribute("users"));

            serializer.Serialize(new StringWriter(sb), userDtos, new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }));

            var result = sb.ToString();

            return(result);
        }
Beispiel #4
0
        public static string ExportCommentsOnPosts(InstagraphContext context)
        {
            var users = context.Users
                        .Select(x => new
            {
                Username     = x.Username,
                MostComments = x.Posts.Select(y => y.Comments.Count).ToArray()
            });

            var userDtos = new List <UserTopPostDto>();

            var xDoc = new XDocument();

            xDoc.Add(new XElement("users"));

            foreach (var us in users)
            {
                int commentNum = 0;
                if (us.MostComments.Any())
                {
                    commentNum = us.MostComments.OrderByDescending(x => x).First();
                }

                var userDto = new UserTopPostDto()
                {
                    Username     = us.Username,
                    MostComments = commentNum
                };
                userDtos.Add(userDto);
            }

            userDtos = userDtos.OrderByDescending(x => x.MostComments)
                       .ThenBy(x => x.Username).ToList();

            foreach (var usDto in userDtos)
            {
                xDoc.Root.Add(new XElement("user",
                                           new XElement("Username", usDto.Username),
                                           new XElement("MostComments", usDto.MostComments)));
            }
            string result = xDoc.ToString();

            return(result);
        }