public Child GetChildInfo(int CaseID) { string CPR; Child child = new Child(); AcadreServiceV7.BUCaseFileType Case = (AcadreServiceV7.BUCaseFileType)caseService.GetCase(CaseID.ToString()); var user = GetUser(Case.CaseFileManagerReference); user = user ?? new AcadreServiceV7.UserType() { Initials = "", Name = "", Id = Case.CaseFileManagerReference }; child = CPRBrokerService.GetChild(Case.CaseFileTitleText.Substring(0, 10)); child.Note = Case.Note; child.CaseID = CaseID; child.CaseNumberIdentifier = Case.CaseFileNumberIdentifier; child.CaseManagerInitials = user.Initials; child.CaseManagerName = user.Name; child.CaseIsClosed = Case.CaseFileStatusCode == "A"; if (child.Siblings == null) { return(child); } var siblings = child.Siblings.ToArray(); for (int i = 0; i < child.Siblings.Count(); i++) { CPR = siblings[i].SimpleChild.CPR; SearchCriterion searchCriterion = new SearchCriterion() { ChildCPR = CPR, CaseContent = "Løbende journal*", IsClosed = true }; IEnumerable <ChildCase> childCases = SearchChildren(searchCriterion); foreach (var childCase in childCases) { siblings[i].CaseID = childCase.CaseID; siblings[i].Note = childCase.Note; siblings[i].CaseNumberIdentifier = childCase.CaseNumberIdentifier; siblings[i].CaseManagerInitials = childCase.CaseManagerInitials; siblings[i].CaseManagerName = childCase.CaseManagerName; siblings[i].CaseIsClosed = childCase.IsClosed; if (!childCase.IsClosed) // Hvis sagen ikke er afsluttet så behøver vi ikke at gå resten igennem { break; } } } child.Siblings = siblings.AsEnumerable(); return(child); }
public IEnumerable <JournalDocument> GetChildJournalDocuments(int CaseID) { List <JournalDocument> journalDocuments = new List <JournalDocument>(); AcadreServiceV7.BUCaseFileType Case = (AcadreServiceV7.BUCaseFileType)caseService.GetCase(CaseID.ToString()); AcadreServiceV7.AdvancedSearchCaseCriterionType2 searchCriterion = new AcadreServiceV7.AdvancedSearchCaseCriterionType2(); searchCriterion.CaseFileTitleText = Case.CaseFileTitleText.Substring(0, 10) + "*"; searchCriterion.CaseFileTypeCode = CaseFileTypeCode; // Henter dokumenter foreach (AcadreServiceV7.CaseSearchResponseType foundCase in caseService.SearchCases(searchCriterion)) { journalDocuments.AddRange(GetChildCaseDocuments(int.Parse(foundCase.CaseFileReference))); } //FlowDocument document = new FlowDocument(); foreach (var memo in memoService4.GetAllMemo(CaseID.ToString())) { if (memo == null) { throw new Exception("Der opstod en fejl ved udtræk af journalnotater: Den kaldte metode returnerede null værdier"); } //var outputbinary = documentService4.GetPhysicalDocument(new AcadreServiceV4.FileVersionReferenceType() //{ // FileReference = memo.MemoFileReference, // Version = "1" //}); //TextRange txtRange; //using (MemoryStream stream = new MemoryStream(outputbinary)) //{ // // create a TextRange around the entire document // txtRange = new TextRange(document.ContentStart, document.ContentEnd); // txtRange.Load(stream, DataFormats.Rtf); //} journalDocuments.Add(new JournalDocument { Type = "Memo", DocumentID = int.Parse(memo.MemoIdentifier), Title = memo.MemoTitleText, LastChangedDate = memo.MemoEventDate, CaseID = CaseID, CaseNumberIdentifier = Case.CaseFileNumberIdentifier, DocumentMemoDescription = "", // txtRange.Text // Her skal der bruges indholdet af notatet FileReferenceID = memo.MemoFileReference }); } return(journalDocuments); }
public void ChangeCaseContent(string newContent, int CaseID) { AcadreServiceV7.BUCaseFileType Case = (AcadreServiceV7.BUCaseFileType)caseService.GetCase(CaseID.ToString()); for (int i = 0; i < Case.CustomFieldCollection.Count(); i++) { if (Case.CustomFieldCollection[i].Name == "df1") { Case.CustomFieldCollection[i].Value = newContent; break; } } try { caseService.UpdateCase(Case); } catch (Exception e) { throw new Exception("Kunne ikke opdatere Acadre sagen", e); } return; }
public IEnumerable <ChildCase> GetChildCases(int CaseID) { List <ChildCase> childCases = new List <ChildCase>(); AcadreServiceV7.BUCaseFileType Case = (AcadreServiceV7.BUCaseFileType)caseService.GetCase(CaseID.ToString()); string CPR = Case.CaseFileTitleText.Substring(0, 10); AcadreServiceV7.AdvancedSearchCaseCriterionType2 searchCriterion = new AcadreServiceV7.AdvancedSearchCaseCriterionType2(); searchCriterion.CaseFileTitleText = CPR; searchCriterion.CaseFileTypeCode = CaseFileTypeCode; var userList = configurationService.GetUserList(new AcadreServiceV7.EmptyRequestType()).ToList(); foreach (AcadreServiceV7.CaseSearchResponseType foundCase in caseService.SearchCases(searchCriterion)) { Case = (AcadreServiceV7.BUCaseFileType)caseService.GetCase(foundCase.CaseFileReference); var user = userList.SingleOrDefault(ut => ut.Id == Case.CaseFileManagerReference); if (user == null) { user = new AcadreServiceV7.UserType() { Initials = "", Name = "" }; } childCases.Add(new ChildCase { CaseID = int.Parse(foundCase.CaseFileReference), CaseContent = Case.CustomFields.df1, ChildCPR = CPR, CaseNumberIdentifier = Case.CaseFileNumberIdentifier, CaseManagerInitials = user.Initials, CaseManagerName = user.Name, Note = Case.Note, ChildName = Case.TitleAlternativeText, IsClosed = Case.CaseFileStatusCode == "A" }); } return(childCases); }
public string CreateCase( /* Case party's name */ string personNameForAddressingName, /* Case party's CPR number */ string personCivilRegistrationNumber, /* Case type. One of the following: * "EMSAG" (emnesag) * "BGSAG" (borgersag) * "EJSAG" (ejendomssag) * "PERSAG" (personalesag) * "BYGGESAG" (byggesag) * "BUSAG" (Børn og unge sag)*/ string caseFileTypeCode, /* Security code. One of the following: * "BO" (borgersag) * "KK" (kommunekode) * "LP" (lukket punkt) * "PP" (personpunkt) */ string accessCode, /* Case title */ string caseFileTitleText, /* KLE journalizing code (http://www.kle-online.dk/emneplan/00/) */ string journalizingCode, /* KLE facet for the specified journalizing code */ string facet, /* Username of the user creating this case; get from Active Directory * (the AcadreServiceFactory.GetConfigurationService7().GetUserList(...) method will * return a full list) */ string caseResponsible, /* Identifier of the administrative unit; should probably be "80" for "Løn og personale" * (the AcadreServiceFactory.GetConfigurationService7().GetAdminUnitList(...) method * will return a full list) */ string administrativeUnit, /* Case content */ string caseContent, /* Discard code. One of the following(?): * "B" (bevares), * "K" (kasseres), * "K5" (kasseres efter 5 år), * "K10" (kasseres efter 10 år) * "K20" (kasseres efter 20 år) */ string caseFileDisposalCode, /* Deletion code; "P1800D" seems to be the standard value here */ string deletionCode, string caseRestrictedFromPublicText, string SpecialistID, string RecommendationID, string CategoryID, string SubType ) { // look up contact by cprnumber var searchContactCriterion = new AcadreServiceV7.SearchContactCriterionType2(); searchContactCriterion.ContactTypeName = "Person"; searchContactCriterion.SearchTerm = personCivilRegistrationNumber; AcadreServiceV7.ContactSearchResponseType[] foundContacts = contactService.SearchContacts(searchContactCriterion); var PrimaryContact = GetCreateAcadreContact(personCivilRegistrationNumber); var simplePerson = CPRBrokerService.GetSimplePersonByCPR(personCivilRegistrationNumber); // create the case var createCaseRequest = new AcadreServiceV7.CreateCaseRequestType(); AcadreServiceV7.CaseFileType3 caseFile; if (caseFileTypeCode == "BUSAG") { AcadreServiceV7.BUCaseFileType BUcaseFile = new AcadreServiceV7.BUCaseFileType(); try { BUcaseFile.SpecialistId = int.Parse(SpecialistID); // Faggruppe BUcaseFile.SpecialistIdSpecified = true; } catch { BUcaseFile.SpecialistIdSpecified = false; } try { BUcaseFile.RecommendationId = int.Parse(RecommendationID); // Henvendelse BUcaseFile.RecommendationIdSpecified = true; } catch { BUcaseFile.RecommendationIdSpecified = false; } try { BUcaseFile.CategoryId = int.Parse(CategoryID); // Kategori BUcaseFile.CategoryIdSpecified = true; } catch { BUcaseFile.CategoryIdSpecified = false; } caseFile = BUcaseFile; } else { caseFile = new AcadreServiceV7.CaseFileType3(); } caseFile.SubType = SubType; // SubType from input argument caseFile.CaseFileTypeCode = caseFileTypeCode; caseFile.Year = DateTime.Now.Year.ToString(); caseFile.CreationDate = DateTime.Now; if (((IEnumerable <string>) new string[3] { "BUSAG", "BGSAG", "PERSAG" }).Contains(CaseFileTypeCode)) { var KLECategory = configurationService.GetCategoryList(new AcadreServiceV7.EmptyRequestType()).ToList().Where(x => x.Principle.Literal == "KL Koder" && x.Literal == journalizingCode).FirstOrDefault(); if (KLECategory == null) { throw (new Exception("kunne ikke finde KLE nummer")); } string KLEtitle = KLECategory.Title; caseFile.CaseFileTitleText = string.Format("{0} - {1} - {2}", personCivilRegistrationNumber, simplePerson.FullName, KLEtitle); } else { caseFile.CaseFileTitleText = caseFileTitleText; } caseFile.CaseFileTitleText = personCivilRegistrationNumber; // must be set to contact cpr number for BGSAG caseFile.TitleUnofficialIndicator = false; caseFile.TitleAlternativeText = simplePerson.FullName; // must be set to contact name for BGSAG caseFile.RestrictedFromPublicText = caseRestrictedFromPublicText; caseFile.CaseFileStatusCode = "B"; caseFile.CaseFileDisposalCode = caseFileDisposalCode; caseFile.DeletionCode = deletionCode; caseFile.AccessCode = accessCode; caseFile.AdministrativeUnit = new AcadreServiceV7.AdministrativeUnitType[] { new AcadreServiceV7.AdministrativeUnitType() { AdministrativeUnitReference = administrativeUnit } }; caseFile.CustomFieldCollection = new AcadreServiceV7.CustomField[] { new AcadreServiceV7.CustomField() { Name = "df1", Value = caseContent } , new AcadreServiceV7.CustomField() { Name = "df25", Value = PrimaryContact.GUID } }; caseFile.Classification = new AcadreServiceV7.ClassificationType { Category = new AcadreServiceV7.CategoryType[] { new AcadreServiceV7.CategoryType() { Principle = "KL Koder", Literal = journalizingCode } , new AcadreServiceV7.CategoryType() { Principle = "Facetter", Literal = facet } } }; if (caseFileTypeCode == "BUSAG") { var child = CPRBrokerService.GetChild(personCivilRegistrationNumber); // Forældre skal også med som kontakter var parents = new List <SimplePerson>(); parents.AddRange(child.Mom ?? new SimplePerson[] { }); parents.AddRange(child.Dad ?? new SimplePerson[] { }); var parentsGUI = new List <string>(); foreach (var parent in parents) { parentsGUI.Add(GetCreateAcadreContact(parent.CPR).GUID); } // Barnet tilføjes som primær part og forældre tilføjes som parter caseFile.Party = new AcadreServiceV7.PartyType[1 + parentsGUI.Count]; caseFile.Party[0] = new AcadreServiceV7.PartyType() { CreationDate = DateTime.Now, ContactReference = PrimaryContact.GUID, PublicAccessLevelReference = "3", IsPrimary = true }; int i = 1; foreach (var parentGUI in parentsGUI) { caseFile.Party[i] = new AcadreServiceV7.PartyType() { CreationDate = DateTime.Now, ContactReference = parentGUI, PublicAccessLevelReference = "3", IsPrimary = false }; i++; } } else { caseFile.Party = new AcadreServiceV7.PartyType[] { new AcadreServiceV7.PartyType() { CreationDate = DateTime.Now , ContactReference = PrimaryContact.GUID , PublicAccessLevelReference = "3" , IsPrimary = true } } }; var userList = configurationService.GetUserList( new AcadreServiceV7.EmptyRequestType()).ToList(); var user = userList.SingleOrDefault(u => u.Initials == caseResponsible); if (user != null) { caseFile.CaseFileManagerReference = user.Id; } createCaseRequest.CaseFile = caseFile; var createCaseResponse = caseService.CreateCase(createCaseRequest); // check for multicase (samlesag) response. if (createCaseResponse.CreateCaseAndAMCResult == AcadreServiceV7.CreateCaseAndAMCResultType.CaseNotCreatedAndListAMCReceived) { // create the case in all the multicases createCaseRequest.MultiCaseIdentifiers = createCaseResponse.MultiCaseIdentifiers; createCaseResponse = createCaseResponse = caseService.CreateCase(createCaseRequest); } return(createCaseResponse.CaseFileIdentifier); }
// Changes the Responsible CaseManager on all the childrens cases where the CaseManagerInitials = oldCaseManagerInitials. If oldCaseManagerInitials is "" then all child cases CaseManager is changed to newCaseManagerInitials. public void ChangeChildResponsible(string oldCaseManagerInitials, string newCaseManagerInitials, int newAcadreOrgID, int CaseID) { var userList = configurationService.GetUserList(new AcadreServiceV7.EmptyRequestType()).ToList(); var newUser = userList.SingleOrDefault(ut => ut.Initials == newCaseManagerInitials); if (newUser == null) { throw new Exception("Der fandtes ikke en bruger i Acadre med initialerne " + newCaseManagerInitials); } AcadreServiceV7.BUCaseFileType Case = (AcadreServiceV7.BUCaseFileType)caseService.GetCase(CaseID.ToString()); if (!Case.CustomFieldCollection.Single(x => x.Name == "df1").Value.Contains("Løbende ")) { Case.CaseFileManagerReference = newUser.Id; Case.AdministrativeUnit = new AcadreServiceV7.AdministrativeUnitType[] { new AcadreServiceV7.AdministrativeUnitType() { AdministrativeUnitReference = newAcadreOrgID.ToString() } }; try { caseService.UpdateCase(Case); } catch (Exception e) { throw new Exception("Kunne ikke opdatere Acadre sagen", e); } return; } string CPR = Case.CaseFileTitleText.Substring(0, 10); AcadreServiceV7.AdvancedSearchCaseCriterionType2 searchCriterion = new AcadreServiceV7.AdvancedSearchCaseCriterionType2(); searchCriterion.CaseFileTitleText = CPR + "*"; searchCriterion.CaseFileTypeCode = CaseFileTypeCode; foreach (AcadreServiceV7.CaseSearchResponseType foundCase in caseService.SearchCases(searchCriterion)) { Case = (AcadreServiceV7.BUCaseFileType)caseService.GetCase(foundCase.CaseFileReference); var user = userList.SingleOrDefault(ut => ut.Id == Case.CaseFileManagerReference); if (user == null) { user = new AcadreServiceV7.UserType { Initials = "" } } ; if (user.Initials == oldCaseManagerInitials || oldCaseManagerInitials == "" || user.Initials == "") { Case.CaseFileManagerReference = newUser.Id; Case.AdministrativeUnit = new AcadreServiceV7.AdministrativeUnitType[] { new AcadreServiceV7.AdministrativeUnitType() { AdministrativeUnitReference = newAcadreOrgID.ToString() } }; try { caseService.UpdateCase(Case); } catch (Exception e) { throw new Exception("Kunne ikke opdatere Acadre sagen", e); } } } }
public int CreateChildJournal(string CPR, int AcadreOrgID, string CaseManagerInitials) { CPR = CPR.Replace("-", "").Trim(); if (!CPRBrokerService.IsValidCPR(CPR)) { throw new Exception("CPR-nummeret (" + CPR + ") er ikke gyldigt."); } string KLE = "27.24.00"; string CaseContent = "Løbende journal"; string PublicationRestriction = "2"; // Aktindsigt, 2 = Delvis string CaseStatus = "B"; // Sagsstatus, B = Under Behandling string CaseDisposalCode = "B"; // Kassationskode, B = Bevares string DeletionCode = "P1825D"; // Slettekode string AccessCode = "BN"; // Adgangskode, BN = Børnesager string Classification = "G01"; // Facet string SubType = "Person"; // Undertype int SpecialistID = 8; int RecommendationID = 1; int CategoryID = 4; string KLEtitle = configurationService.GetCategoryList(new AcadreServiceV7.EmptyRequestType()).ToList().Where(x => x.Principle.Literal == "KL Koder").Where(x => x.Literal == KLE).First().Title; // Find informationer om barnet og eventuelle eksisterende sager var childinfo = GetChildInfo(CPR); // Hvis der blev fundet en åben sag så returneres denne sags CaseID. Hvis der kun blev fundet en lukket sag så returneres -1. if (childinfo.CaseID != 0 && !caseService.Url.Contains("esdhtest2")) { if (!childinfo.CaseIsClosed) { return(childinfo.CaseID); } else { return(-1); } } // look up contact by cpr number var PrimaryContact = GetCreateAcadreContact(CPR); // Forældre skal også med som kontakter var parents = new List <SimplePerson>(); parents.AddRange(childinfo.Mom ?? new SimplePerson[] { }); parents.AddRange(childinfo.Dad ?? new SimplePerson[] { }); var parentsGUI = new List <string>(); foreach (var parent in parents) { parentsGUI.Add(GetCreateAcadreContact(parent.CPR).GUID); } var createCaseRequest = new AcadreServiceV7.CreateCaseRequestType(); AcadreServiceV7.CaseFileType3 caseFile; //AcadreServiceV7.BUCaseFileType caseFile = new AcadreServiceV7.BUCaseFileType(); if (CaseFileTypeCode == "BUSAG") { AcadreServiceV7.BUCaseFileType BUcaseFile = new AcadreServiceV7.BUCaseFileType(); BUcaseFile.SpecialistId = SpecialistID; // Faggruppe BUcaseFile.SpecialistIdSpecified = true; BUcaseFile.RecommendationId = RecommendationID; // Henvendelse BUcaseFile.RecommendationIdSpecified = true; BUcaseFile.CategoryId = CategoryID; // Kategori BUcaseFile.CategoryIdSpecified = true; caseFile = BUcaseFile; } else { caseFile = new AcadreServiceV7.CaseFileType3(); } caseFile.CaseFileTypeCode = CaseFileTypeCode; caseFile.Year = DateTime.Now.Year.ToString(); caseFile.CreationDate = DateTime.Now; caseFile.CaseFileTitleText = string.Format("{0} - {1} - {2}", CPR, childinfo.SimpleChild.FullName, KLEtitle); caseFile.TitleAlternativeText = childinfo.SimpleChild.FullName; caseFile.RestrictedFromPublicText = PublicationRestriction; caseFile.CaseFileStatusCode = CaseStatus; caseFile.CaseFileDisposalCode = CaseDisposalCode; caseFile.DeletionCode = DeletionCode; caseFile.AccessCode = AccessCode; caseFile.SubType = SubType; caseFile.AdministrativeUnit = new AcadreServiceV7.AdministrativeUnitType[] { new AcadreServiceV7.AdministrativeUnitType() { AdministrativeUnitReference = AcadreOrgID.ToString() } }; caseFile.CustomFieldCollection = new AcadreServiceV7.CustomField[] { new AcadreServiceV7.CustomField() { Name = "df1", Value = CaseContent } , new AcadreServiceV7.CustomField() { Name = "df25", Value = PrimaryContact.GUID } //contactGUID }; caseFile.Classification = new AcadreServiceV7.ClassificationType { Category = new AcadreServiceV7.CategoryType[] { new AcadreServiceV7.CategoryType() { Principle = "KL Koder", Literal = KLE } , new AcadreServiceV7.CategoryType() { Principle = "Facetter", Literal = Classification } } }; // Barnet tilføjes som primær part og forældre tilføjes som parter caseFile.Party = new AcadreServiceV7.PartyType[1 + parentsGUI.Count]; caseFile.Party[0] = new AcadreServiceV7.PartyType() { CreationDate = DateTime.Now , ContactReference = PrimaryContact.GUID , PublicAccessLevelReference = "3" , IsPrimary = true }; int i = 1; foreach (var parentGUI in parentsGUI) { caseFile.Party[i] = new AcadreServiceV7.PartyType() { CreationDate = DateTime.Now , ContactReference = parentGUI , PublicAccessLevelReference = "3" , IsPrimary = false }; i++; } createCaseRequest.CaseFile = caseFile; var userList = configurationService.GetUserList(new AcadreServiceV7.EmptyRequestType()).ToList(); var user = userList.SingleOrDefault(ut => ut.Initials == CaseManagerInitials); if (user != null) { createCaseRequest.CaseFile.CaseFileManagerReference = user.Id; } //createCaseRequest.CaseFile. var createCaseResponse = caseService.CreateCase(createCaseRequest); // check for multicase (samlesag) response. if (createCaseResponse.CreateCaseAndAMCResult == AcadreServiceV7.CreateCaseAndAMCResultType.CaseNotCreatedAndListAMCReceived) { // create the case in all the multicases createCaseRequest.MultiCaseIdentifiers = createCaseResponse.MultiCaseIdentifiers; createCaseResponse = createCaseResponse = caseService.CreateCase(createCaseRequest); } return(int.Parse(createCaseResponse.CaseFileIdentifier)); }