public async Task <ActionResult <LessonDto> > PostLesson(LessonInputDto input) { DateTime?datetime = null; var users = await _context.Users.Where(x => x.FullName != null).ToListAsync(); try { var lesson = new Lesson() { Date = DateTimeString.TryParsingDate(input.Date, false), Time = DateTimeString.TryParsingDate(input.Time, true), InChargeId = input.InChargeId, CourseId = input.CourseId, LessonPeriod = input.LessonPeriod, Note = input.Note, CreatedDate = DateTime.Now, CreatedUserId = input.UserId }; lesson.Status = Domain.Enums.LessonStatus.NotStarted; _context.Lessons.Add(lesson); await _context.SaveChangesAsync(); var lastLesson = await _context.Lessons.Where(x => !x.VirtualDeleted && x.CourseId == lesson.CourseId && x.Id != lesson.Id).OrderByDescending(x => x.Number).FirstOrDefaultAsync(); lesson.Number += lastLesson.Number; _context.Entry(lesson).State = EntityState.Modified; var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Lesson).FullName, Content = "@userName@addAction@objTitle", TypeId = lesson.Id, UserId = user.Id }; _context.Logs.Add(log); await _context.SaveChangesAsync(); var result = new LessonDto() { Id = lesson.Id, Date = lesson.Date.HasValue ? lesson.Date.Value.ToString("G") : "", Time = lesson.Time.HasValue ? lesson.Time.Value.ToString("T") : "", TimeInTimes = lesson.Time.HasValue && lesson.Date.HasValue ? ((DateTime.Now.Date - lesson.Date.Value).TotalHours + (DateTime.Now.Hour - lesson.Time.Value.Hour)).ToString() : "0", CourseId = lesson.CourseId.HasValue ? lesson.CourseId.Value : 0, InChargeId = lesson.InChargeId, InChargeName = users.SingleOrDefault(y => y.Id == lesson.InChargeId).FullName, LessonPeriod = lesson.LessonPeriod, Note = lesson.Note, Status = lesson.Status }; return(result); } catch (Exception ex) { return(null); } }
public async Task <ActionResult <LessonDto> > PutLesson(int id, LessonInputDto input) { DateTime?datetime = null; var users = await _context.Users.Where(x => x.FullName != null).ToListAsync(); var lesson = await _context.Lessons.FindAsync(id); lesson.Date = DateTimeString.TryParsingDate(input.Date, false); lesson.Time = DateTimeString.TryParsingDate(input.Time, true); lesson.InChargeId = input.InChargeId; lesson.CourseId = input.CourseId; lesson.LessonPeriod = input.LessonPeriod; lesson.Note = input.Note; lesson.Status = Domain.Enums.LessonStatus.NotStarted; lesson.UpdatedUserId = input.UserId; lesson.UpdatedDate = DateTime.Now; _context.Entry(lesson).State = EntityState.Modified; var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Lesson).FullName, Content = "@userName@updateAction@objTitle", TypeId = lesson.Id, UserId = user.Id }; _context.Logs.Add(log); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LessonExists(id)) { return(NotFound()); } else { throw; } } var result = new LessonDto() { Id = lesson.Id, Date = lesson.Date.HasValue ? lesson.Date.Value.ToString("G") : "", Time = lesson.Time.HasValue ? lesson.Time.Value.ToString("T") : "", TimeInTimes = lesson.Time.HasValue && lesson.Date.HasValue ? ((DateTime.Now.Date - lesson.Date.Value).TotalHours + (DateTime.Now.Hour - lesson.Time.Value.Hour)).ToString() : "0", CourseId = lesson.CourseId.HasValue ? lesson.CourseId.Value : 0, InChargeId = lesson.InChargeId, InChargeName = users.SingleOrDefault(y => y.Id == lesson.InChargeId).FullName, LessonPeriod = lesson.LessonPeriod, Note = lesson.Note, Status = lesson.Status }; return(result); }