private HenDepreciation MapDataToModel(Models.Data.HenDepreciation depreciationData, IList <Models.Data.HenDepreciationDetail> detailsData) { var depreciation = Mapper.Map <Models.Data.HenDepreciation, HenDepreciation>(depreciationData); if (depreciation != null) { foreach (var detailData in detailsData) { var detail = Mapper.Map <Models.Data.HenDepreciationDetail, HenDepreciationDetail>(detailData); depreciation.Details.Add(detail); } } return(depreciation); }
public void Save(HenDepreciation depreciation) { using (var db = factory.OpenDbConnection()) { using (var tx = db.OpenTransaction()) { bool isNew = depreciation.IsNew; Models.Data.HenDepreciation depreciationData = null; if (isNew) { depreciationData = db.FirstOrDefault <Models.Data.HenDepreciation>(u => u.Date == depreciation.Date); } else { depreciationData = db.Query <Models.Data.HenDepreciation>("Date = @Date and Id <> @Id", new { Date = depreciation.Date, Id = depreciation.Id.ToString() }) .FirstOrDefault(); } if (depreciationData != null) { tx.Rollback(); throw new ServiceException("HenDepreciation_DuplicateDate"); } if (isNew) { depreciation.Id = Guid.NewGuid(); } depreciationData = Mapper.Map <HenDepreciation, Models.Data.HenDepreciation>(depreciation); if (isNew) { db.InsertParam(depreciationData); } else { db.UpdateParam(depreciationData); } if (!isNew) { db.Delete <Models.Data.HenDepreciationDetail>(where : "DepreciationId = {0}".Params(depreciationData.Id.ToString())); } foreach (var detail in depreciation.Details) { var detailData = Mapper.Map <HenDepreciationDetail, Models.Data.HenDepreciationDetail>(detail); detailData.DepreciationId = depreciation.Id; db.InsertParam(detailData); } try { tx.Commit(); } catch (Exception ex) { tx.Rollback(); throw new ServiceException(ex.Message); } } } }