// -DtoQuery public async Task <CardDto> CreateCardAsync(CardDto cardDto, string username) { OnCreate(cardDto, username); var entity = CardDto.AsCardFunc(cardDto); ToEntity(ref entity, cardDto); //entity.InsertUser = entity.LastActivityUser = username; //entity.InsertDateTime = entity.LastActivityDateTime = DateTime.UtcNow; entity.AddTracker(username); _context.Cards.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); // cardDto = CardDto.AsCardDtoFunc(entity); cardDto = await GetCardDtoAsync(entity.Id, CardDto.IncludeNavigations()); return(cardDto); }
public async Task <ActionResult <CardDto> > GetCard(int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var card = await cardService.GetCardDtoAsync(id, CardDto.IncludeNavigations()); if (card == null) { return(NotFound()); } return(card); }
public async Task <ActionResult <IEnumerable <CardDto> > > GetCards(string searchText = null , string pinText = null /*, int pageNumber=1, int pageSize=7*/) { // var cards = _context.Cards.Select(CardDto.AsCardDto); List <Expression <Func <CardDto, bool> > > filters = null; if (String.IsNullOrEmpty(searchText) && String.IsNullOrEmpty(pinText) ) { // return null; } else { filters = new List <Expression <Func <CardDto, bool> > >(); if (!String.IsNullOrEmpty(searchText)) { if (searchText.CompareTo("*") != 0 && searchText.CompareTo("%") != 0) { filters.Add(x => x.Id.ToString().Contains(searchText)); } } if (!String.IsNullOrEmpty(pinText)) { filters.Add(x => x.Pin == pinText); } } //sort //return cards.OrderBy(o => o.Id).Skip(((pageNumber - 1) * pageSize)).Take(pageSize); // OnSelectQuery(ref cards); // return await cards.ToListAsync(); if (filters == null) { return(await cardService.GetCardDtoesAsync(CardDto.IncludeNavigations())); } else { return(await cardService.GetCardDtoesAsync(CardDto.IncludeNavigations(), filters.ToArray())); } }
public async Task <bool> UpdateCardAsync(CardDto cardDto, string username /*, String[] includeNavigations, params Expression<Func<Card, bool>>[] filters*/) { OnUpdate(cardDto, username); // Get Card var entity = EntityQuery(_context, CardDto.IncludeNavigations()) .FirstOrDefault(x => x.Id == cardDto.Id); if (entity != null) { entity = CardDto.ToCardFunc(entity, cardDto); ToEntity(ref entity, cardDto); //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); }