예제 #1
0
        public ActionResult OrganizationAccessRequestConfirmation(OrganizationViewModel viewModel, FormCollection collection, string phoneNumber, string jobTitle)
        {
            viewModel = SystemViewModelData.BuildUpOrganizationViewModel(viewModel.Entity.ID);

            //Get the contact for the current user
            Contact contact = Repository.OrganizationContacts.GetByAccount(CurrentAccountID);

            //Figures out who to send the "Request" to and delivers the emails too.
            var evnt = Services.Events.CreateOrganizationAccessRequest(viewModel.Entity, contact, phoneNumber, jobTitle);

            if (evnt != null)
            {
                //There can be 3 possibilities. They are:
                //1. the ball is in the organizations regulator contacts (OrgUserARNotificiation) court to approve/deny request.
                //2. the ball is in the Organization Contact's (lead users) court to approve/deny request.
                //3. the ball is in the CERS Help Center's court to approve/deny request.
                viewModel.EvtTicketCode = evnt.TicketCode;
                viewModel.EvtTypeCode   = evnt.GetEventTypeCode();
                viewModel.Regulator     = evnt.Regulator;
                if (evnt.Notifications.Count > 0)
                {
                    List <Contact> contacts = new List <Contact>();
                    evnt.Notifications.ToList().ForEach(n => contacts.Add(n.Contact));
                    viewModel.NotificationContacts = contacts;
                }
            }

            return(View(viewModel));
        }
예제 #2
0
        public ActionResult RegulatorDetail(int regulatorId)
        {
            RegulatorViewModel viewModel = SystemViewModelData.BuildRegulatorViewModel(regulatorId);

            viewModel.RelatedRegulators = GetRelatedRegulators(regulatorId);
            return(View(viewModel));
        }
예제 #3
0
        public ActionResult EnforcementSummaries()
        {
            RegulatorDocumentViewModel regulatorDocumentViewModel = SystemViewModelData.BuildRegulatorDocumentViewModel(true);

            regulatorDocumentViewModel.Regulators = Repository.Regulators.Search();
            return(View(regulatorDocumentViewModel));
        }
예제 #4
0
        public ActionResult CreateNewOrganization()
        {
            OrganizationViewModel viewModel = SystemViewModelData.BuildUpOrganizationViewModel();

            viewModel.CheckDuplicates = true;
            return(View(viewModel));
        }
예제 #5
0
        public ActionResult ExistingOrganizations(string organizationName)
        {
            OrganizationViewModel viewModel = SystemViewModelData.BuildUpOrganizationViewModel();

            viewModel.Entity.OriginID = 6;
            viewModel.Entity.Name     = organizationName;
            return(View(viewModel));
        }
예제 #6
0
        public ActionResult UPAListing()
        {
            RegulatorDocumentViewModel regulatorDocumentViewModel = SystemViewModelData.BuildRegulatorDocumentViewModel(true);

            regulatorDocumentViewModel.RegulatorTypes = regulatorDocumentViewModel.RegulatorTypes.Where(p => p.ID != 4 && p.ID != 5);
            regulatorDocumentViewModel.Counties       = Repository.Counties.GetAll();
            return(View(regulatorDocumentViewModel));
        }
예제 #7
0
        public ActionResult CUPAEvaluationDocuments()
        {
            RegulatorDocumentViewModel regulatorDocumentViewModel = SystemViewModelData.BuildRegulatorDocumentViewModel(true);

            regulatorDocumentViewModel.Regulators             = Repository.Regulators.Search();
            regulatorDocumentViewModel.RegulatorDocumentTypes = Repository.SystemLookupTables.GetValues(SystemLookupTable.RegulatorDocumentType);

            return(View(regulatorDocumentViewModel));
        }
예제 #8
0
        public ActionResult AddBusiness()
        {
            OrganizationViewModel viewModel = SystemViewModelData.BuildUpOrganizationViewModel();

            viewModel.Origins         = viewModel.Origins.Where(p => p.ID == 6);
            viewModel.Entity.OriginID = 6;
            viewModel.RegulatorsApprovingFacilityTransfer = Repository.Regulators.Search(applySecurityFilter: true, matrices: CurrentUserRoles);
            return(View(viewModel));
        }
예제 #9
0
        public ActionResult Violations()
        {
            ViolationTypeViewModel viewModel = SystemViewModelData.BuildUpViolationTypeViewModel(null, true);

            // Perform default search for all Violation Library Entries:
            viewModel.ViolationTypeGridView = Repository.ViolationTypes.GridSearch();

            return(View(viewModel));
        }
예제 #10
0
        public ActionResult OrganizationAccessRequest(int id)
        {
            OrganizationViewModel viewModel = SystemViewModelData.BuildUpOrganizationViewModel(id);

            var oarTarget = Services.Events.GetOrganizationAccessRequestTarget(viewModel.Entity);

            viewModel.EvtTypeCode          = oarTarget.Type;
            viewModel.Regulator            = oarTarget.Regulator;
            viewModel.NotificationContacts = oarTarget.Contacts;

            return(View(viewModel));
        }
예제 #11
0
        public ActionResult SubmittalStart(int organizationId, int CERSID)
        {
            var viewModel = SystemViewModelData.BuildUpSubmittalStartViewModel(CERSID);

            //Validate each submittal element before the official submit
            foreach (var submittalElement in viewModel.CurrentSubmittalElementViewModelCollection.Where(f => f.FacilitySubmitalElement != null && f.FacilitySubmitalElement.StatusID == (int)SubmittalElementStatus.Draft).Select(c => c.FacilitySubmitalElement))
            {
                var fse = Repository.FacilitySubmittalElements.GetByID(submittalElement.ID);
                fse.ValidateAndCommitResults(Repository, CallerContext.UI);
            }
            viewModel = SystemViewModelData.BuildUpSubmittalStartViewModel(CERSID);
            return(View(viewModel));
        }
예제 #12
0
        public ActionResult RetrieveScheduledDeferredJobDocument(int deferredJobID)
        {
            DeferredJobViewModel viewModel = SystemViewModelData.BuildUpDeferredJobDocumentRetrievalViewModel(deferredJobID);

            if (viewModel.Entity != null)
            {
                viewModel.DocumentLink = Url.Action("OpenDocument", "Tools", new { documentID = viewModel.Entity.DocumentID, title = String.Format("{0}_Documents", viewModel.Entity.DocumentID) });
                if ((DeferredJobType)viewModel.Entity.DeferredJobTypeID == DeferredJobType.OrganizationHMIDownload)
                {
                    viewModel.JobTypeDescription = "a Hazardous Material Inventory Download";
                }
            }
            return(View(viewModel));
        }
예제 #13
0
        public ActionResult AddBusiness(FormCollection collection)
        {
            var orgVM = SystemViewModelData.BuildUpOrganizationViewModel();

            string orgName      = collection["Entity.Name"].ToString();
            string headquarters = collection["Entity.Headquarters"].ToString();
            int?   regulatorID  = null;

            //Not setting the LeadRegulatorID, this is just the name of the Regulator Drop Down - using this regulatorID to create the event.
            if (!String.IsNullOrEmpty(collection["Entity.LeadRegulatorID"].ToString()))
            {
                regulatorID = Convert.ToInt32(collection["Entity.LeadRegulatorID"].ToString());
            }

            if (ModelState.IsValid)
            {
                //Look for dupes
                List <Model.Organization> matches = (from organization in Repository.DataModel.Organizations where organization.Name == orgName select organization).ToList();

                if (matches != null)
                {
                    if (matches.Count == 0)
                    {
                        if (TryUpdateModel(orgVM.Entity, "Entity"))
                        {
                            try
                            {
                                int orgID = CreateNewBusiness(orgVM.Entity.Name, orgVM.Entity.Headquarters, (OrganizationOrigin)orgVM.Entity.OriginID);

                                Messages.Clear();
                                Messages.Add("Organization created successfully!", MessageType.Success, "Organizations");
                                return(RedirectToAction("Index", "MyOrganization", new { organizationId = orgID }));
                            }
                            catch (Exception ex)
                            {
                                ModelState.AddModelError("", ex.Message);
                            }
                        }
                    }
                    else
                    {
                        return(RedirectToAction("ExistingOrganizations", new { organizationName = orgName, headquarters = headquarters, regulatorID = regulatorID }));
                    }
                }
            }
            return(View(orgVM));
        }
예제 #14
0
        public ActionResult SubmittalStart(int organizationId, int CERSID, FormCollection form)
        {
            var      viewModel             = SystemViewModelData.BuildUpSubmittalStartViewModel(CERSID);
            var      isFacilityInfoChecked = false;
            var      fseIDs        = string.Empty;
            DateTime submittedDate = DateTime.Now;

            //Create FacilitySubmittalRecord
            FacilitySubmittal facilitySubmittal = new FacilitySubmittal();

            facilitySubmittal.ReceivedOn  = DateTime.Now;
            facilitySubmittal.SubmittedOn = submittedDate;
            Repository.FacilitySubmittals.Create(facilitySubmittal);

            foreach (var submittal in viewModel.ReadyToSubmitCollection)
            {
                var FSEIDValue = form[string.Format("submittCheckBox_{0}", submittal.CurrentSubmittalElement.SubmittalElementID)];
                var comments   = form[string.Format("regulatorText_{0}", submittal.CurrentSubmittalElement.SubmittalElementID)];

                if (!string.IsNullOrWhiteSpace(FSEIDValue))
                {
                    FacilitySubmittalElement submittalElement = Repository.FacilitySubmittalElements.GetByID(submittal.CurrentSubmittalElement.FSEID.Value);

                    //We do not want to submit unless the Faciilty Info Submittal Element has been chekced.
                    if (isFacilityInfoChecked || submittalElement.SubmittalElementID == (int)CERS.SubmittalElementType.FacilityInformation)
                    {
                        submittalElement.SubmittedByComments = comments;
                        Repository.FacilitySubmittalElements.Submit(submittalElement, facilitySubmittal);
                        isFacilityInfoChecked = true;

                        fseIDs += "," + submittalElement.ID.ToString();
                        Services.BusinessLogic.SubmittalElements.SetLastFacilityInfoSubmittal(submittalElement);
                    }
                }
            }

            Facility facility = Repository.Facilities.GetByID(CERSID);

            Repository.Organizations.Save(facility.Organization);
            Services.Events.CreateFacilitySubmittalNotification(facility, facilitySubmittal);
            if (fseIDs.Length > 1)
            {
                fseIDs = fseIDs.Remove(0, 1);
            }

            return(RedirectToRoute(GetRouteName(Part.Submittal, Part.Finish), new { organizationID = organizationId, CERSID = CERSID, FSID = facilitySubmittal.ID }));
        }
예제 #15
0
        public ActionResult AddBusinessAnyway(string organizationName, string headquarters, string regulatorID)
        {
            var orgVM = SystemViewModelData.BuildUpOrganizationViewModel();

            try
            {
                int orgID = CreateNewBusiness(organizationName, headquarters, OrganizationOrigin.CUPA);
                Messages.Clear();
                Messages.Add("Organization created successfully!", MessageType.Success, "Organizations");
                return(RedirectToAction("Index", "MyOrganization", new { organizationId = orgID }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
            }
            return(View(orgVM));
        }
예제 #16
0
        public ActionResult SearchViolations([DataSourceRequest] DataSourceRequest request, int?violationProgramElementID = null, int?violationCategoryID = null, int?violationSourceID = null, string violationTypeNumber = "", string name = "", string description = "", string violationCitation = "", DateTime?beginDate = null, DateTime?endDate = null)
        {
            ViolationTypeViewModel viewModel = SystemViewModelData.BuildUpViolationTypeViewModel(null, true);

            // Perform search using user-entered criteria:
            var ViolationTypes = Repository.ViolationTypes.GridSearch(violationProgramElementID: violationProgramElementID,
                                                                      violationCategoryID: violationCategoryID,
                                                                      violationSourceID: violationSourceID,
                                                                      typeNumber: violationTypeNumber,
                                                                      name: name,
                                                                      description: description,
                                                                      citation: violationCitation,
                                                                      beginDate: beginDate,
                                                                      endDate: endDate);

            DataSourceResult result = ViolationTypes.ToList().ToDataSourceResult(request);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
예제 #17
0
        public ActionResult OrganizationFacilitySubmittalEvent(int organizationID, int FSID)
        {
            FacilitySubmittalViewModel viewModel = SystemViewModelData.BuildUpFacilitySubmittalViewModel(FSID, organizationID);

            viewModel.FacilitySubmittalElements = viewModel.FacilitySubmittalElements.OrderBy(f => f.SubmittalElementID);

            //plug in HMI report
            FacilitySubmittalElement HMIFse = viewModel.FacilitySubmittalElements.Where(p => p.SubmittalElementID == (int)(SubmittalElementType.HazardousMaterialsInventory)).FirstOrDefault();

            if (HMIFse != null)
            {
                FacilitySubmittalElementResource HMIFser = HMIFse.Resources.Where(r => r.ResourceTypeID == (int)ResourceType.HazardousMaterialInventory && !r.Voided).FirstOrDefault();
                if (HMIFser != null)
                {
                    HazardousMaterialsInventoryController hmiController = new HazardousMaterialsInventoryController();
                    viewModel.HMISReport = hmiController.PopulateHMIMatrixViewModel(organizationID, HMIFse.CERSID, HMIFse.ID, HMIFser.ID);
                }
            }

            return(View(viewModel));
        }
예제 #18
0
        public ActionResult RecyclableMaterialsReportUnavailable(int organizationId, int CERSID)
        {
            var viewModel = SystemViewModelData.BuildUpFacilityViewModel(CERSID);

            return(View(viewModel));
        }
예제 #19
0
        public ActionResult ViolationDetail(int violationTypeID)
        {
            ViolationTypeViewModel viewModel = SystemViewModelData.BuildUpViolationTypeViewModel(violationTypeID);

            return(View(viewModel));
        }
예제 #20
0
        public ActionResult Violations(ViolationTypeViewModel violationTypeViewModel, FormCollection formCollection)
        {
            ViolationTypeViewModel viewModel = SystemViewModelData.BuildUpViolationTypeViewModel(null, true);

            // Set Populated viewModel search parameters to user-supplied values
            viewModel.ViolationProgramElementID = violationTypeViewModel.ViolationProgramElementID;
            viewModel.ViolationCategoryID       = violationTypeViewModel.ViolationCategoryID;
            viewModel.ViolationSourceID         = violationTypeViewModel.ViolationSourceID;
            viewModel.ViolationTypeNumber       = violationTypeViewModel.ViolationTypeNumber;
            viewModel.Name              = violationTypeViewModel.Name;
            viewModel.Description       = violationTypeViewModel.Description;
            viewModel.ViolationCitation = violationTypeViewModel.ViolationCitation;
            viewModel.BeginDate         = violationTypeViewModel.BeginDate;
            viewModel.EndDate           = violationTypeViewModel.EndDate;

            // Perform search using user-entered criteria, return Grid View:
            viewModel.ViolationTypeGridView = Repository.ViolationTypes.GridSearch(violationProgramElementID: violationTypeViewModel.ViolationProgramElementID,
                                                                                   violationCategoryID: violationTypeViewModel.ViolationCategoryID,
                                                                                   violationSourceID: violationTypeViewModel.ViolationSourceID,
                                                                                   typeNumber: violationTypeViewModel.ViolationTypeNumber,
                                                                                   name: violationTypeViewModel.Name,
                                                                                   description: violationTypeViewModel.Description,
                                                                                   citation: violationTypeViewModel.ViolationCitation,
                                                                                   beginDate: violationTypeViewModel.BeginDate,
                                                                                   endDate: violationTypeViewModel.EndDate
                                                                                   );

            //Check for Export
            if (!string.IsNullOrWhiteSpace(formCollection["export"]))
            {
                string     excelTemplateFilePath = System.IO.Path.Combine(Server.MapPath("~"), ConfigurationManager.AppSettings["ViolationLibraryExcelTemplate"]);
                FileStream sourceXlsDataStream   = new System.IO.FileStream(excelTemplateFilePath, FileMode.Open, FileAccess.Read);

                ExcelWorkbook workbook = new ExcelWorkbook(sourceXlsDataStream);
                workbook.LicenseKey = Excel.GetWinnovativeExcelLicenseKey();

                // Obtain First Worksheet (this is where our Inventory will be inserted)
                ExcelWorksheet excelWorksheet = workbook.Worksheets[0];

                if (formCollection["export"] == "Export to Excel")
                {
                    if (excelWorksheet != null)
                    {
                        // Retrieve the real entities for export (not only the Grid View from above)
                        // based on the provided search criteria:
                        viewModel.Entities = Repository.ViolationTypes.Search(violationProgramElementID: violationTypeViewModel.ViolationProgramElementID,
                                                                              violationCategoryID: violationTypeViewModel.ViolationCategoryID,
                                                                              violationSourceID: violationTypeViewModel.ViolationSourceID,
                                                                              typeNumber: violationTypeViewModel.ViolationTypeNumber,
                                                                              name: violationTypeViewModel.Name,
                                                                              description: violationTypeViewModel.Description,
                                                                              citation: violationTypeViewModel.ViolationCitation);

                        DataTable table = ViolationLibraryDataTable(viewModel.Entities);
                        excelWorksheet.LoadDataTable(table, 4, 1, false);
                    }
                    SetDownloadFileHeader("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "CERSViolationLibrary_SearchResults.xlsx");
                }
                else if (formCollection["export"] == "Export Entire Violation Library")
                {
                    if (excelWorksheet != null)
                    {
                        // Retrieve the entire set of Violation Types (the real entities, not Grid View)
                        viewModel.Entities = Repository.ViolationTypes.Search();

                        DataTable table = ViolationLibraryDataTable(viewModel.Entities);
                        excelWorksheet.LoadDataTable(table, 4, 1, false);
                    }
                    SetDownloadFileHeader("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "CERSViolationLibrary_EntireExport.xlsx");
                }

                workbook.Save(Response.OutputStream);
                Response.End();

                return(new EmptyResult());
            }

            return(View(viewModel));
        }
예제 #21
0
        public ActionResult OrganizationFacilitySubmittalDetail(int organizationId, int CERSID, int FSEID)
        {
            var viewModel = SystemViewModelData.BuildUpFacilitySubmittalElementViewModel(CERSID, FSEID);

            return(View(viewModel));
        }