public static void FillDbObject(this Offer from, tbOffer to) { to.id = from.Id; if (to.tbCoreArticleData == null) { to.tbCoreArticleData = new tbCoreArticleData(); } to.tbCoreArticleData.categoryId = (int)from.Category; to.tbCoreArticleData.header = from.Header; to.tbCoreArticleData.text = from.TextBody; to.tbCoreArticleData.imageUrl = from.ImageUrl; to.tbCoreArticleData.publishDate = from.PublishDate; to.typeId = (int)from.OfferType; to.price = from.Price; }
public void Update(Offer @object) { if (@object == null) { // ReSharper disable NotResolvedInText throw new ArgumentNullException("offer"); // ReSharper restore NotResolvedInText } if (@object.Id == 0) { @object.PublishDate = DateTime.Now; var check = @object.Validate(); if (!string.IsNullOrEmpty(check)) { throw new DomainException(check); } var offerDb = new tbOffer(); @object.FillDbObject(offerDb); DataContext.tbCoreArticleDatas.InsertOnSubmit(offerDb.tbCoreArticleData); DataContext.tbOffers.InsertOnSubmit(offerDb); DataContext.SubmitChanges(); @object.Id = offerDb.id; } else if (@object.Id > 0) { var offerDb = DataContext.tbOffers.SingleOrDefault(l => l.id == @object.Id); if (offerDb != null) { @object.FillDbObject(offerDb); DataContext.SubmitChanges(); } else { throw new DomainException("Нельзя удалить статью с id = " + @object.Id); } } }