public void SaveCostDetailLocally(CostDetail cv, Guid guid) { if (cv != null) { var pPart = cv.ProductPart; switch (cv.TypeOfCostDetail) { //if it is a printing... we have to case CostDetail.CostDetailType.PrintingFlatRollCostDetail: case CostDetail.CostDetailType.PrintingZRollCostDetail: case CostDetail.CostDetailType.PrintingSheetCostDetail: case CostDetail.CostDetailType.PrintingRollCostDetail: case CostDetail.CostDetailType.RepassRollCostDetail: case CostDetail.CostDetailType.PrePostPressCostDetail: if (cv.Computes.Count == 0) { // var tempCost = DocumentCostsDic.ToList().Select(y => y.Value); List<CostDetail> x = cv.CreateRelatedPrintedCostDetail(ArticleRepository.GetAll(), tempCost.AsQueryable()).Union( cv.GetRelatedImplantCostDetail(cv.TaskCost.CodProductPartTask, tempCost.AsQueryable())).ToList(); foreach (var item in x) { item.ComputedBy = cv; item.InitCostDetail(TaskExecutorRepository.GetAll(), ArticleRepository.GetAll()); if (!CostDetailIsJustSaved(item.CodCostDetail, guid)) { SaveCostDetailInDictionary(item); } } } //cv.TaskCost = null; SaveCostDetailInDictionary(cv); //aggiorna il costo rigenerando prima i coefficienti var inizio = DateTime.Now; // UpdateCost(cv.CodCostDetail); var tempo = DateTime.Now.Subtract(inizio); Console.Write(tempo); break; case CostDetail.CostDetailType.ControlTableCostDetail: SaveCostDetailInDictionary(cv); //CostDetailRepository.Add(cv); //CostDetailRepository.Save(); //aggiorna il costo rigenerando prima i coefficienti // UpdateCost(cv.CodCostDetail); break; case CostDetail.CostDetailType.PrintedSheetArticleCostDetail: break; case CostDetail.CostDetailType.PrintedRollArticleCostDetail: break; default: break; } } }