public GL_BuildPlanDTO AddOrUpdateBuildPlan(dynamic values) { GL_BuildPlanDTO dto = JsonConvert.DeserializeObject <GL_BuildPlanDTO>(values.ToString()); string errorMessage = string.Empty; GoldenLine_BuildPlanUpdateType updateType = GoldenLine_BuildPlanUpdateType.None; switch (dto.UpdateType) { case 1: updateType = GoldenLine_BuildPlanUpdateType.PlanOutput; break; case 2: updateType = GoldenLine_BuildPlanUpdateType.PlanHC; break; case 3: updateType = GoldenLine_BuildPlanUpdateType.ActualHC; break; } dto = _goldenLineService.AddOrUpdateBuildPlan(dto, updateType, out errorMessage); if (string.IsNullOrEmpty(errorMessage)) { return(dto); } else { return(null); } }
// Add or update build plan entity public GL_BuildPlanDTO AddOrUpdateBuildPlan(GL_BuildPlanDTO dto, GoldenLine_BuildPlanUpdateType updateType, out string errorMessage) { errorMessage = string.Empty; GL_BuildPlan entity = AutoMapper.Mapper.Map <GL_BuildPlan>(dto); // Query GL_BuildPlan foundBuildPlan = _buildPlanRepository.GetMany(x => x.LineID == entity.LineID && x.StartTime == entity.StartTime).FirstOrDefault(); try { GL_BuildPlan entityContext; if (foundBuildPlan == null) { entityContext = _buildPlanRepository.Add(entity); } else { entityContext = foundBuildPlan; switch (updateType) { case GoldenLine_BuildPlanUpdateType.PlanOutput: entityContext.PlanOutput = entity.PlanOutput; break; case GoldenLine_BuildPlanUpdateType.PlanHC: entityContext.PlanHC = entity.PlanHC; break; case GoldenLine_BuildPlanUpdateType.ActualHC: entityContext.ActualHC = entity.ActualHC; break; } } var returnDto = AutoMapper.Mapper.Map <GL_BuildPlanDTO>(entityContext); return(returnDto); } catch (Exception ex) { errorMessage = ex.Message; return(null); } }