public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projects = context.Projects
                           .Where(p => p.Tasks.Count() > 0)
                           .ToArray()
                           .Select(project => new ExportProjectsModel
            {
                TasksCount  = project.Tasks.Count,
                ProjectName = project.Name,
                HasEndDate  = project.DueDate.HasValue ? "Yes" : "No",
                Tasks       = project.Tasks.ToArray().Select(task => new ExportTaskModel
                {
                    Name  = task.Name,
                    Label = task.LabelType.ToString(),
                })
                              .OrderBy(task => task.Name)
                              .ToArray()
            })
                           .OrderByDescending(project => project.TasksCount)
                           .ThenBy(project => project.ProjectName)
                           .ToArray();

            StringBuilder sb         = new StringBuilder();
            var           namespaces = new XmlSerializerNamespaces();

            namespaces.Add(String.Empty, String.Empty);
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(ExportProjectsModel[]), new XmlRootAttribute("Projects"));

            using (StringWriter writer = new StringWriter(sb))
            {
                xmlSerializer.Serialize(writer, projects, namespaces);
            }

            return(sb.ToString().TrimEnd());
        }
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var employee = context.Employees
                           .ToArray()
                           .Where(x => x.EmployeesTasks.Any(y => y.Task.OpenDate >= date))
                           .Select(x => new
            {
                x.Username,
                Tasks = x.EmployeesTasks
                        .Where(y => y.Task.OpenDate >= date)
                        .OrderByDescending(d => d.Task.DueDate)
                        .ThenBy(n => n.Task.Name)
                        .Select(t => new
                {
                    TaskName = t.Task.Name,
                    OpenDate = t.Task.OpenDate
                               .ToString("d", CultureInfo.InvariantCulture),
                    DueDate = t.Task.DueDate
                              .ToString("d", CultureInfo.InvariantCulture),
                    LabelType     = t.Task.LabelType,
                    ExecutionType = t.Task.ExecutionType
                })
                        .ToArray()
            })
                           .OrderByDescending(x => x.Tasks.Count())
                           .ThenBy(x => x.Username)
                           .Take(10)
                           .ToArray();

            return(JsonConvert.SerializeObject(employee, Formatting.Indented));
        }
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var employees = context.Employees
                            .ToArray()
                            .Where(e => e.EmployeesTasks.Any(et => et.Task.OpenDate >= date))
                            .Select(e => new
            {
                Username = e.Username,
                Tasks    = e.EmployeesTasks
                           .Where(t => t.Task.OpenDate >= date)
                           .OrderByDescending(t => t.Task.DueDate)
                           .ThenBy(t => t.Task.Name)
                           .Select(t => new
                {
                    TaskName      = t.Task.Name,
                    OpenDate      = t.Task.OpenDate.ToString("d", CultureInfo.InvariantCulture),
                    DueDate       = t.Task.DueDate.ToString("d", CultureInfo.InvariantCulture),
                    LabelType     = t.Task.LabelType.ToString(),
                    ExecutionType = t.Task.ExecutionType.ToString()
                })
                           .ToArray()
            })
                            .OrderByDescending(e => e.Tasks.Length)
                            .ThenBy(e => e.Username)
                            .Take(10)
                            .ToArray();

            string jsonResult = JsonConvert.SerializeObject(employees, Formatting.Indented);

            return(jsonResult);
        }
Beispiel #4
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var rootName = "Projects";
            var dtos     = context.Projects
                           .Include(p => p.Tasks)
                           .ToList()
                           .Where(p => p.Tasks.Any())
                           .Select(p => new ExportProjectsWithTasksDTO
            {
                TasksCount  = p.Tasks.Count,
                ProjectName = p.Name,
                HasEndDate  = p.DueDate == null ? "No" : "Yes",
                Tasks       = p.Tasks.Select(t => new ExportTaskPartialDTO
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .OrderBy(t => t.Name)
                              .ToList()
            })
                           .OrderByDescending(p => p.TasksCount)
                           .ThenBy(p => p.ProjectName)
                           .ToList();

            return(XMLCustomSerializer.Serialize(dtos, rootName));
        }
Beispiel #5
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            XmlSerializer sertializer = new XmlSerializer(typeof(ProjectsExport[]), new XmlRootAttribute("Projects"));

            var projects = context.Projects.ToArray().Where(p => p.Tasks.Any())
                           .Select(p => new ProjectsExport
            {
                ProjectName = p.Name,
                TasksCount  = p.Tasks.Count,
                HasEndDate  = p.DueDate.HasValue ? "Yes" : "No",


                Tasks = p.Tasks.Select(x => new TasksXmlExport
                {
                    LabelName = x.LabelType.ToString(),
                    Name      = x.Name
                }).OrderBy(x => x.Name).ToArray()
            }).OrderByDescending(x => x.TasksCount).ThenBy(x => x.ProjectName).ToArray();



            var xml = XmlConverter.Serialize(projects, "Projects");

            return(xml);
        }
Beispiel #6
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projects = context.Projects
                           .ToArray() //for judge
                           .Where(x => x.Tasks.Count() > 0)
                           .Select(x => new ProjectsWithTheirTasksDTO
            {
                ProjectName = x.Name,
                TasksCount  = x.Tasks.Count(),
                HasEndDate  = x.DueDate == null ? "No" : "Yes",    //.HasValue
                Tasks       = x.Tasks.Select(y => new TaskDTO
                {
                    Name  = y.Name,
                    Label = y.LabelType.ToString()
                            //or  Label = Enum.GetName(typeof(LabelType), y.LabelType)
                }).OrderBy(y => y.Name)
                              .ToArray()
            }).OrderByDescending(x => x.TasksCount)
                           .ThenBy(x => x.ProjectName)
                           .ToArray();

            var result = XmlConverter.Serialize(projects, "Projects");

            return(result);
        }
Beispiel #7
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var emplyees = context.Employees
                           .Where(e => e.EmployeesTasks.Any(t => t.Task.OpenDate >= date))
                           .OrderByDescending(e => e.EmployeesTasks.Count(t => t.Task.OpenDate >= date))
                           .ThenBy(e => e.Username)
                           .Select(e => new ExportEmployeeDto
            {
                Username = e.Username,
                Tasks    = e.EmployeesTasks
                           .Where(t => t.Task.OpenDate >= date)
                           .Select(t => new ExportTaskDto
                {
                    TaskName      = t.Task.Name,
                    LabelType     = t.Task.LabelType.ToString(),
                    ExecutionType = t.Task.ExecutionType.ToString(),
                    DueDate       = t.Task.DueDate.ToString(@"d", CultureInfo.InvariantCulture),
                    OpenDate      = t.Task.OpenDate.ToString(@"d", CultureInfo.InvariantCulture)
                })
                           .OrderByDescending(t => DateTime.ParseExact(t.DueDate, @"d", CultureInfo.InvariantCulture))
                           .ThenBy(t => t.TaskName)
                           .ToList()
            })
                           .Take(10)
                           .ToList();

            var json = JsonConvert.SerializeObject(emplyees, Formatting.Indented);

            return(json);
        }
Beispiel #8
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var result = context.Employees
                         .ToList()
                         .Where(x => x.EmployeesTasks.Count > 0)
                         .Select(x => new
            {
                Username = x.Username,
                Tasks    = x.EmployeesTasks
                           .Where(t => t.Task.OpenDate >= date)
                           .OrderByDescending(t => t.Task.DueDate)
                           .ThenBy(t => t.Task.Name)
                           .Select(t => new
                {
                    TaskName      = t.Task.Name,
                    OpenDate      = t.Task.OpenDate.ToString("d", CultureInfo.InvariantCulture),
                    DueDate       = t.Task.DueDate.ToString("d", CultureInfo.InvariantCulture),
                    LabelType     = t.Task.LabelType.ToString(),
                    ExecutionType = t.Task.ExecutionType.ToString()
                })
                           .ToList()
            })
                         .OrderByDescending(x => x.Tasks.Count)
                         .ThenBy(x => x.Username)
                         .Take(10)
                         .ToList();

            string json = JsonConvert.SerializeObject(result, Formatting.Indented);

            return(json);
        }
        //Export all projects that have at least one task.For each project, export its name, tasks count, and if it has end(due) date
        //    which is represented like "Yes" and "No". For each task, export its name and label type.Order the tasks by name (ascending).
        //        Order the projects by tasks count (descending), then by name (ascending).
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var sb = new StringBuilder();

            var projects = context.Projects.Where(p => p.Tasks.Any()).ToArray()
                           .Select(x => new ExportProjectsTasks
            {
                TasksCount  = x.Tasks.Count,
                ProjectName = x.Name,
                HasEndDate  = x.DueDate.HasValue ? "Yes" : "No",
                Tasks       = x.Tasks.Select(t => new ExportTaskDto
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                }).ToArray().OrderBy(y => y.Name).ToArray()
            }).OrderByDescending(t => t.Tasks.Count()).ThenBy(t => t.ProjectName).ToList();



            var xmlSerializer = new XmlSerializer(typeof(List <ExportProjectsTasks>)
                                                  , new XmlRootAttribute("Projects"));

            var namespaces = new XmlSerializerNamespaces();

            namespaces.Add("", "");


            using (var writer = new StringWriter(sb))
            {
                xmlSerializer.Serialize(writer, projects, namespaces);
            }

            return(sb.ToString().Trim());
        }
        public static string ImportProjects(TeisterMaskContext context, string xmlString)
        {
            var sb          = new StringBuilder();
            var projectsDto = XmlConvert.Deserialize <XmlProjectImportModel>(xmlString, "Projects");

            foreach (var projectDto in projectsDto)
            {
                if (IsValid(projectDto) == false ||
                    DateTime.TryParseExact(projectDto.OpenDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime projectOpenDate) == false)
                {
                    sb.AppendLine(ErrorMessage);
                    continue;
                }

                bool hasDueDate = DateTime.TryParseExact(projectDto.DueDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime projectDueDate);

                var project = new Project
                {
                    Name     = projectDto.Name,
                    DueDate  = hasDueDate ? (DateTime?)projectDueDate : null,
                    OpenDate = projectOpenDate,
                };

                foreach (var taskDto in projectDto.Tasks)
                {
                    if (IsValid(taskDto) == false ||
                        DateTime.TryParseExact(taskDto.OpenDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime taskOpenDate) == false ||
                        DateTime.TryParseExact(taskDto.DueDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime taskDueDate) == false ||
                        taskOpenDate.Date < projectOpenDate.Date)
                    {
                        sb.AppendLine(ErrorMessage);
                        continue;
                    }

                    if (hasDueDate)
                    {
                        if (taskDueDate.Date > projectDueDate.Date)
                        {
                            sb.AppendLine(ErrorMessage);
                            continue;
                        }
                    }

                    project.Tasks.Add(new Task
                    {
                        Name          = taskDto.Name,
                        DueDate       = taskDueDate,
                        LabelType     = (LabelType)taskDto.LabelType,
                        OpenDate      = taskOpenDate,
                        ExecutionType = (ExecutionType)taskDto.ExecutionType,
                    });
                }

                context.Projects.Add(project);
                sb.AppendLine(string.Format(SuccessfullyImportedProject, project.Name, project.Tasks.Count));
            }

            context.SaveChanges();
            return(sb.ToString().TrimEnd());
        }
Beispiel #11
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var result = context.Projects
                         .ToArray()
                         .Where(x => x.Tasks.Count > 0)
                         .Select(x => new ProjectViewModel
            {
                TasksCount  = x.Tasks.Count,
                ProjectName = x.Name,
                HasEndDate  = x.DueDate.HasValue ? "Yes" : "No",
                Tasks       = x.Tasks.Select(t => new TaskViewModel
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .OrderBy(x => x.Name)
                              .ToArray()
            })
                         .OrderByDescending(x => x.TasksCount)
                         .ThenBy(x => x.ProjectName)
                         .ToArray();

            var xml = XmlConverter.Serialize(result, "Projects");

            return(xml);
        }
Beispiel #12
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            XmlRootAttribute        xmlRoot       = new XmlRootAttribute("Projects");
            XmlSerializer           xmlSerializer = new XmlSerializer(typeof(ExportProjectDto[]), xmlRoot);
            XmlSerializerNamespaces namespaces    = new XmlSerializerNamespaces();

            namespaces.Add(string.Empty, string.Empty);

            ExportProjectDto[] projectsWithTasks = context
                                                   .Projects
                                                   .Where(p => p.Tasks.Count > 0)
                                                   .Select(p => new ExportProjectDto
            {
                ProjectName = p.Name,
                TasksCount  = p.Tasks.Count.ToString(),
                HasEndDate  = p.DueDate.HasValue ? "Yes" : "No",
                Tasks       = p.Tasks.Select(t => new ExportTaskDto
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .OrderBy(t => t.Name)
                              .ToArray()
            })
                                                   .OrderByDescending(p => p.TasksCount)
                                                   .ThenBy(p => p.ProjectName)
                                                   .ToArray();

            StringBuilder sb           = new StringBuilder();
            StringWriter  stringWriter = new StringWriter(sb);;

            xmlSerializer.Serialize(stringWriter, projectsWithTasks, namespaces);

            return(sb.ToString().TrimEnd());
        }
        private static string AddTasks(TeisterMaskContext context, Project project, TaskImportDTO[] tasks)
        {
            StringBuilder result = new StringBuilder();

            foreach (var taskDto in tasks)
            {
                if (IsValid(taskDto) &&
                    IsValidOpenDate(taskDto.OpenDate, project.OpenDate) &&
                    IsValidDueDate(taskDto.DueDate, project.DueDate))
                {
                    Task task = new Task
                    {
                        Name          = taskDto.Name,
                        OpenDate      = DateTime.ParseExact(taskDto.OpenDate, "dd/MM/yyyy", CultureInfo.InvariantCulture),
                        DueDate       = DateTime.ParseExact(taskDto.DueDate, "dd/MM/yyyy", CultureInfo.InvariantCulture),
                        ExecutionType = (ExecutionType)taskDto.ExcecutionType,
                        LabelType     = (LabelType)taskDto.LabelType,
                        Project       = project
                    };

                    context.Add(task);
                }
                else
                {
                    result.AppendLine(ErrorMessage);
                }
            }

            context.SaveChanges();

            return(result.ToString().TrimEnd());
        }
        private static string AddEmployeeTasks(TeisterMaskContext context, Employee employee, int[] tasks)
        {
            StringBuilder result = new StringBuilder();

            foreach (var task in tasks)
            {
                if (IsTaskValid(context, task))
                {
                    EmployeeTask employeeTask = new EmployeeTask
                    {
                        Employee = employee,
                        TaskId   = task
                    };

                    context.EmployeesTasks.Add(employeeTask);
                }
                else
                {
                    result.AppendLine(ErrorMessage);
                }
            }

            context.SaveChanges();

            return(result.ToString().TrimEnd());
        }
Beispiel #15
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var output = context
                         .Projects
                         .Where(p => p.Tasks.Any())
                         .OrderByDescending(p => p.Tasks.Count())
                         .ThenBy(p => p.Name)
                         .Select(p => new ProjectWithTheirTasksDto
            {
                TasksCount  = p.Tasks.Count,
                ProjectName = p.Name,
                HasEndDate  = p.DueDate == null ? "No" : "Yes",
                Tasks       = p.Tasks
                              .OrderBy(t => t.Name)
                              .Select(t => new TaskExportDto
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .ToArray()
            })

                         .ToArray();


            StringBuilder           sb         = new StringBuilder();
            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
            XmlSerializer           serializer = new XmlSerializer(typeof(ProjectWithTheirTasksDto[]), new XmlRootAttribute("Projects"));

            serializer.Serialize(new StringWriter(sb), output, namespaces);

            return(sb.ToString().TrimEnd());
        }
Beispiel #16
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var employees = context.Employees
                            .Where(e => e.EmployeesTasks.Any(t => t.Task.OpenDate >= date))
                            .OrderByDescending(e => e.EmployeesTasks.Count)
                            .ThenBy(e => e.Username)
                            .Take(10)
                            .Select(e => new EmployeeExportDto()
            {
                Username = e.Username,
                Tasks    = e.EmployeesTasks
                           .Where(t => t.Task.OpenDate >= date)
                           .OrderByDescending(et => et.Task.DueDate)
                           .ThenBy(et => et.Task.Name)
                           .Select(et => new TaskExportDto()
                {
                    TaskName      = et.Task.Name,
                    OpenDate      = et.Task.OpenDate.ToString("MM/dd/yyyy"),
                    DueDate       = et.Task.DueDate.ToString("MM/dd/yyyy"),
                    LabelType     = et.Task.LabelType.ToString(),
                    ExecutionType = et.Task.ExecutionType.ToString()
                })
                           .ToList()
            });

            var serializer = new JsonSerializer();

            var result = JsonConvert.SerializeObject(employees, Formatting.Indented);

            return(result);
        }
Beispiel #17
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var output = context
                         .Employees
                         .Where(e => e.EmployeesTasks.Any(t => t.Task.Name.Count() > 0) &&
                                e.EmployeesTasks.Any(t => t.Task.OpenDate >= date))
                         .Select(e => new
            {
                Username = e.Username,
                Tasks    = e.EmployeesTasks
                           .Where(em => em.Task.OpenDate >= date)
                           .OrderByDescending(em => em.Task.DueDate)
                           .ThenBy(em => em.Task.Name)
                           .Select(em => new
                {
                    TaskName      = em.Task.Name,
                    OpenDate      = em.Task.OpenDate.ToString("d", CultureInfo.InvariantCulture),
                    DueDate       = em.Task.DueDate.ToString("d", CultureInfo.InvariantCulture),
                    LabelType     = em.Task.LabelType.ToString(),
                    ExecutionType = em.Task.ExecutionType.ToString()
                })
            })
                         .OrderByDescending(e => e.Tasks.Count())
                         .ThenBy(e => e.Username)
                         .Take(10)
                         .ToArray();

            var jsonString = JsonConvert.SerializeObject(output, Formatting.Indented);

            return(jsonString);
        }
Beispiel #18
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projects = context.Projects
                           .Where(p => p.Tasks.Any())
                           .Select(p => new ProjectExportDto
            {
                Count       = p.Tasks.Count,
                ProjectName = p.Name,
                HasEndDate  = p.DueDate != null ? "Yes" : "No",
                Tasks       = p.Tasks.Select(t => new ProjectTasksExportDto
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .OrderBy(t => t.Name)
                              .ToArray()
            })
                           .OrderByDescending(t => t.Count)
                           .ThenBy(t => t.ProjectName)
                           .ToArray();

            var xmlSerializer = new XmlSerializer(projects.GetType(), new XmlRootAttribute("Projects"));

            var result = new StringBuilder();

            var namespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });

            xmlSerializer.Serialize(new StringWriter(result), projects, namespaces);
            return(result.ToString().Trim());
        }
Beispiel #19
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var employees = context.Employees
                            .ToArray() //for judge
                            .Where(x => x.EmployeesTasks.Any(y => y.Task.OpenDate >= date))
                            .Select(x => new
            {
                Username = x.Username,
                Tasks    = x.EmployeesTasks
                           .Where(e => e.Task.OpenDate >= date)
                           .OrderByDescending(y => y.Task.DueDate)
                           .ThenBy(y => y.Task.Name)
                           .Select(y => new
                {
                    TaskName = y.Task.Name,
                    OpenDate = y.Task.OpenDate.ToString("d", CultureInfo.InvariantCulture),
                    DueDate  = y.Task.DueDate.ToString("d", CultureInfo.InvariantCulture),
                    //LabelType = Enum.GetName(typeof(LabelType), y.Task.LabelType),
                    LabelType     = y.Task.LabelType.ToString(),
                    ExecutionType = y.Task.ExecutionType.ToString(),
                })
                           .ToArray()
            }).OrderByDescending(x => x.Tasks.Length)
                            .ThenBy(x => x.Username)
                            .ToArray().Take(10);

            var result = JsonConvert.SerializeObject(employees, Formatting.Indented);

            return(result);
        }
Beispiel #20
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var top10Employees = context.Employees
                                 .Where(e => e.EmployeesTasks.Any(t => t.Task.OpenDate >= date))
                                 .OrderByDescending(e => e.EmployeesTasks.Count(t => t.Task.OpenDate >= date))
                                 .ThenBy(e => e.Username)
                                 .Select(e => new EmployeeExportDto
            {
                Username = e.Username,
                Tasks    = e.EmployeesTasks.Where(t => t.Task.OpenDate >= date)
                           .Select(t => new EmployeeTasksExportDto
                {
                    TaskName      = t.Task.Name,
                    OpenDate      = t.Task.OpenDate.ToString("d", CultureInfo.InvariantCulture),
                    DueDate       = t.Task.DueDate.ToString("d", CultureInfo.InvariantCulture),
                    LabelType     = t.Task.LabelType.ToString(),
                    ExecutionType = t.Task.ExecutionType.ToString(),
                })
                           .OrderByDescending(t => DateTime.ParseExact(t.DueDate, "d", CultureInfo.InvariantCulture))
                           .ThenBy(t => t.TaskName)
                           .ToArray()
            })
                                 .Take(10)
                                 .ToList();

            var result = JsonConvert.SerializeObject(top10Employees, Newtonsoft.Json.Formatting.Indented);

            return(result);
        }
Beispiel #21
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var employees = context.Employees
                            .ToArray()
                            .Where(e => e.EmployeesTasks.Any(et => et.Task.OpenDate >= date))
                            .OrderByDescending(e => e.EmployeesTasks.Count(et => et.Task.OpenDate >= date))
                            .Take(10)
                            .Select(e => new ExportMostBusiestEmployeesDTO
            {
                Username = e.Username,
                Tasks    = e.EmployeesTasks
                           .Where(et => et.Task.OpenDate >= date)
                           .OrderByDescending(et => et.Task.DueDate)
                           .ThenBy(et => et.Task.Name)
                           .Select(et => new ExportTasksDTO
                {
                    TaskName      = et.Task.Name,
                    OpenDate      = et.Task.OpenDate.ToString("MM/dd/yyyy"),
                    DueDate       = et.Task.DueDate.ToString("MM/dd/yyyy"),
                    LabelType     = et.Task.LabelType.ToString(),
                    ExecutionType = et.Task.ExecutionType.ToString()
                })
                           .ToArray()
            })
                            .ToArray()
                            .OrderByDescending(e => e.Tasks.Length)
                            .ThenBy(e => e.Username);

            var jsonEmployees = JsonConvert.SerializeObject(employees, Formatting.Indented);

            return(jsonEmployees);
        }
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projects = context.Projects
                           .Where(x => x.Tasks.Any())
                           .ToArray()
                           .OrderByDescending(x => x.Tasks.Count)
                           .ThenBy(x => x.Name)
                           .Select(x => new ProjectsExportModel
            {
                TasksCount  = x.Tasks.Count,
                ProjectName = x.Name,
                HasEndDate  = x.DueDate == null ? "No" : "Yes",
                Tasks       = x.Tasks.Select(x => new TaskExportModel
                {
                    Name  = x.Name,
                    Label = x.LabelType.ToString()
                })
                              .OrderBy(x => x.Name)
                              .ToArray()
            })
                           .ToArray();

            var xml = XmlConverter.Serialize(projects, "Projects");

            return(xml);
        }
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projects = context.Projects
                           .Where(x => x.Tasks.Any())
                           .ToArray()
                           .Select(x => new ExportProjectDto
            {
                ProjectName = x.Name,
                TasksCount  = x.Tasks.Count,
                HasEndDate  = x.DueDate.HasValue ? "Yes" : "No",
                Tasks       = x.Tasks
                              .ToArray()
                              .Select(t => new ExportTaskDto
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString(),
                })
                              .OrderBy(t => t.Name)
                              .ToArray()
            })
                           .OrderByDescending(x => x.Tasks.Length)
                           .ThenBy(x => x.ProjectName)
                           .ToArray();

            var serializer = new XmlSerializer(typeof(ExportProjectDto[]), new XmlRootAttribute("Projects"));
            var sb         = new StringBuilder();

            var namespaces = new XmlSerializerNamespaces();

            namespaces.Add(String.Empty, String.Empty);

            serializer.Serialize(new StringWriter(sb), projects, namespaces);

            return(sb.ToString().TrimEnd());
        }
Beispiel #24
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            const int EmployeesToBeTaken = 10;
            var       employees          = context
                                           .Employees
                                           .Where(x => x.EmployeesTasks.Any(y => y.Task.OpenDate >= date))
                                           .Select(x => new EmployeesJsonModel()
            {
                Username = x.Username,
                Tasks    = x.EmployeesTasks
                           .Where(y => y.Task.OpenDate >= date)
                           .OrderByDescending(y => y.Task.DueDate)
                           .ThenBy(y => y.Task.Name)
                           .Select(t => new EmployeesTasksJson()
                {
                    TaskName      = t.Task.Name,
                    OpenDate      = t.Task.OpenDate.ToString("d", CultureInfo.InvariantCulture),
                    DueDate       = t.Task.DueDate.ToString("d", CultureInfo.InvariantCulture),
                    LabelType     = t.Task.LabelType.ToString(),
                    ExecutionType = t.Task.ExecutionType.ToString(),
                })
                           .ToList()
            })
                                           .OrderByDescending(p => p.Tasks.Count())
                                           .ThenBy(p => p.Username)
                                           .Take(EmployeesToBeTaken)
                                           .ToList();

            var jsonResult = JsonConvert.SerializeObject(employees, Formatting.Indented);

            return(jsonResult);
        }
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var sortedProjects = context
                                 .Projects
                                 .ToArray()
                                 .Where(p => p.Tasks.Any())
                                 .OrderByDescending(p => p.Tasks.Count) // should it be here
                                 .ThenBy(p => p.Name)
                                 .Select(p => new ProjectWithTheirTasksExportModel()
            {
                ProjectName = p.Name,
                TasksCount  = p.Tasks.Count().ToString(),
                HasEndDate  = p.DueDate.HasValue ? "Yes" : "No",    // check for bugs
                Tasks       = p.Tasks.Select(t => new TaskXmlExportModel()
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .OrderBy(t => t.Name)
                              .ToArray()
            })
                                 .ToArray();

            var xmlResult = XmlConverter.Serialize(sortedProjects, "Projects");

            return(xmlResult);
        }
Beispiel #26
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projects = context.Projects
                           .Where(p => p.Tasks.Count > 0)
                           .ToArray()
                           .Select(p => new ExportProjectDto
            {
                TasksCount  = p.Tasks.Count,
                ProjectName = p.Name,
                HasEndDate  = p.DueDate.HasValue ? "Yes" : "No",
                Tasks       = p.Tasks.Select(t => new ExportTaskDto
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .OrderBy(t => t.Name)
                              .ToArray()
            })
                           .OrderByDescending(p => p.Tasks.Count())
                           .ThenBy(p => p.ProjectName)
                           .ToArray();

            XmlSerializer serializer = new XmlSerializer(typeof(ExportProjectDto[]), new XmlRootAttribute("Projects"));

            StringWriter writer = new StringWriter();

            XmlSerializerNamespaces emptyNamespace = new XmlSerializerNamespaces();

            emptyNamespace.Add("", "");

            serializer.Serialize(writer, projects, emptyNamespace);

            return(writer.ToString());
        }
Beispiel #27
0
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projectDtos = context
                              .Projects
                              .Where(p => p.Tasks.Any())
                              .OrderByDescending(p => p.Tasks.Count)
                              .ThenBy(p => p.Name)
                              .Select(p => new ExportProjectDto
            {
                TasksCount  = p.Tasks.Count,
                ProjectName = p.Name,
                HasEndDate  = p.DueDate.HasValue ? "Yes" : "No",
                Tasks       = p.Tasks
                              .OrderBy(t => t.Name)
                              .Select(t => new ExportTaskXmlDto
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                              .ToArray()
            })
                              .ToArray();

            var xmlSerializer = new XmlSerializer(typeof(ExportProjectDto[]),
                                                  new XmlRootAttribute("Projects"));

            var stringBuilder = new StringBuilder();

            var namespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });

            xmlSerializer.Serialize(new StringWriter(stringBuilder), projectDtos, namespaces);

            return(stringBuilder.ToString().TrimEnd());
        }
Beispiel #28
0
        public static string ExportMostBusiestEmployees(TeisterMaskContext context, DateTime date)
        {
            var employees = context.Employees
                            .Where(s => s.EmployeesTasks.Select(a => a.Task).All(g => g.OpenDate >= date))
                            .Select(e => new
            {
                Username = e.Username,
                Tasks    = e.EmployeesTasks.Select(w => new
                {
                    TaskName      = w.Task.Name,
                    OpenDate      = w.Task.OpenDate.ToString("d", CultureInfo.InvariantCulture),
                    DueDate       = w.Task.DueDate.ToString("d", CultureInfo.InvariantCulture),
                    LabelType     = w.Task.LabelType.ToString(),
                    ExecutionType = w.Task.ExecutionType.ToString()
                })
                           .OrderByDescending(d => d.DueDate)
                           .ThenBy(n => n.TaskName)
                           .ToArray()
            })
                            .OrderByDescending(k => k.Tasks.Length)
                            .ThenBy(u => u.Username)
                            .Take(10)
                            .ToArray();

            var json = JsonConvert.SerializeObject(employees);

            return(json);
        }
Beispiel #29
0
        private static void ResetDatabase(TeisterMaskContext context, bool shouldDropDatabase = false)
        {
            if (shouldDropDatabase)
            {
                context.Database.EnsureDeleted();
            }

            if (context.Database.EnsureCreated())
            {
                return;
            }

            var disableIntegrityChecksQuery = "EXEC sp_MSforeachtable @command1='ALTER TABLE ? NOCHECK CONSTRAINT ALL'";

            context.Database.ExecuteSqlCommand(disableIntegrityChecksQuery);

            var deleteRowsQuery = "EXEC sp_MSforeachtable @command1='SET QUOTED_IDENTIFIER ON;DELETE FROM ?'";

            context.Database.ExecuteSqlCommand(deleteRowsQuery);

            var enableIntegrityChecksQuery =
                "EXEC sp_MSforeachtable @command1='ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'";

            context.Database.ExecuteSqlCommand(enableIntegrityChecksQuery);

            var reseedQuery =
                "EXEC sp_MSforeachtable @command1='IF OBJECT_ID(''?'') IN (SELECT OBJECT_ID FROM SYS.IDENTITY_COLUMNS) DBCC CHECKIDENT(''?'', RESEED, 0)'";

            context.Database.ExecuteSqlCommand(reseedQuery);
        }
        public static string ExportProjectWithTheirTasks(TeisterMaskContext context)
        {
            var projects = context.Projects
                           .ToArray()
                           .Where(p => p.Tasks.Count > 0)
                           .OrderByDescending(p => p.Tasks.Count)
                           .ThenBy(p => p.Name)
                           .Select(p => new ProjectXmlExportModel
            {
                TasksCount = p.Tasks.Count.ToString(),
                Name       = p.Name,
                HasEndDate = p.DueDate.HasValue ? "Yes" : "No",
                Tasks      = p.Tasks.Select(t => new TaskXmlExportModel
                {
                    Name  = t.Name,
                    Label = t.LabelType.ToString()
                })
                             .OrderBy(t => t.Name)
                             .ToArray()
            })
                           .ToArray();

            var xml = XmlConverter.Serialize(projects, "Projects");

            return(xml);
        }