Esempio n. 1
0
        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));
            }
        }