Beispiel #1
0
 public static List <User> GetAllUsersFromDirectorate(TGFCContext ctx, Directorate directorate)
 {
     return(ctx.User
            .Include(u => u.Activities).Include(u => u.Images)
            .Include(u => u.Department)
            .Where(u => u.Department.Directorate == directorate).ToList());
 }
Beispiel #2
0
 public RegisterView(TGFCContext _ctx)
 {
     Directorates = Queries.GetAllDirectorates(_ctx);
     foreach (var directorate in Directorates)
     {
         Departments[directorate] = Queries.GetAllDepartmentsOfDirectorate(_ctx, directorate);
     }
 }
Beispiel #3
0
 public SettingsView(TGFCContext _ctx, IEnumerable <Claim> _claims)
 {
     CurrentUser  = Queries.GetUserByClaims(_ctx, _claims);
     Directorates = Queries.GetAllDirectorates(_ctx);
     foreach (var directorate in Directorates)
     {
         Departments[directorate] = Queries.GetAllDepartmentsOfDirectorate(_ctx, directorate);
     }
 }
Beispiel #4
0
        public static User GetUserByClaims(TGFCContext ctx, IEnumerable <Claim> claims)
        {
            Claim claim = claims.FirstOrDefault(c => c.Type == "UserId");

            return(ctx.User
                   .Include(u => u.Activities).Include(u => u.Images)
                   .Include(u => u.Department).ThenInclude(d => d.Directorate)
                   .FirstOrDefault(u => u.UserId == Convert.ToInt32(claim.Value)));
        }
Beispiel #5
0
 public static List <Directorate> GetAllDirectorates(TGFCContext ctx) => ctx.Directorate
 .Include(d => d.Departments)
 .ToList();
Beispiel #6
0
 public static Directorate GetDirectorateById(TGFCContext ctx, int id) => ctx.Directorate
 .Include(d => d.Departments)
 .FirstOrDefault(d => d.DirectorateId == id);
Beispiel #7
0
 public static List <Discipline> GetAllDisciplines(TGFCContext ctx) => ctx.Discipline
 .Include(d => d.ActivityTypes)
 .ToList();
 public HomeController(ILogger <HomeController> logger, TGFCContext context)
 {
     _logger  = logger;
     _context = context;
 }
Beispiel #9
0
 public CreateActivityView(TGFCContext _ctx, IEnumerable <Claim> _claims)
 {
     CurrentUser   = Queries.GetUserByClaims(_ctx, _claims);
     Disciplines   = Queries.GetAllDisciplines(_ctx);
     ActivityTypes = Queries.GetAllActivityTypes(_ctx);
 }
Beispiel #10
0
 public static List <Image> GetAllImagesOfDirectorate(TGFCContext ctx, Directorate directorate) => ctx.Image
 .Include(i => i.User)
 .Where(i => i.User.Department.Directorate == directorate).ToList();
Beispiel #11
0
 public static User GetUserById(TGFCContext ctx, int id) => ctx.User
 .Include(u => u.Activities).Include(u => u.Images).Include(u => u.Department)
 .FirstOrDefault(u => u.UserId == id);
Beispiel #12
0
 public static User GetUserByEmail(TGFCContext ctx, string email) => ctx.User
 .Include(u => u.Activities).Include(u => u.Department).Include(u => u.Images)
 .FirstOrDefault(u => u.Email == email);
Beispiel #13
0
 public ImagesView(TGFCContext _ctx, IEnumerable <Claim> _claims)
 {
     CurrentUser = Queries.GetUserByClaims(_ctx, _claims);
     Images      = Queries.GetAllImagesOfDirectorate(_ctx, CurrentUser.Department.Directorate);
     Departments = Queries.GetAllDepartmentsOfDirectorate(_ctx, CurrentUser.Department.Directorate);
 }
Beispiel #14
0
 public static Department GetDepartmentById(TGFCContext ctx, int id) => ctx.Department
 .Include(d => d.Directorate).Include(d => d.Users)
 .FirstOrDefault(d => d.DepartmentId == id);
Beispiel #15
0
 public static Activity GetActivityById(TGFCContext ctx, int id) => ctx.Activity
 .Include(a => a.User).Include(a => a.ActivityType)
 .FirstOrDefault(a => a.ActivityId == id);
Beispiel #16
0
 public static List <Department> GetAllDepartmentsOfDirectorate(TGFCContext ctx, Directorate directorate) => ctx.Department
 .Include(d => d.Directorate).Include(d => d.Users)
 .Where(d => d.Directorate == directorate).ToList();
Beispiel #17
0
 public static List <Activity> GetActivitiesOfUser(TGFCContext ctx, User u) => ctx.Activity
 .Include(a => a.User).Include(a => a.ActivityType)
 .Where(a => a.User == u).ToList();
Beispiel #18
0
 public static Image getImageById(TGFCContext ctx, int imageId) => ctx.Image
 .Include(i => i.User)
 .FirstOrDefault(i => i.ImageId == imageId);
Beispiel #19
0
 public static List <ActivityType> GetAllActivityTypes(TGFCContext ctx) => ctx.ActivityType
 .Include(a => a.Discipline).Include(a => a.Activities)
 .ToList();
 public AccountController(ILogger <AccountController> logger, TGFCContext context, IHostingEnvironment environment)
 {
     _logger      = logger;
     _context     = context;
     _environment = environment;
 }
Beispiel #21
0
 public static Discipline GetDisciplineById(TGFCContext ctx, int id) => ctx.Discipline
 .Include(d => d.ActivityTypes)
 .FirstOrDefault(d => d.DisciplineId == id);
        public AccountView(TGFCContext _ctx, IEnumerable <Claim> _claims)
        {
            CurrentUser   = Queries.GetUserByClaims(_ctx, _claims);
            Disciplines   = Queries.GetAllDisciplines(_ctx);
            ActivityTypes = Queries.GetAllActivityTypes(_ctx);
            if (CurrentUser.Department.Directorate.ChallengeStartDate == null || CurrentUser.Department.Directorate.ChallengeEndDate == null)
            {
                ChallengeStartDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                ChallengeEndDate   = ChallengeStartDate.AddMonths(1).AddMinutes(-1);
            }
            else
            {
                ChallengeStartDate = (DateTime)CurrentUser.Department.Directorate.ChallengeStartDate;
                ChallengeEndDate   = (DateTime)CurrentUser.Department.Directorate.ChallengeEndDate;
            }

            List <DateTime> dates = GetDatesBetween(ChallengeStartDate, ChallengeEndDate);

            foreach (var date in dates)
            {
                LineChartLabels.Add($"{date.ToString("dd/MM/yy")}");
            }

            TotalCalories = Calories.CalculateTotalCalories(CurrentUser.Activities.Where(a => a.StartTime >= ChallengeStartDate && a.EndTime <= ChallengeEndDate).ToList());

            for (int i = 0; i < Disciplines.Count; i++)
            {
                PieChartData.Add(0);
            }

            List <int> allCounter = new List <int>();

            for (int j = 0; j < dates.Count; j++)
            {
                allCounter.Add(0);
            }

            foreach (var dscpln in Disciplines)
            {
                List <int> temp;
                if (!LineChartData.TryGetValue(dscpln.NameNormalized, out temp))
                {
                    temp = new List <int>();
                    for (int j = 0; j < dates.Count; j++)
                    {
                        temp.Add(0);
                    }
                }
                LineChartData[dscpln.NameNormalized] = temp;
            }

            foreach (var ac in CurrentUser.Activities.Where(a => a.StartTime >= ChallengeStartDate && a.EndTime <= ChallengeEndDate))
            {
                List <int> temp;
                if (!LineChartData.TryGetValue(ac.ActivityType.Discipline.NameNormalized, out temp))
                {
                    temp = new List <int>();
                    for (int j = 0; j < dates.Count; j++)
                    {
                        temp.Add(0);
                    }
                }
                int day = (ac.StartTime.Day - ChallengeStartDate.Day);

                int value = temp[day];
                temp[day] = ++value;

                int value2 = allCounter[day];
                allCounter[day] = ++value2;

                LineChartData[ac.ActivityType.Discipline.NameNormalized] = temp;

                int index = Disciplines.IndexOf(ac.ActivityType.Discipline);
                PieChartData[index] = PieChartData[index] + 1;
            }
            LineChartData["all"] = allCounter;

            foreach (var dscpln in Disciplines)
            {
                DisciplineNames.Add(dscpln.NameNormalized);
                PieChartLabels.Add(dscpln.Name);
                PieChartColors.Add(dscpln.Color);
            }
            DisciplineNames.Add("all");
        }
Beispiel #23
0
        public DepartmentsView(TGFCContext _ctx, IEnumerable <Claim> _claims)
        {
            CurrentUser   = Queries.GetUserByClaims(_ctx, _claims);
            Disciplines   = Queries.GetAllDisciplines(_ctx);
            Departments   = Queries.GetAllDepartmentsOfDirectorate(_ctx, CurrentUser.Department.Directorate);
            ActivityTypes = Queries.GetAllActivityTypes(_ctx);
            if (CurrentUser.Department.Directorate.ChallengeStartDate == null || CurrentUser.Department.Directorate.ChallengeEndDate == null)
            {
                ChallengeStartDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                ChallengeEndDate   = ChallengeStartDate.AddMonths(1).AddMinutes(-1);
            }
            else
            {
                ChallengeStartDate = (DateTime)CurrentUser.Department.Directorate.ChallengeStartDate;
                ChallengeEndDate   = (DateTime)CurrentUser.Department.Directorate.ChallengeEndDate;
            }
            foreach (var dep in Departments)
            {
                ActivitiesByDepartments[dep] = dep.Activities.Where(a => a.StartTime >= ChallengeStartDate && a.EndTime <= ChallengeEndDate).ToList();
            }


            List <DateTime> dates = GetDatesBetween(ChallengeStartDate, ChallengeEndDate);

            foreach (var date in dates)
            {
                LineChartLabels.Add($"{date.ToString("dd/MM/yy")}");
            }

            ChartHeaders.Add("Total Activities");
            ChartHeaders.Add("Total Calories");
            ChartHeaders.Add("Total Distance");
            ChartHeaders.Add("Total Duration");
            foreach (var dscpl in Disciplines)
            {
                ChartHeaders.Add($"{dscpl.Name} - Activities Overview");
            }

            foreach (var department in Departments)
            {
                Dictionary <int, List <double> > tempDepartment;
                if (!LineChartData.TryGetValue(department.DepartmentId, out tempDepartment))
                {
                    tempDepartment = new Dictionary <int, List <double> >();
                }
                for (int i = 0; i < ChartHeaders.Count; i++)
                {
                    List <double> tempDataList;
                    if (!tempDepartment.TryGetValue(i, out tempDataList))
                    {
                        tempDataList = new List <double>();
                    }
                    foreach (var date in dates)
                    {
                        tempDataList.Add(0);
                    }
                    tempDepartment[i] = tempDataList;
                }
                LineChartData[department.DepartmentId] = tempDepartment;
            }
            SetDataTotalActivities();
            SetDataTotalCalories();
            SetDataTotalDistance();
            SetDataTotalDuration();
            SetDataDisciplines();

            RankingChartHeaders.Add("Total Activities");
            RankingChartHeaders.Add("Total Calories");
            RankingChartHeaders.Add("Total Distance");
            RankingChartHeaders.Add("Total Duration");

            UsersOfDirectorate = Queries.GetAllUsersFromDirectorate(_ctx, CurrentUser.Department.Directorate);

            for (int i = 0; i < 4; i++)
            {
                UserRankingData[i] = new List <User>();
            }
            for (int i = 0; i < 4; i++)
            {
                GroupRankingData[i] = new List <Department>();
            }
            for (int i = 0; i < 4; i++)
            {
                UserRankingChartData[i] = new List <LineChartDataSet>();
            }
            for (int i = 0; i < 4; i++)
            {
                GroupRankingChartData[i] = new List <LineChartDataSet>();
            }
            foreach (var user in UsersOfDirectorate)
            {
                if (user.TotalActivities > 0)
                {
                    UserRankingData[0].Add(user);
                }
            }
            foreach (var user in UsersOfDirectorate)
            {
                if (user.TotalCalories > 0)
                {
                    UserRankingData[1].Add(user);
                }
            }
            foreach (var user in UsersOfDirectorate)
            {
                if (user.TotalDistance > 0)
                {
                    UserRankingData[2].Add(user);
                }
            }
            foreach (var user in UsersOfDirectorate)
            {
                if (user.TotalDuration.TotalMinutes > 0)
                {
                    UserRankingData[3].Add(user);
                }
            }

            foreach (var dep in Departments)
            {
                if (dep.TotalActivities > 0)
                {
                    GroupRankingData[0].Add(dep);
                }
            }
            foreach (var dep in Departments)
            {
                if (dep.TotalCalories > 0)
                {
                    GroupRankingData[1].Add(dep);
                }
            }
            foreach (var dep in Departments)
            {
                if (dep.TotalDistance > 0)
                {
                    GroupRankingData[2].Add(dep);
                }
            }
            foreach (var dep in Departments)
            {
                if (dep.TotalDuration.TotalMinutes > 0)
                {
                    GroupRankingData[3].Add(dep);
                }
            }

            for (int i = 0; i < 4; i++)
            {
                foreach (var user in UserRankingData[i])
                {
                    UserRankingChartData[i].Add(new LineChartDataSet(CurrentUser, user, i));
                }
            }
            for (int i = 0; i < 4; i++)
            {
                foreach (var dep in GroupRankingData[i])
                {
                    GroupRankingChartData[i].Add(new LineChartDataSet(CurrentUser, dep, i));
                }
            }
        }