public void UpdateRests(Guid inventorizationId, List <Rests> rests) { IEnumerable <Rests> oldRests = inventorizationRepository.GetRests(inventorizationId); IEnumerable <Rests> existedRests = rests.Where(x => oldRests.Any(r => r.Code == x.Code)); IEnumerable <Rests> newRests = rests.Except(existedRests); inventorizationRepository.UpdateRests(inventorizationId, existedRests); inventorizationRepository.AddRests(inventorizationId, newRests); }
public IHttpActionResult INV3(Guid inventorizationId) { Report3Generator generator = new Report3Generator(AppDomain.CurrentDomain.BaseDirectory + @"\Templates\Report3.XLSX"); Business.Model.Inventorization inventorization = inventorizationRepository.GetInventorization(inventorizationId); if (inventorization == null) { return(NotFound()); } List <Rests> rests = inventorizationRepository.GetRests(inventorizationId); List <Business.Model.Action> actions = actionRepository.GetActionsByInventorization(inventorizationId); string[] codes = rests.Select(x => x.Code).Union(actions.Select(x => x.BarCode)).Distinct().ToArray(); IEnumerable <Item> items = companyRepository.GetItems(inventorization.Company).Where(x => x.Source == ItemSource.Import && codes.Any(r => r == x.Code)); using (MemoryStream stream = generator.Generate(items.ToList(), actions, rests)) { var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream.ToArray()) }; result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Report3.xlsx" }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel"); return(ResponseMessage(result)); } }