using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Service.Plugins; using BS.Shared; using BS.Shared.DataContracts; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace SHKService { public class CustomCustomerService : CustomerService { public override long InsertNewCustomer(CustomerDC pCustomerDc) { var cOid = base.InsertNewCustomer(pCustomerDc); ErstelleOrdnerStruktur(cOid); return cOid; } public override CustomerDC LoadCustomer(long pCustomerOid) { var dc = base.LoadCustomer(pCustomerOid); var folder = DAOFactory.SearchDAO.FindBeWoFolders(TableID.Customer, pCustomerOid); if (folder.Count == 0) { ErstelleOrdnerStruktur(pCustomerOid); } return dc; } private void ErstelleOrdnerStruktur(long cOid) { // HIERACHIE LEVEL - 1 - var folder01 = CreateBeWoFolder("Stammdaten", cOid, null); var folder02 = CreateBeWoFolder("LWV-Hessen", cOid, null); var folder03 = CreateBeWoFolder("Einkommen", cOid, null); var folder04 = CreateBeWoFolder("Medizinisches", cOid, null); var folder05 = CreateBeWoFolder("Versorgungsamt", cOid, null); var folder06 = CreateBeWoFolder("Wohnen", cOid, null); var folder07 = CreateBeWoFolder("gesetzl. Betreuung", cOid, null); var folder08 = CreateBeWoFolder("sonstiges", cOid, null); // HIERACHIE LEVEL - 2 - var folder04_01 = CreateBeWoFolder("Krankenversicherung", cOid, folder04.Oid); var folder04_02 = CreateBeWoFolder("Pflegeversicherung", cOid, folder04.Oid); var folder04_03 = CreateBeWoFolder("Medizinische Unterlagen", cOid, folder04.Oid); var folder06_01 = CreateBeWoFolder("Mietvertrag", cOid, folder06.Oid); } private BeWoFolder CreateBeWoFolder(string name, long? cOid, long? parentOid) { BeWoFolder f = new BeWoFolder(); f.Name = name; f.ObjectOid = cOid; f.ObjectTid = TableID.Customer; f.ParentBeWoFolderOid = parentOid; DAOFactory.GenericDAO.Insert(f); return f; } private void CreateSubFolder(string[] vs, BeWoFolder folder) { foreach (var foldername in vs) { CreateBeWoFolder(foldername, folder.ObjectOid, folder.ParentBeWoFolderOid); } } private void SaveHierarchie(List folderList, long cOid, long? parentOid) { foreach (var item in folderList) { var f = CreateBeWoFolder(item.Name, cOid, parentOid); SaveHierarchie(item.Subfolder, cOid, f.Oid); } } } public class Folder { public Folder(String name) { Name = name; Subfolder = new List(); } public String Name { get; set; } public List Subfolder { get; set; } } }