예제 #1
0
        public MDashboard CreateGraph(List <Room> rooms)
        {
            var dashboard  = new MDashboard();
            var roomsCount = new List <dynamic>();
            var roomsColor = new List <string>();

            if (rooms.Any(r => r.CurrentState == (int)ERoomState.Building))
            {
                dashboard.labels.Add("Salas em construção");
                roomsCount.Add(rooms.Count(r => r.CurrentState == (int)ERoomState.Building));
                roomsColor.Add("#139A43");
            }

            if (rooms.Any(r => r.CurrentState == (int)ERoomState.Open))
            {
                dashboard.labels.Add("Salas abertas");
                roomsCount.Add(rooms.Count(r => r.CurrentState == (int)ERoomState.Open));
                roomsColor.Add("#3454D1");
            }

            if (rooms.Any(r => r.CurrentState == (int)ERoomState.Closed))
            {
                dashboard.labels.Add("Salas finalizadas");
                roomsCount.Add(rooms.Count(r => r.CurrentState == (int)ERoomState.Closed));
                roomsColor.Add("#F2DC5D");
            }

            dashboard.datasets.Add(new MDashboardDatasets
            {
                backgroundColor = roomsColor,
                data            = roomsCount
            });
            return(dashboard);
        }
예제 #2
0
        public MDashboard CreateGraph(List <Activity> activities)
        {
            var dashboard        = new MDashboard();
            var acitiviesCount   = new List <dynamic>();
            var acitivitiesColor = new List <string>();

            if (activities.Any(r => r.CurrentState == (int)EActivityState.Building))
            {
                dashboard.labels.Add("Atividades em construção");
                acitiviesCount.Add(activities.Count(r => r.CurrentState == (int)EActivityState.Building));
                acitivitiesColor.Add("#2CEAA3");
            }

            if (activities.Any(r => r.CurrentState == (int)EActivityState.InProgress))
            {
                dashboard.labels.Add("Atividades em andamento");
                acitiviesCount.Add(activities.Count(r => r.CurrentState == (int)EActivityState.InProgress));
                acitivitiesColor.Add("#333333");
            }

            if (activities.Any(r => r.CurrentState == (int)EActivityState.Done))
            {
                dashboard.labels.Add("Atividades finalizadas");
                acitiviesCount.Add(activities.Count(r => r.CurrentState == (int)EActivityState.Done));
                acitivitiesColor.Add("#0E3F1D");
            }

            dashboard.datasets.Add(new MDashboardDatasets
            {
                backgroundColor = acitivitiesColor,
                data            = acitiviesCount
            });
            return(dashboard);
        }
예제 #3
0
        public MDashboard CreateGraph(List <Room> rooms)
        {
            var dashboard = new MDashboard();

            if (!rooms.Any())
            {
                return(dashboard);
            }

            dashboard.labels.Add("Sala");

            foreach (var room in rooms)
            {
                var bgColor = ColorExtensions.RandomColorHex();
                var dataset = new MDashboardDatasets
                {
                    label           = room.Name,
                    backgroundColor = new List <string> {
                        bgColor
                    },
                    data = new List <dynamic> {
                        room.NumberOfStudents
                    }
                };

                dashboard.datasets.Add(dataset);
            }
            return(dashboard);
        }
예제 #4
0
        public MDashboard CreateGraph(List <Answer> answers)
        {
            var dashboard    = new MDashboard();
            var answersCount = new List <dynamic>();
            var answersColor = new List <string>();

            var rooms = _uRelStudentRoom.GetRoomByPerson(_person.Id);

            if (rooms.Any())
            {
                var answeredAndDone    = 0;
                var notAnsweredAndDone = 0;

                var answeredAndNotDone    = 0;
                var notAnsweredAndNotDone = 0;
                foreach (var room in rooms)
                {
                    var activities = _uActivity.GetByRoom(room.Id).Where(a => a.CurrentState != (int)EActivityState.Building);
                    foreach (var activity in activities)
                    {
                        var alreadyAnswered = answers.FirstOrDefault(a => a.Activity.Id == activity.Id) != null;
                        var isDone          = activity.CurrentState == (int)EActivityState.Done;

                        if (alreadyAnswered && isDone)
                        {
                            ++answeredAndDone;
                        }
                        else if (!alreadyAnswered && isDone)
                        {
                            ++notAnsweredAndDone;
                        }
                        else if (alreadyAnswered)
                        {
                            ++answeredAndNotDone;
                        }
                        else
                        {
                            ++notAnsweredAndNotDone;
                        }
                    }
                }

                if (answeredAndDone > 0)
                {
                    dashboard.labels.Add("Atividades respondidas e finalizadas");
                    answersColor.Add(ColorExtensions.RandomColorHex());
                    answersCount.Add(answeredAndDone);
                }


                if (notAnsweredAndDone > 0)
                {
                    dashboard.labels.Add("Atividades não respondidas e finalizadas");
                    answersColor.Add(ColorExtensions.RandomColorHex());
                    answersCount.Add(notAnsweredAndDone);
                }

                if (answeredAndNotDone > 0)
                {
                    dashboard.labels.Add("Atividades respondidas e não finalizadas");
                    answersColor.Add(ColorExtensions.RandomColorHex());
                    answersCount.Add(answeredAndNotDone);
                }


                if (notAnsweredAndNotDone > 0)
                {
                    dashboard.labels.Add("Atividades não respondidas e não finalizadas");
                    answersColor.Add(ColorExtensions.RandomColorHex());
                    answersCount.Add(notAnsweredAndNotDone);
                }
            }

            dashboard.datasets.Add(new MDashboardDatasets
            {
                backgroundColor = answersColor,
                data            = answersCount
            });
            return(dashboard);
        }