public async Task GrantAccessToApprovers()
            {
                // Arrange
                var cost = MockCost();

                var techApprover = new ApprovalMember
                {
                    Id       = Guid.NewGuid(),
                    MemberId = Guid.NewGuid(),
                    CostUser = new CostUser
                    {
                        FullName = "Test"
                    }
                };
                var approvals = new List <Approval>
                {
                    new Approval
                    {
                        Type            = ApprovalType.IPM,
                        ApprovalMembers = new List <ApprovalMember>
                        {
                            techApprover
                        }
                    }
                };

                EFContext.Approval.AddRange(approvals);
                EFContext.SaveChanges();

                // Act
                await ApprovalService.SubmitApprovals(cost, CostUser, approvals, BuType.Pg);

                // Assert
                PermissionServiceMock.Verify(p => p.GrantApproverAccess(CostUser.Id, cost.Id, It.IsAny <IEnumerable <CostUser> >(), It.IsAny <BuType>()));
            }
        public void GetAllItemsForApproval_ReturnsCorrectAmountOfItems()
        {
            // Arrange
            var context     = this.ServiceProvider.GetRequiredService <WmipDbContext>();
            var pendingSong = new Song {
                ApprovalStatus = ApprovalStatus.Pending
            };
            var approvedSong = new Song {
                ApprovalStatus = ApprovalStatus.Approved
            };
            var rejectedSong = new Song {
                ApprovalStatus = ApprovalStatus.Rejected
            };
            var pendingAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Pending
            };
            var approvedAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Approved
            };
            var rejectedAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Rejected
            };

            context.Songs.AddRange(pendingSong, approvedSong, rejectedSong);
            context.Albums.AddRange(pendingAlbum, approvedAlbum, rejectedAlbum);
            context.SaveChanges();
            var approvalService = new ApprovalService(context);

            // Act
            var result = approvalService.GetAllItemsForApproval();

            // Assert
            Assert.Equal(2, result.Count());
        }
        async Task ExecuteLoadItemsCommand()
        {
            IsBusy = true;
            await Task.Delay(1000);

            try
            {
                var items = await ApprovalService.GetPersetujuan();

                Items.Clear();
                foreach (var item in items)
                {
                    Items.Add(item);
                }

                if (Items.Count <= 0)
                {
                    NotFound = true;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
        public ActionResult DetailPartial(int Id = 0)
        {
            ApprovalModel approvalModel;

            approvalService = new ApprovalService();

            if (Id == 0)
            {
                approvalModel           = approvalService.GetNewModel();
                approvalModel._FormMode = FormModeEnum.New;
            }
            else
            {
                approvalModel = approvalService.GetById(Id);
                if (approvalModel != null)
                {
                    approvalModel._FormMode = FormModeEnum.Edit;
                }
                else
                {
                    throw new Exception("[VALIDATION]-Data not exists");
                }
            }

            return(PartialView(VIEW_FORM_PARTIAL, approvalModel));
        }
            public void ThrowException_WhenExternalPurchaseAndNoRequisitionersInApproval()
            {
                // Arrange
                var cost = MockCost();

                cost.IsExternalPurchases = true;
                EFContext.SaveChanges();

                var approvals = new List <Approval>
                {
                    new Approval
                    {
                        Type            = ApprovalType.IPM,
                        ApprovalMembers = new List <ApprovalMember> {
                            new ApprovalMember()
                        }
                    },
                    new Approval
                    {
                        Type            = ApprovalType.Brand,
                        ApprovalMembers = new List <ApprovalMember> {
                            new ApprovalMember()
                        },
                        Requisitioners = new List <Requisitioner>()
                    }
                };

                // Act
                // Assert
                ApprovalService.Awaiting(a => a.SubmitApprovals(cost, CostUser, approvals, BuType.Pg)).ShouldThrow <Exception>();
            }
Пример #6
0
        public MyApprovalsController(IMapper mapper)
        {
            _db      = new MyDb();
            _mapper  = mapper;
            _service = new ApprovalService(mapper);

            var user = User;
        }
            public void ThrowException_WhenApprovalsCollectionIsNull()
            {
                // Arrange
                var cost = MockCost();

                // Act
                // Assert
                ApprovalService.Awaiting(a => a.SubmitApprovals(cost, CostUser, null, BuType.Pg)).ShouldThrow <ArgumentNullException>();
            }
            public void ThrowException_WhenCountOfApprovalsIsMoreThenTwo()
            {
                // Arrange
                var cost     = MockCost();
                var approvas = new bool[3].Select(i => new Approval()).ToList();

                // Act
                // Assert
                ApprovalService.Awaiting(a => a.SubmitApprovals(cost, CostUser, approvas, BuType.Pg)).ShouldThrow <InvalidOperationException>();
            }
            public void Setup()
            {
                EFContext = EFContextFactory.CreateInMemoryEFContext();
                _costStatusServiceMock       = new Mock <ICostStatusService>();
                PermissionServiceMock        = new Mock <ICostStageRevisionPermissionService>();
                LoggerMock                   = new Mock <ILogger>();
                _eventServiceMock            = new Mock <IEventService>();
                _policyExceptionsServiceMock = new Mock <IPolicyExceptionsService>();
                _activityLogServiceMock      = new Mock <IActivityLogService>();

                User = new UserIdentity
                {
                    Email    = "*****@*****.**",
                    AgencyId = Guid.NewGuid(),
                    Id       = Guid.NewGuid()
                };
                CostUser = new CostUser
                {
                    Id       = User.Id,
                    Email    = User.Email,
                    ParentId = User.AgencyId
                };

                var brandUser = new UserIdentity
                {
                    Email    = "*****@*****.**",
                    AgencyId = Guid.NewGuid(),
                    Id       = Guid.NewGuid()
                };
                var brandCostUser = new CostUser
                {
                    Id       = brandUser.Id,
                    Email    = brandUser.Email,
                    ParentId = brandUser.AgencyId
                };

                EFContext.CostUser.AddRange(CostUser, brandCostUser);
                EFContext.SaveChanges();

                var pgPaymentService = new Mock <IPaymentService>();

                pgPaymentService.Setup(x => x.CalculatePaymentAmount(It.IsAny <Guid>(), It.IsAny <bool>())).ReturnsAsync((PaymentAmountResult)null);

                ApprovalService = new ApprovalService(
                    EFContext,
                    _costStatusServiceMock.Object,
                    PermissionServiceMock.Object,
                    LoggerMock.Object,
                    _eventServiceMock.Object,
                    _policyExceptionsServiceMock.Object,
                    _activityLogServiceMock.Object
                    );
            }
            public async Task ThrowException_WhenNoApprovalsShouldLogWarning()
            {
                // Arrange
                var cost     = MockCost();
                var approvas = new List <Approval>();

                // Act
                await ApprovalService.SubmitApprovals(cost, CostUser, approvas, BuType.Pg);

                // Assert
                LoggerMock.Verify(l => l.Warning(It.IsAny <string>()), Times.Once);
            }
        public ActionResult Delete(int Id = 0)
        {
            approvalService = new ApprovalService();

            if (Id != 0)
            {
                approvalService = new ApprovalService();
                approvalService.DeleteById(Id);
            }

            ApprovalModel approvalModel = new ApprovalModel();

            return(PartialView(VIEW_FORM_PARTIAL, approvalModel));
        }
            public async Task SetStatusToApprove()
            {
                // Arrange
                const ApprovalType approvalType = ApprovalType.IPM;
                var approverRoleId = Guid.NewGuid();

                var cost = MockCost();

                var approval = new Approval
                {
                    CostStageRevisionId = cost.LatestCostStageRevision.Id,
                    Type            = approvalType,
                    ApprovalMembers = new List <ApprovalMember>
                    {
                        new ApprovalMember
                        {
                            MemberId = User.Id
                        }
                    }
                };

                foreach (var member in approval.ApprovalMembers)
                {
                    member.Approval = approval;
                }
                cost.LatestCostStageRevision.Approvals = new List <Approval> {
                    approval
                };

                EFContext.Approval.Add(approval);
                EFContext.UserUserGroup.Add(new UserUserGroup {
                    UserId = User.Id
                });
                EFContext.Role.Add(new Role
                {
                    Id   = approverRoleId,
                    Name = Roles.CostApprover
                });
                EFContext.SaveChanges();

                cost.Status = CostStageRevisionStatus.Approved;

                // Act
                var response = await ApprovalService.Approve(cost.Id, User, BuType.Pg);

                // Assert
                response.Should().NotBeNull();
                response.Success.Should().BeTrue();
            }
            public void ThrowException_WhenNoApproversInApproval()
            {
                // Arrange
                var cost      = MockCost();
                var approvals = new List <Approval>
                {
                    new Approval
                    {
                        Type            = ApprovalType.IPM,
                        ApprovalMembers = new List <ApprovalMember>()
                    }
                };

                // Act
                // Assert
                ApprovalService.Awaiting(a => a.SubmitApprovals(cost, CostUser, approvals, BuType.Pg)).ShouldThrow <Exception>();
            }
Пример #14
0
 private async void RejectAction(PengajuanItem obj)
 {
     if (IsBusy)
     {
         return;
     }
     try
     {
         object result = null;
         if (await Account.UserInRole(UserType.Gate))
         {
             result = await GateService.Reject(Model.Id, Items.SelectMany(x => x.Items).ToList());
         }
         else
         {
             result = await ApprovalService.Reject(Model.Id, Items.SelectMany(x => x.Items).ToList());
         }
         if (result != null)
         {
             MessagingCenter.Send(new MessagingCenterAlert
             {
                 Title   = "Info",
                 Message = "Berhasil !",
                 Cancel  = "OK"
             }, "message");
             IsBusy = false;
             MessagingCenter.Send(Model, "approve");
             await Shell.Current.GoToAsync($"//Home");
         }
         else
         {
             throw new SystemException("Gagal... !, Periksa Kembali Data Anda");
         }
     }
     catch (Exception ex)
     {
         MessagingCenter.Send(new MessagingCenterAlert
         {
             Title   = "Error",
             Message = ex.Message,
             Cancel  = "OK"
         }, "message");
         IsBusy = false;
     }
 }
        public void ChangeApprovalStatus_ChangesToCorrectStatusForCorrectItem()
        {
            // Arrange
            var context = this.ServiceProvider.GetRequiredService <WmipDbContext>();
            var user1   = new User()
            {
                Id = "1"
            };
            var user2 = new User()
            {
                Id = "2"
            };
            var pendingSong = new Song {
                ApprovalStatus = ApprovalStatus.Pending, ArtistId = user1.Id
            };
            var approvedSong = new Song {
                ApprovalStatus = ApprovalStatus.Approved, ArtistId = user1.Id
            };
            var rejectedSong = new Song {
                ApprovalStatus = ApprovalStatus.Rejected, ArtistId = user2.Id
            };
            var pendingAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Pending, ArtistId = user2.Id
            };
            var approvedAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Approved, ArtistId = user1.Id
            };
            var rejectedAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Rejected, ArtistId = user1.Id
            };

            context.Songs.AddRange(pendingSong, approvedSong, rejectedSong);
            context.Albums.AddRange(pendingAlbum, approvedAlbum, rejectedAlbum);
            context.SaveChanges();
            var approvalService = new ApprovalService(context);

            // Act
            approvalService.ChangeApprovalStatus(pendingSong.Id, ActionItemType.Song, ApprovalStatus.Approved);
            approvalService.ChangeApprovalStatus(pendingAlbum.Id, ActionItemType.Album, ApprovalStatus.Rejected);

            // Assert
            Assert.Equal(ApprovalStatus.Approved, pendingSong.ApprovalStatus);
            Assert.Equal(ApprovalStatus.Rejected, pendingAlbum.ApprovalStatus);
        }
        public void GetUsersApprovalRequests_GetCorrectItems()
        {
            // Arrange
            var context = this.ServiceProvider.GetRequiredService <WmipDbContext>();
            var user1   = new User()
            {
                Id = "1"
            };
            var user2 = new User()
            {
                Id = "2"
            };
            var pendingSong = new Song {
                ApprovalStatus = ApprovalStatus.Pending, ArtistId = user1.Id
            };
            var approvedSong = new Song {
                ApprovalStatus = ApprovalStatus.Approved, ArtistId = user1.Id
            };
            var rejectedSong = new Song {
                ApprovalStatus = ApprovalStatus.Rejected, ArtistId = user2.Id
            };
            var pendingAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Pending, ArtistId = user2.Id
            };
            var approvedAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Approved, ArtistId = user1.Id
            };
            var rejectedAlbum = new Album {
                ApprovalStatus = ApprovalStatus.Rejected, ArtistId = user1.Id
            };

            context.Songs.AddRange(pendingSong, approvedSong, rejectedSong);
            context.Albums.AddRange(pendingAlbum, approvedAlbum, rejectedAlbum);
            context.SaveChanges();
            var approvalService = new ApprovalService(context);

            // Act
            var results = approvalService.GetUsersApprovalRequests(user1.Id);

            // Assert
            Assert.Equal(4, results.Count());
            Assert.True(results.All(r => r.ArtistId == user1.Id));
        }
Пример #17
0
        private async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }
            await Task.Delay(1000);

            try
            {
                IsBusy = true;
                Items.Clear();
                List <HasilPemeriksaan> items = null;
                if (await Account.UserInRole(UserType.Gate))
                {
                    items = Model.HasilPemeriksaan;
                }
                else
                {
                    items = await ApprovalService.GetPenilaian(Model.Id);
                }
                if (items != null && items.Count > 0)
                {
                    var groups = items.Where(x => x.ItemPemeriksaan.JenisPemeriksaan == JenisPemeriksaan.Kelengkapan).GroupBy(x => x.ItemPemeriksaan.Pemeriksaan.Id);
                    foreach (var group in groups)
                    {
                        var data = group.FirstOrDefault();
                        Items.Add(new GroupPemeriksaan {
                            Name = data.ItemPemeriksaan.Kelengkapan, PemeriksaanId = group.Key, Items = group.ToList()
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
        public ActionResult NavLast()
        {
            ApprovalModel approvalModel;

            approvalService = new ApprovalService();

            approvalModel = approvalService.NavLast();
            if (approvalModel != null)
            {
                approvalModel._FormMode = FormModeEnum.Edit;
            }

            if (approvalModel == null)
            {
                //approvalModel = approvalService.GetNewModel();
                throw new Exception("[VALIDATION]-Data not exists");
            }

            return(PartialView(VIEW_FORM_PARTIAL, approvalModel));
        }
Пример #19
0
        private void UpdateApprovalsFromServer()
        {
            ApprovalService.GetAll((enumerable, response) =>
            {
                if (response.HasErrors)
                {
                    return;
                }

                if (enumerable == null)
                {
                    return;
                }

                ThreadHelper.ExecuteOnUI(() =>
                {
                    AllApprovals = new ObservableCollection <Approval>(enumerable.OrderBy(model => model.Description).ToList());
                    UpdateApprovals();
                });
            });
        }
        public ActionResult Update([ModelBinder(typeof(DevExpressEditorsBinder))]  ApprovalModel approvalModel)
        {
            approvalModel._UserId = (int)Session["userId"];

            approvalService         = new ApprovalService();
            approvalModel._FormMode = FormModeEnum.Edit;



            if (ModelState.IsValid)
            {
                approvalService.Update(approvalModel);
                approvalModel = approvalService.GetById(approvalModel.Id);
            }
            else
            {
                string message = GetErrorModel();

                throw new Exception(string.Format("[VALIDATION] {0}", message));
            }

            return(PartialView(VIEW_FORM_PARTIAL, approvalModel));
        }
            public async Task CallRejectOnApprovalServiceForLatestRevision()
            {
                // Arrange
                const ApprovalType approvalType = ApprovalType.IPM;
                var participantId  = Guid.NewGuid();
                var approverRoleId = Guid.NewGuid();

                var cost = MockCost();

                var approval = new Approval
                {
                    CostStageRevisionId = cost.LatestCostStageRevision.Id,
                    Type            = approvalType,
                    ApprovalMembers = new List <ApprovalMember>
                    {
                        new ApprovalMember
                        {
                            MemberId = User.Id
                        }
                    }
                };

                foreach (var member in approval.ApprovalMembers)
                {
                    member.Approval = approval;
                }
                cost.LatestCostStageRevision.Approvals = new List <Approval> {
                    approval
                };

                EFContext.Approval.Add(approval);
                EFContext.UserUserGroup.Add(new UserUserGroup
                {
                    UserId    = participantId,
                    Id        = Guid.NewGuid(),
                    UserGroup = new UserGroup
                    {
                        ObjectId = cost.Id,
                        Id       = Guid.NewGuid(),
                        RoleId   = approverRoleId,
                    }
                });
                EFContext.Role.Add(new Role
                {
                    Id   = approverRoleId,
                    Name = Roles.CostApprover
                });
                EFContext.SaveChanges();

                cost.Status = CostStageRevisionStatus.Approved;

                // Act
                var response = await ApprovalService.Reject(cost.Id, User, BuType.Pg, null);

                // Assert
                response.Should().NotBeNull();
                response.Success.Should().BeTrue();
                PermissionServiceMock.Verify(p =>
                                             p.RevokeApproverAccess(cost.OwnerId, cost.Id, It.IsAny <IEnumerable <CostUser> >()),
                                             Times.Once);

                PermissionServiceMock.Verify(p =>
                                             p.GrantCostPermission(cost.Id, Roles.CostViewer, It.IsAny <IEnumerable <CostUser> >(), BuType.Pg, It.IsAny <Guid?>(), true),
                                             Times.Once);
            }
Пример #22
0
        // public PatientDTO a;
        // public DoctorDTO b;
        // public SecretaryDTO c;

        public App()
        {
            // HCI

            medicalRoles = new List <string> {
                "Svi", "Opšte Prakse", "Hirurg", "Dermatolog", "Očni lekar", "Stomatolog"
            };
            roomTypes = new List <string> {
                "Bolnička Soba", "Operaciona Sala", "Soba za preglede"
            };
            medicalAppointmentTypes = new List <string> {
                "Pregled", "Operacija", "Ležanje"
            };
            AddressDTO address = new AddressDTO("1", "Bulevar despota Stefan 7A", "Novi Sad", "Srbija", "21000");

            director     = new DirectorDTO(address, "Dusan", "Urosevic", "1231231231231", "021021", "Male", new DateTime(1990, 5, 5), 123, new TimeInterval(new DateTime(2020, 12, 12), new DateTime(2020, 12, 12)), new TimeInterval(new DateTime(2020, 12, 12), new DateTime(2020, 12, 12)), "[email protected]", "pass", "Klinicki Centar Vojvodina");
            SelectedDate = DateTime.Now;


            // Converters
            var addressConverter           = new AddressConverter();
            var patientConverter           = new PatientConverter(addressConverter);
            var medicineConverter          = new MedicineConverter();
            var questionConverter          = new QuestionConverter(patientConverter);
            var prescriptionConverter      = new PrescriptionConverter(patientConverter, medicineConverter);
            var medicalConsumableConverter = new MedicalConsumableConverter();
            var roomConverter                = new RoomConverter();
            var equipmentConverter           = new EquipmentConverter(roomConverter);
            var guestConverter               = new GuestConverter(addressConverter);
            var hospitalConverter            = new HospitalConverter();
            var doctorConverter              = new DoctorConverter(addressConverter);
            var medicalAppointmentConverter  = new MedicalAppointmentConverter(roomConverter, guestConverter, doctorConverter);
            var renovationConverter          = new RenovationConverter(roomConverter);
            var feedbackConverter            = new FeedbackConverter();
            var reviewConverter              = new ReviewConverter(doctorConverter);
            var anamnesisConvertor           = new AnamnesisConvertor();
            var secretaryConverter           = new SecretaryConverter(questionConverter, addressConverter);
            var inventoryManagementConverter = new InventoryManagementConverter(equipmentConverter, roomConverter);
            var orderConverter               = new OrderConverter(medicalConsumableConverter, medicineConverter, equipmentConverter);
            var reportConverter              = new ReportConverter();
            var approvalConverter            = new ApprovalConverter(doctorConverter);
            var propositionConverter         = new PropositionConverter(medicineConverter, approvalConverter, doctorConverter);


            var referralConverter = new ReferralConverter(medicalAppointmentConverter);


            // Repositories
            // Many to Many
            var medicalAppointmentToDoctorRepository = new MedicalAppointmentToDoctorRepository(
                new CSVStream <MedicalAppointmentToDoctor>(
                    MEDICAL_APPOINTMENT_TO_DOCTOR_FILEPATH,
                    new MedicalAppointmentToDoctorCSVConverter(DELIMITER)),
                new LongSequencer()
                );
            var inventoryManagementToEquipmentRepository = new InventoryManagementToEquipmentRepository(
                new CSVStream <InventoryManagementToEquipment>(
                    INVENTORY_EQUIPMENT_FILEPATH,
                    new InventoryManagementToEquipmentCSVConverter(DELIMITER)),
                new LongSequencer()
                );

            var addressRepository = new AddressRepository(new CSVStream <Address>(ADDRESS_FILEPATH, new AddressCSVConverter(DELIMITER)), new LongSequencer());
            var patientRepository = new PatientRepository(
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                addressRepository, new LongSequencer());
            var doctorRepository = new DoctorRepository(
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                addressRepository,
                new LongSequencer());
            var secretaryRepository = new SecretaryRepository(
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Patient>(PATIENT_FILEPATH, new PatientCSVConverter(DELIMITER, DATETIME_FORMAT)),
                new CSVStream <Doctor>(DOCTOR_FILEPATH, new DoctorCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                new CSVStream <Secretary>(SECRETARY_FILEPATH, new SecretaryCSVConverter(DELIMITER, DATETIME_FORMAT, TIME_FORMAT)),
                addressRepository,
                new LongSequencer());


            var inventoryManagementRepository = new InventoryManagementRepository(new CSVStream <InventoryManagement>(INVENTORY_FILEPATH, new InventoryManagementCSVConverter(DELIMITER, DATETIME_FORMAT)), inventoryManagementToEquipmentRepository, new LongSequencer());
            var orderDetailsRepository        = new OrderDetailsRepository(new CSVStream <OrderDetails>(ORDER_DETAILS_FILEPATH, new OrderDetailsCSVConverter(DELIMITER)), new LongSequencer());
            var questionRepository            = new QuestionRepository(new CSVStream <Question>(QUESTION_FILEPATH, new QuestionCSVConverter(DELIMITER, DATETIME_FORMAT)), new LongSequencer());


            var medicalConsumableRepository = new MedicalConsumableRepository(
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new LongSequencer());

            var equipmentRepository = new EquipmentRepository(
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new LongSequencer());
            var medicineRepository = new MedicineRepository(
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new CSVStream <Equipment>(EQUIPMENT_FILEPATH, new EquipmentCSVConverter(DELIMITER)),
                new CSVStream <MedicalConsumables>(MEDICAL_CONSUMABLE_FILEPATH, new MedicalConsumableCSVConverter(DELIMITER)),
                new CSVStream <Medicine>(MEDICINE_FILEPATH, new MedicineCSVConverter(DELIMITER)),
                new LongSequencer());

            var prescriptionRepository = new PrescriptionRepository(new CSVStream <Prescription>(PRESCRIPTION_FILEPATH, new PrescriptionCSVConverter(DELIMITER, DATETIME_FORMAT)), medicineRepository, patientRepository, new LongSequencer());


            var medicalAppointmentRepository = new MedicalAppointmentRepository(
                new CSVStream <MedicalAppointment>(MEDICAL_APPOINTMENT_FILEPATH,
                                                   new MedicalAppointmentCSVConverter(DELIMITER, DATETIME_DETAIL_FORMAT)),
                medicalAppointmentToDoctorRepository,
                patientRepository,
                doctorRepository,
                new LongSequencer());
            var roomRepository = new RoomRepository(new CSVStream <Room>(ROOM_FILEPATH, new RoomCSVConverter(DELIMITER)), new LongSequencer(), equipmentRepository);

            var orderRepository = new OrderRepository(new CSVStream <Order>(ORDER_FILEPATH, new OrderCSVConverter(DELIMITER, DATETIME_FORMAT)), medicineRepository, equipmentRepository, medicalConsumableRepository, orderDetailsRepository, new LongSequencer());

            var renovationRepository  = new RenovationRepository(new CSVStream <Renovation>(RENOVATION_FILEPATH, new RenovationCSVConverter(DELIMITER, DATETIME_FORMAT)), new LongSequencer());
            var feedbackRepository    = new FeedbackRepository(new CSVStream <Feedback>(FEEDBACK_FILEPATH, new FeedbackCSVConverter(DELIMITER)), new LongSequencer());
            var reviewRepository      = new ReviewRepository(new CSVStream <Review>(REVIEW_FILEPATH, new ReviewCSVConverter(DELIMITER)), new LongSequencer());
            var anamnesisRepository   = new AnamnesisRepository(new CSVStream <Anamnesis>(ANAMNESIS_FILEPATH, new AnamnesisCSVConverter(DELIMITER)), new LongSequencer());
            var propositionRepository = new PropositionRepository(new CSVStream <Proposition>(PROPOSITION_FILEPATH, new PropositionCSVConverter(DELIMITER, DATETIME_FORMAT)), new LongSequencer(), medicineRepository);

            // Referral
            var admitionReferralRepository = new AdmitionReferralRepository(
                new CSVStream <Referral>(ADMITION_REFERRAL_FILEPATH, new ReferralCSVConventer(DELIMITER, DATETIME_FORMAT)),
                new LongSequencer()
                );
            var operationReferralRepository = new OperationReferralRepository(
                new CSVStream <Referral>(OPERATION_REFERRAL_FILEPATH, new ReferralCSVConventer(DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());

            var examReferralRepository = new ExamReferralRepository(
                new CSVStream <Referral>(EXAM_REFERRAL_FILEPATH, new ReferralCSVConventer(DELIMITER, DATETIME_FORMAT)),
                new LongSequencer());

            var approvalRepository = new ApprovalRepository(new CSVStream <Approval>(APPROVAL_FILEPATH, new ApprovalCSVConverter(DELIMITER)), new LongSequencer());

            // Services

            var patientService            = new PatientService(patientRepository);
            var questionService           = new QuestionService(questionRepository);
            var addressService            = new AddressService(addressRepository);
            var medicineService           = new MedicineService(medicineRepository);
            var medicalConsumableService  = new MedicalConsumableService(medicalConsumableRepository);
            var prescriptionService       = new PrescriptionService(prescriptionRepository, medicineService, patientService);
            var reportService             = new ReportService();
            var guestService              = new GuestService(patientRepository);
            var equipmentService          = new EquipmentService(equipmentRepository);
            var doctorService             = new DoctorService(doctorRepository);
            var medicalAppointmentService = new MedicalAppointmentService(medicalAppointmentRepository, doctorService);
            var roomService                = new RoomService(roomRepository);
            var renovationService          = new RenovationService(renovationRepository, roomRepository);
            var feedbackService            = new FeedbackService(feedbackRepository);
            var reviewService              = new ReviewService(reviewRepository);
            var employeeService            = new EmployeeService(secretaryRepository, doctorRepository);
            var authenticationService      = new AuthenticationService(employeeService, patientService);
            var secretaryService           = new SecretaryService(secretaryRepository);
            var inventoryManagementService = new InventoryManagementService(inventoryManagementRepository);
            var orderService               = new OrderService(orderRepository);
            var anamnesisService           = new AnamnesisService(anamnesisRepository);
            var propositionService         = new PropositionService(propositionRepository);
            var approvalService            = new ApprovalService(approvalRepository);

            // Controllers
            PatientController           = new PatientController(patientService, patientConverter, guestConverter);
            GuestController             = new GuestController(guestService, guestConverter);
            AddressController           = new AddressController(addressService, addressConverter);
            MedicineController          = new MedicineController(medicineService, medicineConverter);
            QuestionController          = new QuestionController(questionService, questionConverter, patientConverter);
            MedicalConsumableController = new MedicalConsumableController(medicalConsumableService, medicalConsumableConverter);
            AuthenticationController    = new AuthenticationController();
            ReportController            = new ReportController(reportConverter);
            PrescriptionController      = new PrescriptionController(prescriptionService, prescriptionConverter);
            EquipmentController         = new EquipmentController(equipmentService, equipmentConverter);

            MedicalAppointmentController = new MedicalAppointmentController(
                medicalAppointmentService,
                medicalAppointmentConverter,
                doctorConverter,
                roomConverter
                );

            RoomController                = new RoomController(roomService, roomConverter);
            RenovationController          = new RenovationController(renovationService, renovationConverter);
            FeedbackController            = new FeedbackController(feedbackService, feedbackConverter);
            ReviewController              = new ReviewController(reviewService, reviewConverter);
            SecretaryController           = new SecretaryController(secretaryService, secretaryConverter);
            InventoryManagementController = new InventoryManagementController(inventoryManagementService, inventoryManagementConverter);
            OrderController               = new OrderController(orderService, orderConverter);
            DoctorController              = new DoctorController(doctorService, doctorConverter);
            AnamnesisController           = new AnamnesisController(anamnesisService, anamnesisConvertor);
            PropositionController         = new PropositionController(propositionService, propositionConverter);

            // Generators
            SecretaryAppointmentReportGenerator = new SecretaryAppointmentReportGenerator(REPORT_APPOINTMENT_FILEPATH);
            PatientAppointmentReportGenerator   = new PatientAppointmentReportGenerator(REPORT_APPOINTMENT_FILEPATH);
            PrescriptionReportGenerator         = new PrescriptionReportGenerator(REPORT_PRESCRIPTION_FILEPATH);
            DoctorsAppointmentReport            = new DirectorReportGenerator(REPORT_DOCTOR_APPOINTMENTS_FILEPATH, doctorRepository, medicalAppointmentRepository);
            MedicineReportGenerator             = new MedicineReportGenerator(REPORT_MEDICINE_FILEPATH, medicineRepository);


            Synchronise(RenovationController);
        }
Пример #23
0
 public IActionResult GetWorkflowHistory(string jobId)
 {
     // if(!string.IsNullOrEmpty(jobId))
     return(Ok(ApprovalService.GetApprovalHistory(jobId)));
     // return Ok();
 }
Пример #24
0
 public ApprovalsController(IMapper mapper)
 {
     _db      = MyDb.New();
     _mapper  = mapper;
     _service = new ApprovalService(_mapper);
 }
 public DepartmentApprovalsController(IMapper mapper)
 {
     _db      = new MyDb();
     _mapper  = mapper;
     _service = new ApprovalService(mapper);
 }