public ServiceResponse <Guid> SaveCibmtr(CibmtrItem model) { if (!base.IsFactStaff) { return(new ServiceResponse <Guid> { HasError = true, Message = "Not Authorized" }); } try { var facade = this.Container.GetInstance <FacilityFacade>(); var recorrd = facade.SaveCibmtr(model, base.Email); return(new ServiceResponse <Guid> { Item = recorrd.Id }); } catch (Exception ex) { return(base.HandleException <Guid>(ex)); } }
public FacilityCibmtr SaveCibmtr(CibmtrItem item, string savedBy) { var facilityCibmtrManager = this.container.GetInstance <FacilityCibmtrManager>(); var facilityManager = this.container.GetInstance <FacilityManager>(); if (item.Id.HasValue) { var record = facilityCibmtrManager.GetById(item.Id.Value); if (record == null) { throw new Exception("Cannot find CIBMTR record"); } if (record.CenterNumber != item.CenterNumber && !this.IsCibmtrNameUnique(record.CenterNumber)) { throw new Exception($"{item.CenterNumber} is not unique. Please enter a unique name."); } record.CenterNumber = item.CenterNumber; record.CcnName = item.CcnName; record.TransplantSurvivalReportName = item.TransplantSurvivalReportName; record.DisplayName = item.DisplayName; record.IsNonCibmtr = item.IsNonCibmtr; record.IsActive = item.IsActive; record.UpdatedBy = savedBy; record.UpdatedDate = DateTime.Now; facilityCibmtrManager.Save(record); return(record); } else { var facility = facilityManager.GetByName(item.FacilityName); if (facility == null) { throw new Exception($"Cannot find Facility {item.FacilityName}"); } if (!this.IsCibmtrNameUnique(item.CenterNumber)) { throw new Exception($"{item.CenterNumber} is not unique. Please enter a unique name."); } var record = new FacilityCibmtr { Id = Guid.NewGuid(), CenterNumber = item.CenterNumber, CcnName = item.CcnName, TransplantSurvivalReportName = item.TransplantSurvivalReportName, DisplayName = item.DisplayName, IsNonCibmtr = item.IsNonCibmtr, FacilityId = facility.Id, CreatedBy = savedBy, CreatedDate = DateTime.Now, IsActive = item.IsActive }; facilityCibmtrManager.Add(record); return(record); } }