protected override void Cloning(UserAgentRedirectPart originalPart, UserAgentRedirectPart clonePart, CloneContentContext context) { clonePart.AutoRedirect = originalPart.AutoRedirect; clonePart.AppName = originalPart.AppName; foreach (var record in originalPart.Stores) { //clone the records var newRecord = new AppStoreRedirectRecord() { UserAgentRedirectPartRecord = clonePart.Record, AppStoreKey = record.AppStoreKey, RedirectUrl = record.RedirectUrl }; _appStoreRedirectRepository.Create(newRecord); } }
public void Update(ContentItem content, UserAgentRedirectEdit editModel) { var mapperConfiguration = new MapperConfiguration(cfg => { cfg.CreateMap <AppStoreEdit, AppStoreRedirectRecord>(); cfg.CreateMap <UserAgentRedirectEdit, UserAgentRedirectPart>() .ForMember(dest => dest.Stores, opt => opt.Ignore()); }); IMapper _mapper = mapperConfiguration.CreateMapper(); var part = content.As <UserAgentRedirectPart>(); _mapper.Map(editModel, part); var partRecord = part.Record; var partId = part.Id; // Update and Delete foreach (var item in editModel.Stores.Where(w => w.Id > 0)) { AppStoreRedirectRecord record = _appStoreRedirectRepository.Get(item.Id); _mapper.Map(item, record); var recordQuestionID = record.Id; record.UserAgentRedirectPartRecord = partRecord; if (item.Delete) { _appStoreRedirectRepository.Delete(_appStoreRedirectRepository.Get(item.Id)); } else { _appStoreRedirectRepository.Update(record); } } // Create foreach (var item in editModel.Stores.Where(w => w.Id == 0 && w.Delete == false)) { AppStoreRedirectRecord record = new AppStoreRedirectRecord(); _mapper.Map(item, record); record.UserAgentRedirectPartRecord = partRecord; _appStoreRedirectRepository.Create(record); } }