public async Task <SiteProcessingTotalItem> SaveSiteProcessingTotalAsync(SiteProcessingTotalItem item, string savedBy) { var cellTypeManager = this.container.GetInstance <TransplantCellTypeManager>(); var totalManager = this.container.GetInstance <SiteProcessingTotalManager>(); var cellTypes = new List <TransplantCellType>(); foreach (var cellTypeName in item.SelectedTypes) { var cellType = await cellTypeManager.GetByNameAsync(cellTypeName); if (cellType == null) { throw new Exception("Cannot find data"); } cellTypes.Add(cellType); } var row = await totalManager.SaveAsync(cellTypes, item.Id, item.SiteId, item.NumberOfUnits, Convert.ToDateTime(item.StartDate), Convert.ToDateTime(item.EndDate), savedBy); await this.InvalidateCacheAsync(savedBy); var conv = ModelConversions.Convert(row); conv.SiteProcessingTotalTransplantCellTypes = cellTypes.Select(x => new SiteProcessingTotalTransplantCellTypeItem { TransplantCellType = ModelConversions.Convert(x) }) .ToList(); return(conv); }
public async Task <ServiceResponse <SiteProcessingTotalItem> > SaveSiteProcessingTotal(SiteProcessingTotalItem model) { DateTime startTime = DateTime.Now; var siteFacade = this.Container.GetInstance <SiteFacade>(); try { var items = await siteFacade.SaveSiteProcessingTotalAsync(model, base.Email); base.LogMessage("SaveSiteProcessingTotal", DateTime.Now - startTime); this.SendInvalidation(); return(new ServiceResponse <SiteProcessingTotalItem> { Item = items }); } catch (Exception ex) { return(base.HandleException <SiteProcessingTotalItem>(ex)); } }