private PartialViewResult ViewDeleteOrganization(Organization organization, ConfirmDialogFormViewModel viewModel)
        {
            var canDelete      = !organization.HasDependentObjects() && !organization.IsUnknown();
            var confirmMessage = canDelete
                ? $"Are you sure you want to delete this {FieldDefinitionType.Organization.GetFieldDefinitionLabel()} '{organization.OrganizationName}'?"
                : ConfirmDialogFormViewData.GetStandardCannotDeleteMessage($"{FieldDefinitionType.Organization.GetFieldDefinitionLabel()}", SitkaRoute <OrganizationController> .BuildLinkFromExpression(x => x.Detail(organization), "here"));

            var viewData = new ConfirmDialogFormViewData(confirmMessage, canDelete);

            return(RazorPartialView <ConfirmDialogForm, ConfirmDialogFormViewData, ConfirmDialogFormViewModel>(viewData, viewModel));
        }
        public ActionResult New(EditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewEdit(viewModel, true, null));
            }
            var organization = new Organization(String.Empty, true, ModelObjectHelpers.NotYetAssignedID);

            viewModel.UpdateModel(organization, CurrentPerson);
            HttpRequestStorage.DatabaseEntities.Organizations.Add(organization);
            HttpRequestStorage.DatabaseEntities.SaveChanges();
            SetMessageForDisplay($"Organization {organization.GetDisplayName()} succesfully created.");

            return(new ModalDialogFormJsonResult());
        }
示例#3
0
        private static Person CreateNewFirmaPerson(KeystoneService.KeystoneUserClaims keystoneUser,
                                                   Guid?organizationGuid)
        {
            Organization organization;

            if (organizationGuid.HasValue)
            {
                organization =
                    HttpRequestStorage.DatabaseEntities.Organizations.GetOrganizationByOrganizationGuid(organizationGuid
                                                                                                        .Value);

                if (organization == null)
                {
                    var keystoneClient = new KeystoneDataClient();


                    var keystoneOrganization = keystoneClient.GetOrganization(organizationGuid.Value);


                    var defaultOrganizationType =
                        HttpRequestStorage.DatabaseEntities.OrganizationTypes.GetDefaultOrganizationType();
                    var neptuneOrganization =
                        new Organization(keystoneOrganization.FullName, true, defaultOrganizationType)
                    {
                        OrganizationGuid      = keystoneOrganization.OrganizationGuid,
                        OrganizationShortName = keystoneOrganization.ShortName,
                        OrganizationUrl       = keystoneOrganization.URL
                    };
                    HttpRequestStorage.DatabaseEntities.Organizations.Add(neptuneOrganization);

                    HttpRequestStorage.DatabaseEntities.SaveChanges();

                    organization = neptuneOrganization;
                }
            }
            else
            {
                organization = HttpRequestStorage.DatabaseEntities.Organizations.GetUnknownOrganization();
            }


            var firmaPerson = new Person(keystoneUser.UserGuid, keystoneUser.FirstName, keystoneUser.LastName,
                                         keystoneUser.Email, Role.Unassigned, DateTime.Now, true, organization, false,
                                         keystoneUser.LoginName, false, Guid.NewGuid());

            HttpRequestStorage.DatabaseEntities.People.Add(firmaPerson);
            return(firmaPerson);
        }
        public ActionResult PullOrganizationFromKeystone(PullOrganizationFromKeystoneViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewPullOrganizationFromKeystone(viewModel));
            }

            var keystoneClient = new KeystoneDataClient();

            var organizationGuid = viewModel.OrganizationGuid.GetValueOrDefault(); // never null due to RequiredAttribute

            KeystoneDataService.Organization keystoneOrganization;
            try
            {
                keystoneOrganization = keystoneClient.GetOrganization(organizationGuid);
            }
            catch (Exception)
            {
                SetErrorForDisplay("Organization not added. Guid not found in Keystone or unable to connect to Keystone");
                return(new ModalDialogFormJsonResult());
            }

            var neptuneOrganization = HttpRequestStorage.DatabaseEntities.Organizations.SingleOrDefault(x => x.OrganizationGuid == organizationGuid);

            if (neptuneOrganization != null)
            {
                SetErrorForDisplay("Organization not added - it already exists in Neptune");
                return(new ModalDialogFormJsonResult());
            }

            var defaultOrganizationType = HttpRequestStorage.DatabaseEntities.OrganizationTypes.GetDefaultOrganizationType();

            neptuneOrganization = new Organization(keystoneOrganization.FullName, true, defaultOrganizationType)
            {
                OrganizationGuid      = keystoneOrganization.OrganizationGuid,
                OrganizationShortName = keystoneOrganization.ShortName,
                OrganizationUrl       = keystoneOrganization.URL
            };
            HttpRequestStorage.DatabaseEntities.Organizations.Add(neptuneOrganization);

            HttpRequestStorage.DatabaseEntities.SaveChanges();

            SetMessageForDisplay($"Organization {neptuneOrganization.GetDisplayNameAsUrl()} successfully added.");

            return(new ModalDialogFormJsonResult());
        }
示例#5
0
 public string GetDisplayName()
 {
     return
         ($"{FundingSourceName} ({Organization.GetOrganizationShortNameIfAvailable()}){(!IsActive ? " (Inactive)" : string.Empty)}");
 }