public async Task <SiteTransplantTotal> SaveSiteTransplantTotalAsync(SiteTransplantTotalItem item, string savedBy) { var transplantCellTypeManager = this.container.GetInstance <TransplantCellTypeManager>(); var clinicalPopulationTypeManager = this.container.GetInstance <ClinicalPopulationTypeManager>(); var transplantTypeManager = this.container.GetInstance <TransplantTypeManager>(); var siteTransplantTotalManager = this.container.GetInstance <SiteTransplantTotalManager>(); var cellTypeTask = transplantCellTypeManager.GetByNameAsync(item.TransplantCellType.Name); var popTypeTask = clinicalPopulationTypeManager.GetByNameAsync(item.ClinicalPopulationType.Name); var transplantTypeTask = transplantTypeManager.GetByNameAsync(item.TransplantType.Name); await Task.WhenAll(cellTypeTask, popTypeTask, transplantTypeTask); if (cellTypeTask.Result == null || popTypeTask.Result == null || transplantTypeTask.Result == null) { throw new Exception("Cannot find data"); } var result = await siteTransplantTotalManager.SaveSiteTransplantTotalAsync(cellTypeTask.Result, popTypeTask.Result, transplantTypeTask.Result, item.Id, item.SiteId, item.IsHaploid, item.NumberOfUnits, Convert.ToDateTime(item.StartDate), Convert.ToDateTime(item.EndDate), savedBy); await this.InvalidateCacheAsync(savedBy); return(result); }
public SiteTransplantTotal SaveSiteTransplantTotal(SiteTransplantTotalItem item, string savedBy) { var transplantCellTypeManager = this.container.GetInstance <TransplantCellTypeManager>(); var clinicalPopulationTypeManager = this.container.GetInstance <ClinicalPopulationTypeManager>(); var transplantTypeManager = this.container.GetInstance <TransplantTypeManager>(); var siteTransplantTotalManager = this.container.GetInstance <SiteTransplantTotalManager>(); var cellType = transplantCellTypeManager.GetByName(item.TransplantCellType.Name); var popType = clinicalPopulationTypeManager.GetByName(item.ClinicalPopulationType.Name); var transplantType = transplantTypeManager.GetByName(item.TransplantType.Name); if (cellType == null || popType == null || transplantType == null) { throw new Exception("Cannot find data"); } var result = siteTransplantTotalManager.SaveSiteTransplantTotal(cellType, popType, transplantType, item.Id, item.SiteId, item.IsHaploid, item.NumberOfUnits, Convert.ToDateTime(item.StartDate), Convert.ToDateTime(item.EndDate), savedBy); this.InvalidateCache(savedBy); return(result); }
public async Task <ServiceResponse <SiteTransplantTotalItem> > SaveSiteTransplantTotal(SiteTransplantTotalItem model) { DateTime startTime = DateTime.Now; var siteFacade = this.Container.GetInstance <SiteFacade>(); try { var item = await siteFacade.SaveSiteTransplantTotalAsync(model, base.Email); base.LogMessage("SaveSiteTransplantTotal", DateTime.Now - startTime); if (!model.Id.HasValue) { item.TransplantCellType = new TransplantCellType { Name = model.TransplantCellType.Name }; item.ClinicalPopulationType = new ClinicalPopulationType { Id = 0, Name = model.ClinicalPopulationType.Name }; item.TransplantType = new TransplantType { Id = 0, Name = model.TransplantType.Name }; } this.SendInvalidation(); return(new ServiceResponse <SiteTransplantTotalItem> { Item = ModelConversions.Convert(item) }); } catch (Exception ex) { return(base.HandleException <SiteTransplantTotalItem>(ex)); } }