public HttpResponseMessage Get(string id) { Guid _id; if (Guid.TryParse(id, out _id)) { return(Request.CreateResponse(HttpStatusCode.OK, _inventorizationRepository.GetInventorization(_id))); } else { return(Request.CreateResponse(HttpStatusCode.NotFound)); } }
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)); } }
public HttpResponseMessage GetInventorization(Guid id, Guid inventorizationId) { Business.Model.Inventorization inventorization = _inventorizationRepository.GetInventorization(inventorizationId); if (inventorization == null) { Request.CreateResponse(HttpStatusCode.NotFound); } if (inventorization.Company != id) { Request.CreateResponse(HttpStatusCode.BadRequest); } return(Request.CreateResponse(HttpStatusCode.OK, inventorization)); }
public HttpResponseMessage Get(Guid id) { var action = _actionRepository.GetAction(id); var zone = _zoneRepository.GetZone(action.Zone); var company = _inventorizationRepository.GetInventorization(action.Inventorization).Company; var items = _companyRepository.GetItems(company, new[] { action.BarCode }); List <ZoneState> states = _inventorizationRepository.GetZoneStates(action.Inventorization).Where(x => x.ZoneId != Guid.Empty).ToList(); var foundItem = items.FirstOrDefault(i => i.Code == action.BarCode); var foundState = states.FirstOrDefault(z => z.ZoneId == zone.Id); var zoneVm = new ZoneViewModel() { ZoneId = zone.Id, Number = zone.Number, ClosedAt = foundState?.ClosedAt, ClosedBy = foundState?.ClosedBy, OpenedAt = foundState?.OpenedAt, OpenedBy = foundState?.OpenedBy, ZoneName = zone.Name }; var res = new ViewModels.Action() { Id = action.Id, DateTime = action.DateTime, Quantity = action.Quantity, Type = action.Type, User = action.UserId.ToString(), Zone = zoneVm, BarCode = action.BarCode, FoundInItems = foundItem != null, Name = foundItem != null ? foundItem.Name : "Не найдена в номенклатуре", Description = foundItem != null ? foundItem.Description : "Не найдена в номенклатуре", }; return(Request.CreateResponse(HttpStatusCode.OK, res)); }