public ColdWeightEntryModel GetColdWeightEntryPreferences(int?orderId) { if (!orderId.HasValue) { return(new ColdWeightEntryModel()); } var order = _orderRepository .Query() .Where(x => x.Id == orderId.Value) .Include(x => x.Customer) .Select(x => new { x.Id, x.Customer.Name, x.ExpectedHeadNumber, x.ReceivedHeadNumber, x.SlaughteredHeadNumber }) .FirstOrDefault(); if (order == null) { return(new ColdWeightEntryModel()); } var coldWeightEntry = _coldWeightEntryRepository.GetByOrderId(orderId.Value); if (coldWeightEntry == null) { coldWeightEntry = new ColdWeightEntry { OrderId = orderId.Value }; _coldWeightEntryRepository.Add(coldWeightEntry); _coldWeightEntryRepository.Save(); } return(new ColdWeightEntryModel { OrderId = order.Id, Customer = order.Name, HeadExpected = order.ExpectedHeadNumber, HeadReceived = order.ReceivedHeadNumber, HeadProcessed = order.SlaughteredHeadNumber, QualityGradeId = coldWeightEntry.QualityGradeId, TotalCount = coldWeightEntry.TotalCount, TotalWeight = coldWeightEntry.TotalWeight, }); }
public void Save(IEnumerable <ColdWeightEntryDetailItem> newarray, int orderId, TrackAnimal trackAnimal) { var coldWeightEntry = _coldWeightEntryRepository.GetByOrderId(orderId); if (coldWeightEntry == null) { coldWeightEntry = new ColdWeightEntry { OrderId = orderId, TrackAnimalId = trackAnimal }; _coldWeightEntryRepository.Add(coldWeightEntry); } coldWeightEntry.TrackAnimalId = trackAnimal; _coldWeightEntryRepository.Save(); List <ColdWeightEntryDetail> newColdWeightDetails = new List <ColdWeightEntryDetail>(); foreach (var newItem in newarray) { newColdWeightDetails.Add(new ColdWeightEntryDetail { Id = newItem.Id, ColdWeightId = coldWeightEntry.Id, AnimalNumber = newItem.AnimalNumber, EarTag = newItem.EarTag, FirstSideWeight = newItem.FirstCustomer.CustomerLocationId, SecondSideWeight = (trackAnimal == TrackAnimal.Half || trackAnimal == TrackAnimal.Quarter || coldWeightEntry.TrackAnimalId == TrackAnimal.HalfAndTwoQuaters || coldWeightEntry.TrackAnimalId == TrackAnimal.ThreeQuatersAndQuater) ? newItem.SecondCustomer.CustomerLocationId : null, ThirdSideWeight = (trackAnimal == TrackAnimal.Quarter || trackAnimal == TrackAnimal.HalfAndTwoQuaters) ? newItem.ThirdCustomer.CustomerLocationId : null, FourthSideWeight = trackAnimal == TrackAnimal.Quarter ? newItem.FourthCustomer.CustomerLocationId : null, IsOrganic = newItem.IsOrganic, TrackAnimalId = newItem.TrackAnimalBySelectColumn, HotWeight = newItem.HotWeight, ColdWeight = newItem.ColdWeight, QualityGradeId = newItem.QualityGrade.Id, AnimalLabelId = newItem.AnimalLabel.Id, }); } if (coldWeightEntry.ColdWeightEntryDetails.Any()) { var existingIds = coldWeightEntry.ColdWeightEntryDetails.Select(ord => ord.Id).ToList(); foreach (var item in newColdWeightDetails) { if (existingIds.Contains(item.Id)) { _coldWeightEntryDetailRepository.Update(newColdWeightDetails.First(x => x.Id == item.Id)); } else { _coldWeightEntryDetailRepository.Add(item); } } } else { _coldWeightEntryDetailRepository.AddRange(newColdWeightDetails); } _coldWeightEntryDetailRepository.Save(); }