public override bool UpdateData(int userId, int id, ref object dtoItem, out Library.DTO.Notification notification) { DTO.Factory dtoFactory = ((Newtonsoft.Json.Linq.JObject)dtoItem).ToObject <DTO.Factory>(); notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; try { using (FactoryMng2Entities context = CreateContext()) { Factory dbItem = null; if (id == 0) { dbItem = new Factory(); context.Factory.Add(dbItem); } else { dbItem = context.Factory.FirstOrDefault(o => o.FactoryID == id); } if (dbItem == null) { notification.Message = "Factory not found!"; return(false); } else { // check concurrency if (dbItem.ConcurrencyFlag != null && !dbItem.ConcurrencyFlag.SequenceEqual(Convert.FromBase64String(dtoFactory.ConcurrencyFlag_String))) { throw new Exception(Library.Helper.TEXT_CONCURRENCY_CONFLICT); } // process image foreach (DTO.FactoryImage dtoImage in dtoFactory.FactoryImages) { if (dtoImage.HasChange) { dtoImage.FileUD = fwFactory.CreateFilePointer(FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", dtoImage.NewFile, dtoImage.FileUD); } } // Process business card image foreach (DTO.FactoryBusinessCard dtoCard in dtoFactory.FactoryBusinessCard) { if (dtoCard.FrontHasChange) { dtoCard.FrontFileUD = fwFactory.CreateFilePointer(FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", dtoCard.FrontNewFile, dtoCard.FrontFileUD); } if (dtoCard.BehindHasChange) { dtoCard.BehindFileUD = fwFactory.CreateFilePointer(FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", dtoCard.BehindNewFile, dtoCard.BehindFileUD); } } // processing certificate file foreach (DTO.FactoryCertificate dtoCertificate in dtoFactory.FactoryCertificates) { if (dtoCertificate.CertificateFileHasChange) { if (string.IsNullOrEmpty(dtoCertificate.NewCertificateFile)) { fwFactory.RemoveImageFile(dtoCertificate.CertificateFile); } else { dtoCertificate.CertificateFile = fwFactory.CreateNoneImageFilePointer(FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", dtoCertificate.NewCertificateFile, dtoCertificate.CertificateFile); } } } // remove Technical Image foreach (FactoryImage dbImage in context.FactoryImage.Local.Where(o => o.Factory == null).ToList()) { if (!string.IsNullOrEmpty(dbImage.FileUD)) { fwFactory.RemoveImageFile(dbImage.FileUD); } } // processing image if (dtoFactory.LogoImage_HasChange) { dtoFactory.LogoImage = fwFactory.CreateFilePointer(FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", dtoFactory.LogoImage_NewFile, dtoFactory.LogoImage); } if (dtoFactory.FactoryGalleries != null) { // Pre-event update FactoryGallery foreach (DTO.FactoryGalleryDTO dtoFactoryGallery in dtoFactory.FactoryGalleries.Where(o => o.FactoryGalleryHasChange)) { dtoFactoryGallery.FactoryGalleryUD = fwFactory.CreateNoneImageFilePointer(this._tempFolder, dtoFactoryGallery.FactoryGalleryNewFile, dtoFactoryGallery.FactoryGalleryUD); } } //foreach (DTO.FactoryDocumentDTO dtoDocumentFile in dtoFactory.factoryDocuments) //{ // if (dtoDocumentFile.FactoryDocumentHasChange) // { // if (string.IsNullOrEmpty(dtoDocumentFile.FactoryDocumentNewFile)) // { // fwFactory.RemoveFile(dtoDocumentFile.FactoryDocumentFile); // } // else // { // dtoDocumentFile.FactoryDocumentFile = fwFactory.CreateNoneImageFilePointer(FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", dtoDocumentFile.FactoryDocumentNewFile, dtoDocumentFile.FactoryDocumentFile, dtoDocumentFile.FriendlyName); // } // } //} converter.DTO2BD(dtoFactory, ref dbItem, userId); // //remove orphan item // // FactoryImage context.FactoryImage.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryImage.Remove(o)); // FactoryBusinessCard context.FactoryBusinessCard.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryBusinessCard.Remove(o)); // FactoryDirector context.FactoryDirector.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryDirector.Remove(o)); // FactoryManager context.FactoryManager.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryManager.Remove(o)); // FactoryPricing context.FactoryPricing.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryPricing.Remove(o)); // FactoryResponsiblePerson context.FactoryResponsiblePerson.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryResponsiblePerson.Remove(o)); // SampleTechnical context.FactorySampleTechnical.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactorySampleTechnical.Remove(o)); // FactorySupplier //context.FactoryRawMaterialSupplier.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryRawMaterialSupplier.Remove(o)); context.FactorySupplier.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactorySupplier.Remove(o)); // FactoryInHouseTest context.FactoryInHouseTest.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryInHouseTest.Remove(o)); // FactoryCertificate context.FactoryCertificate.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryCertificate.Remove(o)); //FactoryCapacity By Weeks context.FactoryCapacity.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryCapacity.Remove(o)); //FactoryContactQuickInfo context.FactoryContactQuickInfo.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryContactQuickInfo.Remove(o)); //FactoryProductGroup context.FactoryProductGroup.Local.Where(o => o.Factory == null).ToList().ForEach(o => context.FactoryProductGroup.Remove(o)); dbItem.UpdatedDate = DateTime.Now; dbItem.UpdatedBy = userId; // FactoryGallery for Factory(remove value Factory is null) foreach (FactoryGallery dbFactoryGallery in context.FactoryGallery.Where(o => o.Factory == null).ToList()) { fwFactory.RemoveImageFile(dbFactoryGallery.FactoryGalleryUD); context.FactoryGallery.Remove(dbFactoryGallery); } context.SaveChanges(); //Update Permission Factory if (id == 0) { context.Factory2Mng_function_AddFactoryPermissionNew(dbItem.FactoryID); dtoItem = GetData(userId, dbItem.FactoryID, out notification).Data; } return(true); } } } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; return(false); } }
public void DTO2BD(DTO.Factory dtoItem, ref Factory dbItem, int userId) { // FactoryImage if (dtoItem.FactoryImages != null) { foreach (var item in dbItem.FactoryImage.ToArray()) { if (!dtoItem.FactoryImages.Select(o => o.FactoryImageID).Contains(item.FactoryImageID)) { dbItem.FactoryImage.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryImages) { FactoryImage dbFactoryImage; if (item.FactoryImageID <= 0) { dbFactoryImage = new FactoryImage(); dbItem.FactoryImage.Add(dbFactoryImage); } else { dbFactoryImage = dbItem.FactoryImage.FirstOrDefault(o => o.FactoryImageID == item.FactoryImageID); } if (dbFactoryImage != null) { AutoMapper.Mapper.Map <DTO.FactoryImage, FactoryImage>(item, dbFactoryImage); } } } // Business Card if (dtoItem.FactoryBusinessCard != null) { foreach (var item in dbItem.FactoryBusinessCard.ToArray()) { if (!dtoItem.FactoryBusinessCard.Select(o => o.FactoryBusinessCardID).Contains(item.FactoryBusinessCardID)) { dbItem.FactoryBusinessCard.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryBusinessCard) { FactoryBusinessCard dbFactoryBusinessCard; if (item.FactoryBusinessCardID <= 0) { dbFactoryBusinessCard = new FactoryBusinessCard(); dbItem.FactoryBusinessCard.Add(dbFactoryBusinessCard); } else { dbFactoryBusinessCard = dbItem.FactoryBusinessCard.FirstOrDefault(o => o.FactoryBusinessCardID == item.FactoryBusinessCardID); } if (dbFactoryBusinessCard != null) { AutoMapper.Mapper.Map <DTO.FactoryBusinessCard, FactoryBusinessCard>(item, dbFactoryBusinessCard); } } } // FactoryDirector if (dtoItem.FactoryDirectors != null) { foreach (var item in dbItem.FactoryDirector.ToArray()) { if (!dtoItem.FactoryDirectors.Select(o => o.FactoryDirectorID).Contains(item.FactoryDirectorID)) { dbItem.FactoryDirector.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryDirectors) { FactoryDirector dbFactoryDirector; if (item.FactoryDirectorID <= 0) { dbFactoryDirector = new FactoryDirector(); dbItem.FactoryDirector.Add(dbFactoryDirector); } else { dbFactoryDirector = dbItem.FactoryDirector.FirstOrDefault(o => o.FactoryDirectorID == item.FactoryDirectorID); } if (dbFactoryDirector != null) { AutoMapper.Mapper.Map <DTO.FactoryDirector, FactoryDirector>(item, dbFactoryDirector); } } } // FactoryManager if (dtoItem.FactoryManagers != null) { foreach (var item in dbItem.FactoryManager.ToArray()) { if (!dtoItem.FactoryManagers.Select(o => o.FactoryManagerID).Contains(item.FactoryManagerID)) { dbItem.FactoryManager.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryManagers) { FactoryManager dbFactoryManager; if (item.FactoryManagerID <= 0) { dbFactoryManager = new FactoryManager(); dbItem.FactoryManager.Add(dbFactoryManager); } else { dbFactoryManager = dbItem.FactoryManager.FirstOrDefault(o => o.FactoryManagerID == item.FactoryManagerID); } if (dbFactoryManager != null) { AutoMapper.Mapper.Map <DTO.FactoryManager, FactoryManager>(item, dbFactoryManager); } } } // FactoryPricing if (dtoItem.FactoryPricings != null) { foreach (var item in dbItem.FactoryPricing.ToArray()) { if (!dtoItem.FactoryPricings.Select(o => o.FactoryPricingID).Contains(item.FactoryPricingID)) { dbItem.FactoryPricing.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryPricings) { FactoryPricing dbFactoryPricing; if (item.FactoryPricingID <= 0) { dbFactoryPricing = new FactoryPricing(); dbItem.FactoryPricing.Add(dbFactoryPricing); } else { dbFactoryPricing = dbItem.FactoryPricing.FirstOrDefault(o => o.FactoryPricingID == item.FactoryPricingID); } if (dbFactoryPricing != null) { AutoMapper.Mapper.Map <DTO.FactoryPricing, FactoryPricing>(item, dbFactoryPricing); } } } // FactorySampleTechnical if (dtoItem.FactorySampleTechnicals != null) { foreach (var item in dbItem.FactorySampleTechnical.ToArray()) { if (!dtoItem.FactorySampleTechnicals.Select(o => o.FactorySampleTechnicalID).Contains(item.FactorySampleTechnicalID)) { dbItem.FactorySampleTechnical.Remove(item); } } //map child row foreach (var item in dtoItem.FactorySampleTechnicals) { FactorySampleTechnical dbFactorySampleTechnical; if (item.FactorySampleTechnicalID <= 0) { dbFactorySampleTechnical = new FactorySampleTechnical(); dbItem.FactorySampleTechnical.Add(dbFactorySampleTechnical); } else { dbFactorySampleTechnical = dbItem.FactorySampleTechnical.FirstOrDefault(o => o.FactorySampleTechnicalID == item.FactorySampleTechnicalID); } if (dbFactorySampleTechnical != null) { AutoMapper.Mapper.Map <DTO.FactorySampleTechnical, FactorySampleTechnical>(item, dbFactorySampleTechnical); } } } // FactoryResponsiblePerson if (dtoItem.FactoryResponsiblePersons != null) { foreach (var item in dbItem.FactoryResponsiblePerson.ToArray()) { if (!dtoItem.FactoryResponsiblePersons.Select(o => o.FactoryResponsiblePersonID).Contains(item.FactoryResponsiblePersonID)) { dbItem.FactoryResponsiblePerson.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryResponsiblePersons) { FactoryResponsiblePerson dbFactoryResponsiblePerson; if (item.FactoryResponsiblePersonID <= 0) { dbFactoryResponsiblePerson = new FactoryResponsiblePerson(); dbItem.FactoryResponsiblePerson.Add(dbFactoryResponsiblePerson); } else { dbFactoryResponsiblePerson = dbItem.FactoryResponsiblePerson.FirstOrDefault(o => o.FactoryResponsiblePersonID == item.FactoryResponsiblePersonID); } if (dbFactoryResponsiblePerson != null) { AutoMapper.Mapper.Map <DTO.FactoryResponsiblePerson, FactoryResponsiblePerson>(item, dbFactoryResponsiblePerson); } } } // FactoryRawMaterialSupplier if (dtoItem.FactoryRawMaterialSuppliers != null) { foreach (var item in dbItem.FactoryRawMaterialSupplier.ToArray()) { if (!dtoItem.FactoryRawMaterialSuppliers.Select(o => o.FactoryRawMaterialSupplierID).Contains(item.FactoryRawMaterialSupplierID)) { dbItem.FactoryRawMaterialSupplier.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryRawMaterialSuppliers) { FactoryRawMaterialSupplier dbFactoryRawMaterialSupplier; if (item.FactoryRawMaterialSupplierID <= 0) { dbFactoryRawMaterialSupplier = new FactoryRawMaterialSupplier(); dbItem.FactoryRawMaterialSupplier.Add(dbFactoryRawMaterialSupplier); } else { dbFactoryRawMaterialSupplier = dbItem.FactoryRawMaterialSupplier.FirstOrDefault(o => o.FactoryRawMaterialSupplierID == item.FactoryRawMaterialSupplierID); } if (dbFactoryRawMaterialSupplier != null) { AutoMapper.Mapper.Map <DTO.FactoryRawMaterialSupplier, FactoryRawMaterialSupplier>(item, dbFactoryRawMaterialSupplier); } } } // FactoryInHouseTest if (dtoItem.FactoryInHouseTests != null) { foreach (var item in dbItem.FactoryInHouseTest.ToArray()) { if (!dtoItem.FactoryInHouseTests.Select(o => o.FactoryInHouseTestID).Contains(item.FactoryInHouseTestID)) { dbItem.FactoryInHouseTest.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryInHouseTests) { FactoryInHouseTest dbFactoryInHouseTest; if (item.FactoryInHouseTestID <= 0) { dbFactoryInHouseTest = new FactoryInHouseTest(); dbItem.FactoryInHouseTest.Add(dbFactoryInHouseTest); } else { dbFactoryInHouseTest = dbItem.FactoryInHouseTest.FirstOrDefault(o => o.FactoryInHouseTestID == item.FactoryInHouseTestID); } if (dbFactoryInHouseTest != null) { AutoMapper.Mapper.Map <DTO.FactoryInHouseTest, FactoryInHouseTest>(item, dbFactoryInHouseTest); } } } // FactoryCertificate if (dtoItem.FactoryCertificates != null) { foreach (var item in dbItem.FactoryCertificate.ToArray()) { if (!dtoItem.FactoryCertificates.Select(o => o.FactoryCertificateID).Contains(item.FactoryCertificateID)) { dbItem.FactoryCertificate.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryCertificates) { FactoryCertificate dbFactoryCertificate; if (item.FactoryCertificateID <= 0) { dbFactoryCertificate = new FactoryCertificate(); dbItem.FactoryCertificate.Add(dbFactoryCertificate); } else { dbFactoryCertificate = dbItem.FactoryCertificate.FirstOrDefault(o => o.FactoryCertificateID == item.FactoryCertificateID); } if (dbFactoryCertificate != null) { AutoMapper.Mapper.Map <DTO.FactoryCertificate, FactoryCertificate>(item, dbFactoryCertificate); dbFactoryCertificate.ValidUntil = item.ValidUntil.ConvertStringToDateTime(); //convert datetime to string } } } // Factory Turnover if (dtoItem.FactoryTurnovers != null) { //map child row foreach (var item in dtoItem.FactoryTurnovers) { FactoryTurnover dbFactoryTurnover; if (item.FactoryTurnoverID <= 0) { dbFactoryTurnover = new FactoryTurnover(); dbItem.FactoryTurnover.Add(dbFactoryTurnover); } else { dbFactoryTurnover = dbItem.FactoryTurnover.FirstOrDefault(o => o.FactoryTurnoverID == item.FactoryTurnoverID); } if (dbFactoryTurnover != null) { AutoMapper.Mapper.Map <DTO.FactoryTurnover, FactoryTurnover>(item, dbFactoryTurnover); } } } // Factory Expected Capacity if (dtoItem.FactoryExpectedCapacities != null) { //map child row foreach (var item in dtoItem.FactoryExpectedCapacities) { FactoryExpectedCapacity dbFactoryExpectedCapacity; if (item.FactoryExpectedCapacityID <= 0) { dbFactoryExpectedCapacity = new FactoryExpectedCapacity(); dbItem.FactoryExpectedCapacity.Add(dbFactoryExpectedCapacity); } else { dbFactoryExpectedCapacity = dbItem.FactoryExpectedCapacity.FirstOrDefault(o => o.FactoryExpectedCapacityID == item.FactoryExpectedCapacityID); } if (dbFactoryExpectedCapacity != null) { AutoMapper.Mapper.Map <DTO.FactoryExpectedCapacity, FactoryExpectedCapacity>(item, dbFactoryExpectedCapacity); } } } // Factory Capacity By Weeks if (dtoItem.factoryCapacityByWeeks != null) { //map child row foreach (var item in dtoItem.factoryCapacityByWeeks) { FactoryCapacity dbFactoryCapacity; if (item.FactoryCapacityID <= 0 && item.Capacity != null) { dbFactoryCapacity = new FactoryCapacity(); dbItem.FactoryCapacity.Add(dbFactoryCapacity); } else { dbFactoryCapacity = dbItem.FactoryCapacity.FirstOrDefault(o => o.FactoryCapacityID == item.FactoryCapacityID); } if (dbFactoryCapacity != null) { AutoMapper.Mapper.Map <DTO.FactoryCapacityByWeek, FactoryCapacity>(item, dbFactoryCapacity); } } } // FactorySupplier //if (dtoItem.FactorySuppliers != null) //{ // foreach (var item in dbItem.FactorySupplier.ToArray()) // { // if (!dtoItem.FactorySuppliers.Select(o => o.FactorySupplierID).Contains(item.FactorySupplierID)) // { // dbItem.FactorySupplier.Remove(item); // } // } // //map child row // foreach (var item in dtoItem.FactorySuppliers) // { // FactorySupplier dbFactorySupplier; // if (item.FactorySupplierID <= 0) // { // dbFactorySupplier = new FactorySupplier(); // dbItem.FactorySupplier.Add(dbFactorySupplier); // } // else // { // dbFactorySupplier = dbItem.FactorySupplier.FirstOrDefault(o => o.FactorySupplierID == item.FactorySupplierID); // } // if (dbFactorySupplier != null) // { // AutoMapper.Mapper.Map<DTO.FactorySupplier, FactorySupplier>(item, dbFactorySupplier); // } // } //} // FactoryGallery for add video 360 if (dtoItem.FactoryGalleries != null) { foreach (FactoryGallery dbFactoryGallery in dbItem.FactoryGallery.ToList()) { if (!dtoItem.FactoryGalleries.Select(s => s.FactoryGalleryID).Contains(dbFactoryGallery.FactoryGalleryID)) { dbItem.FactoryGallery.Remove(dbFactoryGallery); } } foreach (DTO.FactoryGalleryDTO dtoFactoryGallery in dtoItem.FactoryGalleries.ToList()) { FactoryGallery dbFactoryGallery; if (dtoFactoryGallery.FactoryGalleryID <= 0) { dbFactoryGallery = new FactoryGallery(); dbItem.FactoryGallery.Add(dbFactoryGallery); } else { dbFactoryGallery = dbItem.FactoryGallery.FirstOrDefault(o => o.FactoryGalleryID == dtoFactoryGallery.FactoryGalleryID); } if (dbFactoryGallery != null) { AutoMapper.Mapper.Map <DTO.FactoryGalleryDTO, FactoryGallery>(dtoFactoryGallery, dbFactoryGallery); } } } // Factory Document if (dtoItem.factoryDocuments != null) { foreach (FactoryDocument dbFactoryDocument in dbItem.FactoryDocument.ToList()) { if (!dtoItem.factoryDocuments.Select(s => s.FactoryDocmentID).Contains(dbFactoryDocument.FactoryDocmentID)) { dbItem.FactoryDocument.Remove(dbFactoryDocument); } } foreach (DTO.FactoryDocumentDTO dtoFactoryDocument in dtoItem.factoryDocuments.ToList()) { FactoryDocument dbFactoryDocument; if (dtoFactoryDocument.FactoryDocmentID <= 0) { dbFactoryDocument = new FactoryDocument(); dbItem.FactoryDocument.Add(dbFactoryDocument); } else { dbFactoryDocument = dbItem.FactoryDocument.FirstOrDefault(o => o.FactoryDocmentID == dtoFactoryDocument.FactoryDocmentID); } if (dbFactoryDocument != null) { if (dtoFactoryDocument.FactoryDocumentHasChange) { dbFactoryDocument.FactoryDocumentFile = fwFactory.CreateNoneImageFilePointer(FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\", dtoFactoryDocument.FactoryDocumentNewFile, dtoFactoryDocument.FactoryDocumentFile, dtoFactoryDocument.FriendlyName); } AutoMapper.Mapper.Map <DTO.FactoryDocumentDTO, FactoryDocument>(dtoFactoryDocument, dbFactoryDocument); } } } // FactoryDirector FactoryContactQuickInfo dbFactoryContactQuickInfo; if (dtoItem.FactoryContactQuickInfos != null) { foreach (var item in dbItem.FactoryContactQuickInfo.ToArray()) { if (!dtoItem.FactoryContactQuickInfos.Select(o => o.FactoryContactQuickInfoID).Contains(item.FactoryContactQuickInfoID)) { dbItem.FactoryContactQuickInfo.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryContactQuickInfos) { if (item.FactoryContactQuickInfoID <= 0) { dbFactoryContactQuickInfo = new FactoryContactQuickInfo(); dbItem.FactoryContactQuickInfo.Add(dbFactoryContactQuickInfo); } else { dbFactoryContactQuickInfo = dbItem.FactoryContactQuickInfo.FirstOrDefault(o => o.FactoryContactQuickInfoID == item.FactoryContactQuickInfoID); } if (dbFactoryContactQuickInfo != null) { AutoMapper.Mapper.Map <DTO.FactoryContactQuickInfo, FactoryContactQuickInfo>(item, dbFactoryContactQuickInfo); } } } // FactoryProductGroup if (dtoItem.FactoryProductGroupDTOs != null) { foreach (var item in dbItem.FactoryProductGroup.ToArray()) { if (!dtoItem.FactoryProductGroupDTOs.Select(o => o.FactoryProductGroupID).Contains(item.FactoryProductGroupID)) { dbItem.FactoryProductGroup.Remove(item); } } //map child row foreach (var item in dtoItem.FactoryProductGroupDTOs) { FactoryProductGroup dbFactoryProductGroup; if (item.FactoryProductGroupID <= 0) { dbFactoryProductGroup = new FactoryProductGroup(); dbItem.FactoryProductGroup.Add(dbFactoryProductGroup); } else { dbFactoryProductGroup = dbItem.FactoryProductGroup.FirstOrDefault(o => o.FactoryProductGroupID == item.FactoryProductGroupID); } if (dbFactoryProductGroup != null) { AutoMapper.Mapper.Map <DTO.FactoryProductGroupDTO, FactoryProductGroup>(item, dbFactoryProductGroup); } } } AutoMapper.Mapper.Map <DTO.Factory, Factory>(dtoItem, dbItem); dbItem.UpdatedDate = dtoItem.UpdatedDate.ConvertStringToDateTime(); }