Example #1
0
 public IActionResult Create([FromBody] Users user)
 {
     if (user == null)
     {
         return(BadRequest());
     }
     user.Id = AdoHelper.GetNextId("Users", _connString);
     _context.Users.Add(user);
     _context.SaveChanges();
     return(CreatedAtRoute("GetById", new { id = user.Id }, user));
 }
Example #2
0
 public IActionResult Create([FromBody] Enrollments enrollment)
 {
     if (enrollment == null)
     {
         return(BadRequest());
     }
     enrollment.Id = AdoHelper.GetNextId("Enrollments", _connString);
     _context.Enrollments.Add(enrollment);
     _context.SaveChanges();
     return(CreatedAtRoute("GetEnrollment", new { id = enrollment.Id }, enrollment));
 }
        public string Get(int id)
        {
            var courceAssignment = _context.CoursesAssignments.SingleOrDefault(x => x.Id == id);

            if (courceAssignment != null)
            {
                // Try create new lecture (One per day && courseAssignmentId)
                var now             = DateTime.Now;
                var today           = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
                int?lectureLogId    = null;
                var existingLecture = _context.LecturesLog.Where(x => x.CourseAssignmentId == id && x.Date == today);
                if (existingLecture.Count() == 0)
                {
                    try
                    {
                        var newLecture = new LecturesLog();
                        newLecture.Id = AdoHelper.GetNextId("LecturesLog", _connString);
                        newLecture.CourseAssignmentId = id;
                        newLecture.Date = today;
                        _context.LecturesLog.Add(newLecture);
                        _context.SaveChanges();
                        lectureLogId = newLecture.Id;
                    }
                    catch
                    {
                        return("Error");
                    }
                }
                else
                {
                    lectureLogId = existingLecture.FirstOrDefault().Id;
                }

                // Create QR code
                var data = new QrCodeData()
                {
                    CourseAssignmentId = id,
                    LectureLogId       = lectureLogId,
                    CourseId           = courceAssignment.CourseId,
                    AcademicTermId     = courceAssignment.AcademicTermId,
                    Date = DateTime.Now.ToString("yyyy-MM-dd"),
                    SessionStartTimestamp = DateTime.Now.Ticks
                };
                QRCodeGenerator qrGenerator         = new QRCodeGenerator();
                QRCodeData      qrCodeData          = qrGenerator.CreateQrCode(Newtonsoft.Json.JsonConvert.SerializeObject(data), QRCodeGenerator.ECCLevel.Q);
                Base64QRCode    qrCode              = new Base64QRCode(qrCodeData);
                string          qrCodeImageAsBase64 = qrCode.GetGraphic(20);

                return(qrCodeImageAsBase64);
            }
            return("Error");
        }
Example #4
0
        public IActionResult Create([FromBody] AttendanceRegistrationData data)
        {
            var dataValidation = LogHelper.ValidateRegistrationData(data, this._context, this._configuration);

            if (data == null)
            {
                return(BadRequest());
            }
            else if (!dataValidation.valid)
            {
                if (!string.IsNullOrWhiteSpace(dataValidation.error))
                {
                    return(Content($"Error: {dataValidation.error}"));
                }
                return(Content("Error: Invalid data"));
            }

            data.Attendance.Longitude = data.GeoLon;
            data.Attendance.Latitude  = data.GeoLat;
            data.Attendance.Timestamp = data.SessionStartTimestamp;

            // Remove existing log in same date
            var existingLogs = LogHelper.GetDuplicatedLog(data.Attendance, _context);

            if (existingLogs.Count() > 0)
            {
                _context.AttendanceLog.RemoveRange(existingLogs);
                _context.SaveChanges();
            }

            var log = data.Attendance;

            log.Id = AdoHelper.GetNextId("AttendanceLog", _connString);
            _context.AttendanceLog.Add(log);
            _context.SaveChanges();
            return(CreatedAtRoute("GetLog", new { id = log.Id }, log));
        }