Ignore:
Timestamp:
09/15/26 21:15:53 (8 days ago)
Author:
Stefan-Saveski <stefansaveski19@…>
Branches:
master
Children:
002cf5f, 20df1a3, b8093a0, bcacc91
Parents:
93c368a
Message:
  • ready for presentation
File:
1 edited

Legend:

Unmodified
Added
Removed
  • iknow-api/Controllers/UserController.cs

    r93c368a r1b20b22  
    1 using iknow_api.DTOs;
     1using iknow_api.DTOs;
     2using iknow_api.Models;
    23using Microsoft.AspNetCore.Authorization;
    34using Microsoft.AspNetCore.Mvc;
     
    8384                var userData = await _userService.GetUserData(token);
    8485                if (userData == null) return Ok(new { info = "can't get info" });
     86
     87                // The study programme comes from the student's most recent
     88                // enrolment. Within an academic year winter precedes summer,
     89                // so order by year first and put winter ahead of summer.
     90                var currentEnrolment = userData.Enrolments?
     91                    .Where(es => es.Semester != null)
     92                    .OrderByDescending(es => es.Semester!.Year)
     93                    .ThenByDescending(es => es.Semester!.Type == sType.summer)
     94                    .FirstOrDefault();
     95
    8596                var personalInfo = new
    8697                {
     
    8899                    embg = userData.EMBG ?? "",
    89100                    lastName = userData.Surname ?? "",
    90                     middleName = userData.MiddleName ?? "",
     101                    middleName = "", // Not an attribute of Users in the ER model
    91102                    firstName = userData.Name ?? "",
    92103                    maidenName = "", // Property doesn't exist in User model
    93                     dateOfBirth = userData.Bday.ToString("dd.MM.yyyy"),
    94                     gender = userData.Gender ?? "",
    95                     nationality = userData.Nationality ?? "",
    96                     citizenship = userData.Citizenship ?? "",
     104                    dateOfBirth = userData.Bday?.ToString("dd.MM.yyyy") ?? "",
     105                    gender = "", // Not an attribute of Users in the ER model
     106                    nationality = "", // Not an attribute of Users in the ER model
     107                    citizenship = "", // Not an attribute of Users in the ER model
    97108                    scholarship = "",
    98                     currentPlan = userData.EnrollmentInfo?.EnrollmentYear.ToString() ?? "",
     109                    currentPlan = userData.EnrollmentYear?.ToString() ?? "",
    99110                    registryNumber = "",
    100111                    notes = "",
     
    105116                    placeOfBirth = userData.ContactInfo?.City ?? "",
    106117                    municipalityOfBirth = userData.ContactInfo?.Municipality ?? "",
    107                     country = userData.Citizenship ?? ""
     118                    country = "" // Not an attribute of Users in the ER model
    108119                };
    109120                var previousEducation = new
     
    112123                    profession = "",
    113124                    average = userData.HighSchool?.GPA.ToString() ?? "",
    114                     language = userData.Nationality ?? "",
    115                     country = userData.Nationality ?? "",
     125                    language = "", // Not an attribute of HighSchool in the ER model
     126                    country = "",
    116127                    previousUniversity = userData.HighSchool?.HighSchoolType.ToString() ?? "",
    117128                    previousFaculty = "", // Property doesn't exist in HighSchool model
     
    120131                var enrollmentInfo = new
    121132                {
    122                     enrollmentYear = userData.EnrollmentInfo?.EnrollmentYear.ToString() ?? "",
    123                     status = userData.EnrollmentInfo?.StudyStatus ?? "",
     133                    enrollmentYear = userData.EnrollmentYear?.ToString() ?? "",
     134                    status = "", // Not an attribute of Users in the ER model
    124135                    cycle = "Прв циклус",
    125                     program = userData.EnrollmentInfo?.Major?.Name ?? "",
    126                     quota = userData.EnrollmentInfo?.Quota.ToString() ?? "",
     136                    program = currentEnrolment?.Major?.Name ?? "",
     137                    quota = userData.Quota?.ToString() ?? "",
    127138                    secondaryEducationNumber = "",
    128139                    previousEducationCredits = ""
     
    132143                    placeOfResidence = userData.ContactInfo?.City ?? "",
    133144                    municipalityOfResidence = userData.ContactInfo?.Municipality ?? "",
    134                     country = userData.Citizenship ?? "",
     145                    country = "", // Not an attribute of Users in the ER model
    135146                    address = userData.ContactInfo?.Address ?? "",
    136147                    temporaryAddress = "",
     
    165176                    {
    166177                        id = userData[i].Id,
    167                         semester = (userData[i].Semester.Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Semester.Year}/{userData[i].Semester.Year + 1})",
     178                        // sType declares summer first, so compare against the member
     179                        // rather than the ordinal - == 0 meant summer, not winter.
     180                        semester = (userData[i].Semester.Type == sType.winter ? "Зимски" : "Летен") + $"({userData[i].Semester.Year}/{userData[i].Semester.Year + 1})",
    168181                        direction = userData[i].Major?.Name ?? "",
    169182                        quota = userData[i].QuotaType.ToString(),
    170                         note = "",
    171                         studentCom = "",
     183                        note = userData[i].Note ?? "",
     184                        studentCom = userData[i].StudentComment ?? "",
    172185                        sum = "0,00",
    173186                        paid = "0,00",
    174187                        ukim = "",
    175                         createdOn = DateTime.Now.ToString("dd.MM.yyyy"),
    176                         dateChanged = DateTime.Now.ToString("dd.MM.yyyy"),
     188                        createdOn = userData[i].CratedAt.ToString("dd.MM.yyyy"),
     189                        dateChanged = userData[i].LastChange?.ToString("dd.MM.yyyy") ?? "",
    177190                        credits = "0,00",
    178191                        type = "Ред.",
     
    183196                        signatures = "0/5",
    184197                        status = "валиден",
    185                         completed = "Не"
     198                        completed = userData[i].Verified.HasValue ? "Да" : "Не"
    186199                    };
    187200                    results.Add(newResult);
     
    208221                {
    209222                    id = userData[i].Id,
    210                     name = (userData[i].Semester.Type == 0 ? "Зимски" : "Летен") + $"({userData[i].Semester.Year}/{userData[i].Semester.Year + 1})",
     223                    name = (userData[i].Semester.Type == sType.winter ? "Зимски" : "Летен") + $"({userData[i].Semester.Year}/{userData[i].Semester.Year + 1})",
    211224                    status = "валиден",
    212225                    serviceNumber = 1000000 + random.Next(10000, 100000)
     
    221234            {
    222235                // Create semester key like "winter_2025_2026" or "summer_2025_2026"
    223                 var semesterType = enrollment.Semester.Type == 0 ? "winter" : "summer";
     236                var semesterType = enrollment.Semester.Type == sType.winter ? "winter" : "summer";
    224237                var semesterKey = $"{semesterType}_{enrollment.Semester.Year}_{enrollment.Semester.Year + 1}";
    225238
     
    258271            }
    259272            var currentSemester = userData.FirstOrDefault(); // Get the most recent/current semester
    260             var semesterTypeGlobal = currentSemester.Semester.Type == 0 ? "winter" : "summer";
     273            var semesterTypeGlobal = currentSemester.Semester.Type == sType.winter ? "winter" : "summer";
    261274            var semesterData = new
    262275            {
    263276                id = $"{semesterTypeGlobal}_{currentSemester.Semester.Year}_{currentSemester.Semester.Year + 1}",
    264                 name = (currentSemester.Semester.Type == 0 ? "Зимски" : "Летен") + $" ({currentSemester.Semester.Year}/{currentSemester.Semester.Year + 1})",
     277                name = (currentSemester.Semester.Type == sType.winter ? "Зимски" : "Летен") + $" ({currentSemester.Semester.Year}/{currentSemester.Semester.Year + 1})",
    265278                status = "валиден",
    266279                serviceNumber = (1000000 + random.Next(10000, 100000)).ToString(),
     
    318331                        date = passed.DatePassed.ToString("dd.MM.yyyy"),
    319332                        semester = passed.SemesterSubject.EnrolledSemester?.Semester != null
    320                             ? (passed.SemesterSubject.EnrolledSemester.Semester.Type == 0 ? "Зимски" : "Летен") +
     333                            ? (passed.SemesterSubject.EnrolledSemester.Semester.Type == sType.winter ? "Зимски" : "Летен") +
    321334                              $" ({passed.SemesterSubject.EnrolledSemester.Semester.Year}/{passed.SemesterSubject.EnrolledSemester.Semester.Year + 1})"
    322335                            : "",
Note: See TracChangeset for help on using the changeset viewer.