public async Task <ActionResult <SemesterDto> > GetSemester(int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var semester = await semesterService.GetSemesterDtoAsync(id, SemesterDto.IncludeNavigations()); if (semester == null) { return(NotFound()); } return(semester); }
public async Task <ActionResult <IEnumerable <SemesterDto> > > GetSemesters(string searchText = null /*, int pageNumber=1, int pageSize=7*/) { // var semesters = _context.Semesters.Select(SemesterDto.AsSemesterDto); List <Expression <Func <SemesterDto, bool> > > filters = null; if (String.IsNullOrEmpty(searchText) ) { // return null; } else { filters = new List <Expression <Func <SemesterDto, bool> > >(); if (!String.IsNullOrEmpty(searchText)) { if (searchText.CompareTo("*") != 0 && searchText.CompareTo("%") != 0) { filters.Add(x => x.Id.ToString().Contains(searchText)); } } } //sort //return semesters.OrderBy(o => o.Id).Skip(((pageNumber - 1) * pageSize)).Take(pageSize); // OnSelectQuery(ref semesters); // return await semesters.ToListAsync(); if (filters == null) { return(await semesterService.GetSemesterDtoesAsync(SemesterDto.IncludeNavigations())); } else { return(await semesterService.GetSemesterDtoesAsync(SemesterDto.IncludeNavigations(), filters.ToArray())); } }
public async Task <bool> UpdateSemesterAsync(SemesterDto semesterDto, string username /*, String[] includeNavigations, params Expression<Func<Semester, bool>>[] filters*/) { OnUpdate(semesterDto, username); // Get Semester var entity = EntityQuery(_context, SemesterDto.IncludeNavigations()) .FirstOrDefault(x => x.Id == semesterDto.Id); if (entity != null) { entity = SemesterDto.ToSemesterFunc(entity, semesterDto); ToEntity(ref entity, semesterDto); //entity.UpdateUser = entity.LastActivityUser = username; //entity.UpdateDateTime = entity.LastActivityDateTime = DateTime.UtcNow; entity.EditTracker(username); OnBeforeUpdate(entity, username); try { await _context.SaveChangesAsync(); } catch (Exception ex) { // _context.Entry(entity).State = EntityState.Detached; throw new Exception("Update error", ex); } finally { // _context.Entry(entity).State = EntityState.Detached; } OnAfterUpdate(entity, username); } else { return(false); } return(true); }
// -DtoQuery public async Task <SemesterDto> CreateSemesterAsync(SemesterDto semesterDto, string username) { if (_context.Semesters.Any(a => a.Name == semesterDto.Name) == true) { throw new Exception("Record exist and caused a conflict!"); } OnCreate(semesterDto, username); var entity = SemesterDto.AsSemesterFunc(semesterDto); ToEntity(ref entity, semesterDto); //entity.InsertUser = entity.LastActivityUser = username; //entity.InsertDateTime = entity.LastActivityDateTime = DateTime.UtcNow; entity.AddTracker(username); _context.Semesters.Add(entity); OnBeforeCreate(entity, username); try { await _context.SaveChangesAsync(); } catch (Exception ex) { // _context.Entry(entity).State = EntityState.Detached; throw new Exception("Add error", ex); } finally { // _context.Entry(entity).State = EntityState.Detached; } OnAfterCreate(entity, username); // semesterDto = SemesterDto.AsSemesterDtoFunc(entity); semesterDto = await GetSemesterDtoAsync(entity.Id, SemesterDto.IncludeNavigations()); return(semesterDto); }