public static async Task <IDictionary <DayOfWeek, Dictionary <DateTime, bool> > > GetFinalOpeningAsync(SubTask subTask) { IList <WorkerUser> workerUsers; workerUsers = await ApplicationEntityManager.GetWorkerUsersByCompanyIdAsync(subTask.CompanyUserId); return(OpeningHandler.GetFinalOpening(workerUsers, subTask)); }
public void GetService_ShallReturnRequestedServicec() { var config = Options.Create <DicomAdapterConfiguration>(new DicomAdapterConfiguration()); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, config); Assert.Equal(manager.GetService <ILoggerFactory>(), _loggerFactory.Object); Assert.Equal(manager.GetService <IPayloads>(), _payloadsApi.Object); }
public void NextAssociationNumber_ShallResetToZero() { var config = Options.Create <DicomAdapterConfiguration>(new DicomAdapterConfiguration()); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, config); for (uint i = 1; i < 10; i++) { Assert.Equal(i, manager.NextAssociationNumber()); } }
public void GetService_ShallReturnRequestedServicec() { var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, _claraAeChangedNotificationService.Object, _connfiguration, _storageInfoProvider.Object); Assert.Equal(manager.GetService <ILoggerFactory>(), _loggerFactory.Object); Assert.Equal(manager.GetService <IJobRepository>(), _jobStore.Object); }
public void NextAssociationNumber_ShallResetToZero() { var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, _claraAeChangedNotificationService.Object, _connfiguration, _storageInfoProvider.Object); for (uint i = 1; i < 10; i++) { Assert.Equal(i, manager.NextAssociationNumber()); } }
public void HandleCStoreRequest_ShallThrowIfAENotConfigured() { var config = Options.Create <DicomAdapterConfiguration>(new DicomAdapterConfiguration()); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, config); var request = GenerateRequest(); var exception = Assert.Throws <ArgumentException>(() => { manager.HandleCStoreRequest(request, "BADAET"); }); Assert.Equal("Called AE Title 'BADAET' is not configured", exception.Message); }
public void IsAeTitleConfigured() { var aet = "TESTAET"; var config = Options.Create <DicomAdapterConfiguration>(new DicomAdapterConfiguration()); config.Value.ReadAeTitlesFromCrd = false; config.Value.Dicom.Scp.AeTitles.Add(new ClaraApplicationEntity { AeTitle = aet, Processor = "Nvidia.Clara.DicomAdapter.Test.Unit.MockJobProcessor, Nvidia.Clara.Dicom.Test.Unit" }); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, config); Assert.True(manager.IsAeTitleConfigured(aet)); Assert.False(manager.IsAeTitleConfigured("BAD")); }
public static async Task <IList <SelectListItem> > GetCarsByIdAsync(string userId) { IList <Car> cars = await ApplicationEntityManager.GetCarsByUserIdAsync(userId); IList <SelectListItem> selectListOfCars = new List <SelectListItem>(); foreach (var car in cars) { SelectListItem carItem = new SelectListItem { Value = car.Id.ToString(), Text = car.Model + " " + car.YearOfManufacture }; selectListOfCars.Add(carItem); } return(selectListOfCars); }
public void HandleCStoreRequest_ShallThrowIfAENotConfigured() { _storageInfoProvider.Setup(p => p.HasSpaceAvailableToStore).Returns(true); _storageInfoProvider.Setup(p => p.AvailableFreeSpace).Returns(100); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, _claraAeChangedNotificationService.Object, _connfiguration, _storageInfoProvider.Object); var request = GenerateRequest(); var exception = Assert.Throws <ArgumentException>(() => { manager.HandleCStoreRequest(request, "BADAET", 1); }); Assert.Equal("Called AE Title 'BADAET' is not configured", exception.Message); _storageInfoProvider.Verify(p => p.HasSpaceAvailableToStore, Times.Never()); _storageInfoProvider.Verify(p => p.AvailableFreeSpace, Times.Never()); }
public void HandleCStoreRequest_ThrowWhenOnLowStorageSpace() { _storageInfoProvider.Setup(p => p.HasSpaceAvailableToStore).Returns(false); _storageInfoProvider.Setup(p => p.AvailableFreeSpace).Returns(100); var aet = "TESTAET"; var data = new List <ClaraApplicationEntity>() { new ClaraApplicationEntity() { AeTitle = aet, Name = aet, Processor = typeof(MockJobProcessor).AssemblyQualifiedName } }; _claraApplicationEntityRepository.Setup(p => p.AsQueryable()).Returns(data.AsQueryable()); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, _claraAeChangedNotificationService.Object, _connfiguration, _storageInfoProvider.Object); var request = GenerateRequest(); Assert.Throws <InsufficientStorageAvailableException>(() => { manager.HandleCStoreRequest(request, aet, 2); }); _logger.VerifyLogging($"{aet} added to AE Title Manager", LogLevel.Information, Times.Once()); _logger.VerifyLogging($"Patient ID: {request.Dataset.GetSingleValue<string>(DicomTag.PatientID)}", LogLevel.Information, Times.Never()); _logger.VerifyLogging($"Study Instance UID: {request.Dataset.GetSingleValue<string>(DicomTag.StudyInstanceUID)}", LogLevel.Information, Times.Never()); _logger.VerifyLogging($"Series Instance UID: {request.Dataset.GetSingleValue<string>(DicomTag.SeriesInstanceUID)}", LogLevel.Information, Times.Never()); _logger.VerifyLoggingMessageBeginsWith($"Storage File Path:", LogLevel.Information, Times.Never()); _logger.VerifyLoggingMessageBeginsWith($"Instance saved with handler", LogLevel.Debug, Times.Never()); _claraApplicationEntityRepository.Verify(p => p.AsQueryable(), Times.Once()); _storageInfoProvider.Verify(p => p.HasSpaceAvailableToStore, Times.AtLeastOnce()); _storageInfoProvider.Verify(p => p.AvailableFreeSpace, Times.AtLeastOnce()); }
private static async Task <int?> ServiceExistsAsync(int carId) { bool carHasService = ApplicationEntityManager.CarHasService(carId); if (carHasService) { IList <Service> services = await ApplicationEntityManager.GetServicesByCarIdAsync(carId); foreach (var service in services) { foreach (var work in service.Works) { if (!work.State.Name.Equals("Finished") && !work.State.Name.Equals("FinishedAndPaid")) { return(service.Id); } } } } return(null); }
public void IsAeTitleConfigured() { var aet = "TESTAET"; var data = new List <ClaraApplicationEntity>() { new ClaraApplicationEntity() { AeTitle = aet, Name = aet, Processor = typeof(MockJobProcessor).AssemblyQualifiedName } }; _claraApplicationEntityRepository.Setup(p => p.AsQueryable()).Returns(data.AsQueryable()); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, _claraAeChangedNotificationService.Object, _connfiguration, _storageInfoProvider.Object); Assert.True(manager.IsAeTitleConfigured(aet)); Assert.False(manager.IsAeTitleConfigured("BAD")); }
public void HandleCStoreRequest_ShallSaveInstanceThroughAEHandler() { var aet = "TESTAET"; var config = Options.Create <DicomAdapterConfiguration>(new DicomAdapterConfiguration()); config.Value.ReadAeTitlesFromCrd = false; config.Value.Dicom.Scp.AeTitles.Add(new ClaraApplicationEntity { AeTitle = aet, Processor = "Nvidia.Clara.DicomAdapter.Test.Unit.MockJobProcessor, Nvidia.Clara.Dicom.Test.Unit" }); var manager = new ApplicationEntityManager(_hostApplicationLifetime.Object, _serviceScopeFactory.Object, config); var request = GenerateRequest(); manager.HandleCStoreRequest(request, aet); _logger.VerifyLogging($"{aet} added to AE Title Manager", LogLevel.Information, Times.Once()); _logger.VerifyLogging($"Patient ID: {request.Dataset.GetSingleValue<string>(DicomTag.PatientID)}", LogLevel.Information, Times.Once()); _logger.VerifyLogging($"Study Instance UID: {request.Dataset.GetSingleValue<string>(DicomTag.StudyInstanceUID)}", LogLevel.Information, Times.Once()); _logger.VerifyLogging($"Series Instance UID: {request.Dataset.GetSingleValue<string>(DicomTag.SeriesInstanceUID)}", LogLevel.Information, Times.Once()); _logger.VerifyLoggingMessageBeginsWith($"Storage File Path:", LogLevel.Information, Times.Once()); _logger.VerifyLogging($"Instance saved with handler", LogLevel.Debug, Times.Once()); }
public CompanyLogic(CarServiceDbContext carServiceDbContext) { _applicationEntityManager = new ApplicationEntityManager(carServiceDbContext); }
public static async Task <Work> MakeAppointmentAsync(DateTime appointment, int carId, SubTask subTask, string description) { subTask = await ApplicationEntityManager.GetSubTaskByIdAsync(subTask.Id); IList <WorkerUser> workerUsers = await ApplicationEntityManager.GetWorkerUsersByCompanyIdAsync(subTask.CompanyUserId); workerUsers.Shuffle(); WorkerUser workerForTheJob = WorkerHandler.GetWorkerForTheJob(workerUsers, appointment, appointment.AddMinutes(subTask.EstimtedTime)); int?openServiceId = await ServiceExistsAsync(carId); Car car = await ApplicationEntityManager.GetCarByIdAsync(carId); Service service; if (!openServiceId.HasValue) { service = new Service { StartingTime = appointment, EndTime = appointment.AddMinutes(subTask.EstimtedTime), TotalPrice = subTask.EstimatedPrice, CarId = carId }; await ApplicationEntityManager.SaveServiceAsync(service); } else { service = await ApplicationEntityManager.GetServcieByIdAsync(openServiceId.Value); if (service.Works.ElementAt(0).SubTask.CompanyUserId == subTask.CompanyUserId) { service.TotalPrice = 0; foreach (var w in service.Works) { service.TotalPrice += w.Price; } service.TotalPrice += subTask.EstimatedPrice; if (appointment < service.StartingTime) { service.StartingTime = appointment; } if (appointment.AddMinutes(subTask.EstimtedTime) > service.EndTime) { service.EndTime = appointment.AddMinutes(subTask.EstimtedTime); } ApplicationEntityManager.ModifyService(service); } else { service = new Service { StartingTime = appointment, EndTime = appointment.AddMinutes(subTask.EstimtedTime), TotalPrice = subTask.EstimatedPrice, CarId = carId }; await ApplicationEntityManager.SaveServiceAsync(service); } } Work work = new Work { StartingTime = appointment, EndTime = appointment.AddMinutes(subTask.EstimtedTime), Price = subTask.EstimatedPrice, SubTaskId = subTask.Id, ServiceId = service.Id, StateId = 2, WorkerUserId = workerForTheJob.Id }; await ApplicationEntityManager.SaveWorkAsync(work); Message message = new Message { SenderId = car.ClientUserId, Text = description, WorkId = work.Id, Time = DateTime.Now }; await ApplicationEntityManager.SaveMessageAsync(message); return(work); }
public AppointmentLogic(CarServiceDbContext context) { _applicationEntityManager = new ApplicationEntityManager(context); }
public EmailLogic(CarServiceDbContext carServiceDbContext, IEmailSender emailSender) { _applicationEntityManager = new ApplicationEntityManager(carServiceDbContext); _emailSender = emailSender; }
public static async Task SaveMessageAsync(Message message) { await ApplicationEntityManager.SaveMessageAsync(message); }
public static async Task <IList <Work> > GetWorksByServiceIdAsync(int serviceId) { return(await ApplicationEntityManager.GetWorksByServiceIdAsync(serviceId)); }
public static async Task <IList <Service> > GetMyServicesAsync(string id) { return(await ApplicationEntityManager.GetServiceByUserIdAsync(id)); }
public static async Task <Work> GetWorkByIdAsync(int?id) { return(await ApplicationEntityManager.GetWorkByIdAsync(id.Value)); }
public WorkSheetLogic(CarServiceDbContext context) { _applicationEntityManager = new ApplicationEntityManager(context); }
public static async Task <SubTask> GetSubTaskByIdAsync(int id) { return(await ApplicationEntityManager.GetSubTaskByIdAsync(id)); }
public static async Task <IList <Work> > GetRemainingWorksByWorkerIdAsync(string workerId) { return(await ApplicationEntityManager.GetRemainingWorksByWorkerIdAsync(workerId)); }
public static async Task <IList <Service> > GetServicesByCompanyIdAsync(CompanyUser user) { return(await ApplicationEntityManager.GetServicesByCompanyIdAsync(user)); }
public static async Task ModifyWorkAsync(Work work) { await ApplicationEntityManager.ModifyWorkAsync(work); }
public static async Task <Service> GetServiceByIdAsync(int id) { return(await ApplicationEntityManager.GetServiceByIdAsync(id)); }