private void SetupContext()
        {
            var ovoNumber = new OvoNumber("OVO000015");

            _dataVlaanderenProviderMock = new Mock <IDataVlaanderenProvider>();
            _wegwijsProviderMock        = new Mock <IWegwijsProvider>();

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationAsync(ovoNumber))
            .ReturnsAsync(() => Optional <Organisation> .Empty);

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationNotFoundMessage())
            .Returns("data.vlaanderen: not found");

            _wegwijsProviderMock
            .Setup(provider => provider.GetOrganisationAsync(ovoNumber))
            .ThrowsAsync(new Exception());

            _wegwijsProviderMock
            .Setup(provider => provider.GetOrganisationFailedMessage())
            .Returns("wegwijs: failed");

            var sut = new OrganisationProvider(
                Mock.Of <ILogger <OrganisationProvider> >(),
                _dataVlaanderenProviderMock.Object,
                _wegwijsProviderMock.Object);

            _act = () => sut.GetOrganisationAsync(ovoNumber).GetAwaiter().GetResult();
        }
Ejemplo n.º 2
0
        private void SetupContext()
        {
            _ovoNumber = new OvoNumber("OVO000015");

            _dataVlaanderenProviderMock = new Mock <IDataVlaanderenProvider>();
            _wegwijsProviderMock        = new Mock <IWegwijsProvider>();

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationAsync(_ovoNumber))
            .ThrowsAsync(new Exception());

            _dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationFailedMessage())
            .Returns("error message");

            _wegwijsProviderMock
            .Setup(provider => provider.GetOrganisationAsync(_ovoNumber))
            .ReturnsAsync(() => new Optional <Organisation>(
                              new Organisation
            {
                Name       = new OrganisationName("Departement van verloren straten"),
                OvoNumber  = _ovoNumber,
                Provenance = OrganisationProvenance.FromWegwijsSearch("uri//12")
            }));

            _sut = new OrganisationProvider(
                Mock.Of <ILogger <OrganisationProvider> >(),
                _dataVlaanderenProviderMock.Object,
                _wegwijsProviderMock.Object);
        }
        private void SetupContext()
        {
            _ovoNumber = new OvoNumber("OVO000015");
            _datavlaanderenOrganisationName = new OrganisationName("Departement van verloren gebouwen");
            _provenanceUri = "uri//11";

            var dataVlaanderenProviderMock = new Mock <IDataVlaanderenProvider>();

            _wegwijsProviderMock = new Mock <IWegwijsProvider>();

            dataVlaanderenProviderMock
            .Setup(provider => provider.GetOrganisationAsync(_ovoNumber))
            .ReturnsAsync(() => new Optional <Organisation>(
                              new Organisation
            {
                Name       = _datavlaanderenOrganisationName,
                OvoNumber  = _ovoNumber,
                Provenance = OrganisationProvenance.FromDataVlaanderen(_provenanceUri)
            }));

            _sut = new OrganisationProvider(
                Mock.Of <ILogger <OrganisationProvider> >(),
                dataVlaanderenProviderMock.Object,
                _wegwijsProviderMock.Object);
        }
Ejemplo n.º 4
0
        private ProviderSummary Mapping(OrganisationProvider organisationProvider, string email, string providerCode)
        {
            if (organisationProvider != null)
            {
                var enrichment = _enrichmentService.GetProviderEnrichment(providerCode, email);

                return(new ProviderSummary()
                {
                    ProviderName = organisationProvider.Provider.ProviderName,
                    ProviderCode = organisationProvider.Provider.ProviderCode,
                    TotalCourses = organisationProvider.Provider.Courses.Select(c => c.CourseCode).Distinct()
                                   .Count(),
                    EnrichmentWorkflowStatus = enrichment?.Status
                });
            }

            return(null);
        }
Ejemplo n.º 5
0
 public IdentityController(
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     IEmailSender emailSender,
     ISmsSender smsSender,
     ILoggerFactory loggerFactory)
 {
     _userManager          = userManager;
     _signInManager        = signInManager;
     _emailSender          = emailSender;
     _smsSender            = smsSender;
     _logger               = loggerFactory.CreateLogger <IdentityController>();
     _dbContext            = new ApplicationDbContext();
     _addressProvider      = new AddressProvider();
     _emailProvider        = new EmailProvider();
     _authEmail            = new AuthEmail();
     _organisationProvider = new OrganisationProvider();
 }
Ejemplo n.º 6
0
        // POST: /Organisation/Dashboard
        public async Task <ActionResult> Dashboard(OrganisationMembershipActionViewModel model)
        {
            Organisation organisation = await db.Organisations.FindAsync(userContext.ItemId);

            if (organisation == null)
            {
                return(HttpNotFound());
            }

            if (ModelState.IsValid)
            {
                OrganisationProvider item =
                    organisation.OrganisationProviders.FirstOrDefault(x => x.ProviderId == model.Id);

                if (model.Action != "switchto" &&
                    !Permission.HasPermission(false, true,
                                              Permission.PermissionName.CanManageOrganisationProviderMembership))
                {
                    model.Action = "notpermitted";
                }

                switch (model.Action)
                {
                case "invite":

                    if (item != null)
                    {
                        ViewBag.Message = AppGlobal.Language.GetText(this, "AlreadyAssociated",
                                                                     "This provider is already associated with your organisation.");
                        break;
                    }

                    OrganisationProvider op = db.OrganisationProviders.Create();
                    op.OrganisationId = organisation.OrganisationId;
                    op.ProviderId     = model.Id;
                    op.IsAccepted     = false;
                    op.IsRejected     = false;
                    op.CanOrganisationEditProvider = false;
                    op.Reason = null;
                    organisation.OrganisationProviders.Add(op);

                    ProvisionUtilities.SendProviderMembershipEmail(
                        db,
                        Constants.EmailTemplates.ProviderInviteNotification,
                        model.Id,
                        userContext.ItemId.Value,
                        null);
                    ShowGenericSavedMessage();
                    break;

                case "remove":

                    ProvisionUtilities.SendProviderMembershipEmail(
                        db,
                        Constants.EmailTemplates.ProviderRemovedFromOrganisation,
                        model.Id,
                        userContext.ItemId.Value,
                        null);

                    db.OrganisationProviders.Remove(item);
                    ShowGenericSavedMessage();
                    break;

                case "withdraw":

                    ProvisionUtilities.SendProviderMembershipEmail(
                        db,
                        Constants.EmailTemplates.ProviderInviteWithdrawn,
                        model.Id,
                        userContext.ItemId.Value,
                        null);

                    db.OrganisationProviders.Remove(item);
                    ShowGenericSavedMessage();
                    break;

                case "switchto":

                    if (Permission.HasPermission(false, true, Permission.PermissionName.CanViewAdministratorHomePage))
                    {
                        new RecentProvisions(Permission.GetCurrentUserId()).Add("P" + model.Id, model.Name);
                    }

                    bool success = item != null &&
                                   item.CanOrganisationEditProvider &&
                                   UserContext.SetUserContext(db, UserContext.UserContextName.Provider, model.Id);
                    if (!success)
                    {
                        ViewBag.Message = AppGlobal.Language.GetText(this, "UnableToSwitch",
                                                                     "Unable to switch to the selected provider.");
                    }
                    else
                    {
                        return(RedirectToAction("Dashboard", "Provider"));
                    }
                    break;

                default:

                    ViewBag.Message = AppGlobal.Language.GetText(this, "NotPermitted",
                                                                 "Unable to perform that action.");
                    break;
                }

                await db.SaveChangesAsync();
            }

            // Something happened so return the model
            var viewModel = new OrganisationDashboardViewModel(organisation);

            return(View(viewModel));
        }
Ejemplo n.º 7
0
        public async Task <ActionResult> Membership(OrganisationMembershipActionViewModel model)
        {
            Provider provider = await db.Providers.FindAsync(userContext.ItemId);

            if (provider == null)
            {
                return(HttpNotFound());
            }

            if (ModelState.IsValid)
            {
                OrganisationProvider item =
                    provider.OrganisationProviders.FirstOrDefault(x => x.OrganisationId == model.Id);
                if (item == null)
                {
                    return(HttpNotFound());
                }

                switch (model.Action)
                {
                case "accept":
                    item.IsAccepted = true;
                    item.IsRejected = false;
                    item.CanOrganisationEditProvider = model.Flag.HasValue && !model.Flag.Value;
                    item.RespondedByUserId           = Permission.GetCurrentUserId();
                    item.RespondedByDateTimeUtc      = DateTime.UtcNow;

                    ProvisionUtilities.SendOrganisationMembershipEmail(
                        db,
                        item.CanOrganisationEditProvider
                                ? Constants.EmailTemplates.ProviderInviteAcceptedCanEdit
                                : Constants.EmailTemplates.ProviderInviteAcceptedCannotEdit,
                        userContext.ItemId.Value,
                        model.Id,
                        null);
                    ShowGenericSavedMessage();
                    break;

                case "reject":
                    item.IsAccepted             = false;
                    item.IsRejected             = true;
                    item.Reason                 = model.Reason;
                    item.RespondedByUserId      = Permission.GetCurrentUserId();
                    item.RespondedByDateTimeUtc = DateTime.UtcNow;

                    ProvisionUtilities.SendOrganisationMembershipEmail(
                        db,
                        Constants.EmailTemplates.ProviderInviteRejected,
                        userContext.ItemId.Value,
                        model.Id,
                        new List <EmailParameter>
                    {
                        new EmailParameter("%REASONS%", model.Reason)
                    });
                    ShowGenericSavedMessage();
                    break;

                case "leave":
                    item.IsAccepted             = true;
                    item.IsRejected             = true;
                    item.Reason                 = model.Reason;
                    item.RespondedByUserId      = Permission.GetCurrentUserId();
                    item.RespondedByDateTimeUtc = DateTime.UtcNow;

                    ProvisionUtilities.SendOrganisationMembershipEmail(
                        db,
                        Constants.EmailTemplates.ProviderLeftOrganisation,
                        userContext.ItemId.Value,
                        model.Id,
                        new List <EmailParameter>
                    {
                        new EmailParameter("%REASONS%", model.Reason)
                    });
                    ShowGenericSavedMessage();
                    break;

                case "toggleorg":
                    item.CanOrganisationEditProvider = model.Flag.HasValue && model.Flag.Value;

                    ProvisionUtilities.SendOrganisationMembershipEmail(
                        db,
                        item.CanOrganisationEditProvider
                                ? Constants.EmailTemplates.ProviderAllowedOrganisationToManageData
                                : Constants.EmailTemplates.ProviderDisallowedOrganisationToManageData,
                        userContext.ItemId.Value,
                        model.Id,
                        null);
                    ShowGenericSavedMessage();
                    break;

                default:
                    ViewBag.Message = AppGlobal.Language.GetText(this, "NotPermitted",
                                                                 "Unable to perform that action.");
                    break;
                }

                await db.SaveChangesAsync();
            }

            var viewModel = new ProviderOrganisationsViewModel(provider);

            return(View(viewModel));
        }
Ejemplo n.º 8
0
 public OrganisationsController()
 {
     _orgRepo = new OrganisationProvider();
 }