public T StartMapper <T>(IntegrationItemsStock integration) where T : class, IEntityBase { var config = new MapperConfiguration(cfg => { cfg.CreateMap <IntegrationItemsStock, T>() .ForMember(x => x.CompanyControl, opt => opt.Ignore()) .ForMember(x => x.CompanyControlId, opt => opt.Ignore()) .ForMember(x => x.DateRegistration, opt => opt.Ignore()) .ForMember(x => x.DateUpdate, opt => opt.Ignore()) .ForMember(x => x.Id, opt => opt.Ignore()) .ForMember(x => x.Integration, opt => opt.Ignore()) .ForMember(x => x.Status, opt => opt.Ignore()) .ForMember(x => x.Integration, opt => opt.UseValue(true)) .ForMember(x => x.UserControl, opt => opt.Ignore()) .ForMember(x => x.UserControlId, opt => opt.Ignore()); }); IMapper mapper = config.CreateMapper(); var obj = mapper.Map <IntegrationItemsStock, T>(integration); var propertyIntegrationItemsStockId = typeof(T).GetProperty("IntegrationItemsStockId"); if (propertyIntegrationItemsStockId != null) { propertyIntegrationItemsStockId.SetValue(obj, integration.Id); } return(obj); }
public bool InsertOrUpdate(IntegrationItemsStock integrationItemsStock) { var integration = _epr.Search(integrationItemsStock.GetExpressionByRelation()).FirstOrDefault(); if (integration != null) { integration = _stockMapper.StartMapper(integrationItemsStock, integration); } if (integration != null) { _epr.InsertOrUpdate(integration); _conn.Save(); ItemInputStock itemInputStock = null; ItemOutputStock itemOutputStock = null; switch (integration.TypeIntegration) { case TypeIntegration.InputStock: itemInputStock = _itemInputStockApp.Search(c => c.IntegrationItemsStockId == integration.Id).FirstOrDefault(); _itemInputStockApp.InsertOrUpdate(_stockMapper.StartMapper(integration, itemInputStock)); break; case TypeIntegration.OutputStock: itemOutputStock = _itemOutputStockApp.Search(c => c.IntegrationItemsStockId == integration.Id).FirstOrDefault(); _itemOutputStockApp.InsertOrUpdate(_stockMapper.StartMapper(integration, itemOutputStock)); break; default: return(false); } } else { _epr.InsertOrUpdate(integrationItemsStock); if (_conn.Save()) { switch (integrationItemsStock.TypeIntegration) { case TypeIntegration.InputStock: _itemInputStockApp.InsertOrUpdate(_stockMapper.StartMapper <ItemInputStock>(integrationItemsStock)); break; case TypeIntegration.OutputStock: _itemOutputStockApp.InsertOrUpdate(_stockMapper.StartMapper <ItemOutputStock>(integrationItemsStock)); break; default: return(false); } } else { return(false); } } return(_conn.Save()); }