public async Task <IActionResult> UpdateSimCard(int id, [FromBody] SimCardSaveResource simCardSaveResource) { if (!_auth.IsAppAdmin(User)) { return(NoContent()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var simCardFromRepo = await _repo.GetSimCard(id); if (simCardFromRepo == null) { return(BadRequest($"Sim Card {id} could not be found.")); } /* Test for prexistence */ var filter = new MdaSimCardQuery() { Iccid = simCardSaveResource.Iccid, PhoneNumber = simCardSaveResource.PhoneNumber, Carrier = simCardSaveResource.Carrier, Active = 2 }; var simCardFromRepoExisting = await _repo.GetSimCards(filter); if (simCardFromRepoExisting.Any()) { var existingSim = simCardFromRepoExisting.FirstOrDefault(); if (existingSim.Id != id) { return(BadRequest($"Sim Card with ICCID {simCardSaveResource.Iccid} already exists")); } else { if (existingSim.PhoneNumber.ToLower() == simCardSaveResource.PhoneNumber.ToLower() && existingSim.Carrier.ToLower() == simCardSaveResource.Carrier.ToLower()) { if (existingSim.Active == Convert.ToByte(simCardSaveResource.Active == true ? 1 : 0)) { return(BadRequest("Nothing has changed")); } } } } _mapper.Map <SimCardSaveResource, MdaSimCard>(simCardSaveResource, simCardFromRepo); simCardFromRepo.ModifiedBy = User.Identity.Name; simCardFromRepo.ModifiedDate = DateTime.Now; if (await _repo.SaveAll()) { return(NoContent()); } return(BadRequest("Failed to update Sim Card")); }
public async Task <PagedList <MdaSimCard> > GetSimCards(MdaSimCardQuery filter) { var query = _context.MdaSimCard .Include(s => s.MdaDevice).ThenInclude(d => d.Product).ThenInclude(p => p.ProductModel) .ThenInclude(pm => pm.ProductManufacturer) .Include(s => s.MdaDevice).ThenInclude(d => d.Product).ThenInclude(p => p.ProductCapacity) .Include(s => s.MdaDevice).ThenInclude(d => d.MdaDeviceAssignment).ThenInclude(a => a.MdaDeviceAssignee) .ThenInclude(mda => mda.Department).IgnoreQueryFilters() .AsQueryable(); // if (filter.PageSize == 0) // filter.PageSize = 10; if (!string.IsNullOrEmpty(filter.Iccid)) { query = query.Where(sc => sc.Iccid.Contains(filter.Iccid)); } if (!string.IsNullOrEmpty(filter.PhoneNumber)) { query = query.Where(sc => sc.PhoneNumber.Contains(filter.PhoneNumber)); } if (!string.IsNullOrEmpty(filter.Carrier)) { query = query.Where(sc => sc.Carrier.Contains(filter.Carrier)); } if (filter.Active == 0) { query = query.Where(d => d.Active == 0); } if (filter.Active == 1) { query = query.Where(d => d.Active == 1); } var columnsMap = new Dictionary <string, Expression <Func <MdaSimCard, object> > > { }; query = query.ApplyOrdering(filter, columnsMap); // query = query.ApplyPaging(filter); // return await query.ToListAsync(); return(await PagedList <MdaSimCard> .CreateAsync(query, filter.Page, filter.PageSize)); }
public async Task <IActionResult> AddSimCard([FromBody] SimCardSaveResource simCardSaveResource) { if (!_auth.IsAppAdmin(User)) { return(NoContent()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } /* Test for prexistence */ var filter = new MdaSimCardQuery() { Iccid = simCardSaveResource.Iccid, PhoneNumber = simCardSaveResource.PhoneNumber, Carrier = simCardSaveResource.Carrier }; var simCardFromRepo = await _repo.GetSimCards(filter); if (simCardFromRepo.Any()) { return(BadRequest($"Sim Card with ICCID {simCardSaveResource.Iccid} already exists")); } var simCard = _mapper.Map <MdaSimCard>(simCardSaveResource); simCard.CreatedBy = User.Identity.Name; _repo.Add(simCard); if (await _repo.SaveAll()) { return(Ok(simCard)); } return(BadRequest("Failed to add Sim Card")); }