Skip to content

Commit

Permalink
Freitag 12:25
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Hornburger committed Mar 22, 2024
1 parent f4f47ad commit d5a8a61
Show file tree
Hide file tree
Showing 8 changed files with 380 additions and 21 deletions.
2 changes: 2 additions & 0 deletions src/constclass.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ export class Constclass {

public readonly NONE: string;
public readonly StandortecollectionName: string;
public readonly FilescollectionName: string;
public readonly MitarbeitercollectionName: string;
public readonly ProjektecollectionName: string;
public readonly SettingscollectionName: string;
Expand All @@ -20,6 +21,7 @@ export class Constclass {

this.NONE = 'none';
this.StandortecollectionName = 'standorte';
this.FilescollectionName = 'files';
this.MitarbeitercollectionName = 'mitarbeiter';
this.SettingscollectionName = 'mitarbeitersettings';
this.ProjektecollectionName = 'projekte';
Expand Down
174 changes: 174 additions & 0 deletions src/database/filesdbclass.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
import {Document, DocumentQuery, model, Model} from "mongoose";
import {DebugClass} from "../debug";
import {Constclass} from "../constclass";
import * as mongoose from "mongoose";
import {ITeamsfilesstruktur, Teamsfileshema} from "../datenstrukturen/teamsfilesstruktur_server";
import {Projektpunktshema} from "../datenstrukturen/projektpunktestruktur_server";

export class FilesDBClass {

private Debug: DebugClass;
private Const: Constclass;

constructor() {

this.Debug = new DebugClass();
this.Const = new Constclass();
}

public RemoveTeamsfile(teamsfile: ITeamsfilesstruktur) {

try {

let FilesmodelClass: mongoose.Model<mongoose.Document>;

return new Promise((resolve, reject) => {

FilesmodelClass = model(this.Const.FilescollectionName, Teamsfileshema);

FilesmodelClass.deleteOne({_id: teamsfile._id} ).then(() => {

resolve(true);

}).catch((error) => {

reject(error);
});

});

} catch (error) {

this.Debug.ShowErrorMessage(error.message, error, 'FilesDBClass', 'RemoveTeamsfile');
}

}

public ReadFilesliste(projektkey: string, filetype: string): Promise<any> {

try {

let FilesmodelClass: mongoose.Model<mongoose.Document>;
let Liste: ITeamsfilesstruktur[] = [];
let Filter: any;

if(filetype === 'Any') {

Filter = { Projektkey: projektkey };
}
else {

Filter = { Filetyp: filetype };
}

return new Promise((resolve, reject) => {

FilesmodelClass = model(this.Const.FilescollectionName, Teamsfileshema);

FilesmodelClass.find(Filter).then((data: any) => {

data.forEach((teamsfile) => {

Liste.push(teamsfile._doc);
});

resolve(Liste);

console.log('');

}).catch((error: any) => {

reject(error);
});

});

} catch (error) {

this.Debug.ShowErrorMessage(error.message, error, 'FilesDBClass', 'ReadFileliste');
}
}

public AddFiles(data: ITeamsfilesstruktur):Promise<any> {

try {

let Filesmodel: mongoose.Document;

return new Promise<any>((resolve, reject) => {

delete data._id;

Filesmodel = this.GetFilesModel(data);

Filesmodel.save().then((result: Document<any>) => {

resolve(result);

}).catch((error) => {

reject(error);
});
});

} catch (error) {

this.Debug.ShowErrorMessage(error.message, error, 'FilesDBClass', 'AddFile');
}
}

public UpdateFiles(data: ITeamsfilesstruktur):Promise<any> {

try {

let FilesmodelClass: mongoose.Model<mongoose.Document>;

return new Promise<any>((resolve, reject) => {

FilesmodelClass = model(this.Const.FilescollectionName, Teamsfileshema);

FilesmodelClass.findById(data._id).then((standort: mongoose.Document) => {

if(standort) {

standort.set(data);
standort.save().then((result: Document) => {

resolve(result);

}).catch((error) => {

reject(error);
});
}
else {

resolve(null);
}
}).catch((error) => {

reject(error);
});
});

} catch (error) {

this.Debug.ShowErrorMessage(error.message, error, 'FilesDBClass', 'UpdateFile');
}
}

public GetFilesModel(data: ITeamsfilesstruktur): mongoose.Document {

try {

const FilesmodelClass = model(this.Const.FilescollectionName, Teamsfileshema);
const Filesmodel: mongoose.Document = new FilesmodelClass(data);

return Filesmodel;
}
catch (error) {

this.Debug.ShowErrorMessage(error.message, error, 'FilesDBClass', 'GetStandortModel');
}
}
}
16 changes: 16 additions & 0 deletions src/datenstrukturen/aufgabenpersonenfilterstruktur_server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import mongoose from "mongoose";

interface IAufgabenpersonenfilterstruktur {

Projektkey: string;
PersonenlisteID: string[];
};

const Aufgabenpersonenfiltershema = new mongoose.Schema({

Projektkey: {type: String, required: false},
PersonenlisteID: {type: [String], required: false},

}, {_id: false});

export { IAufgabenpersonenfilterstruktur, Aufgabenpersonenfiltershema };
16 changes: 5 additions & 11 deletions src/datenstrukturen/mitarbeitersettingsstruktur_server.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import mongoose from "mongoose";
import {Aufgabenansichtshema, IAufgabenansichtstruktur} from "./aufgabenansichtstruktur_server";
import {Aufgabenpersonenfiltershema, IAufgabenpersonenfilterstruktur} from "./aufgabenpersonenfilterstruktur_server";

interface IMitarbeitersettingsstruktur {

Expand All @@ -16,17 +17,6 @@ interface IMitarbeitersettingsstruktur {
HauptkostengruppeFilter: number;
UnterkostengruppeFilter: number;

/*
AufgabenShowOffen: boolean;
AufgabenShowGeschlossen: boolean;
AufgabenShowBearbeitung: boolean;
AufgabenShowRuecklauf: boolean;
AufgabenShowBilder: boolean;
AufgabenShowMeilensteinOnly: boolean;
AufgabenShowMeilensteine: boolean;
*/

Aufgabenansicht: IAufgabenansichtstruktur[];

AufgabenTerminfiltervariante: string;
Expand Down Expand Up @@ -65,6 +55,8 @@ interface IMitarbeitersettingsstruktur {
UrlaubShowMeinenUrlaub: boolean;

LOPListeGeschlossenZeitfilter: number;

AufgabenPersonenfilter: IAufgabenpersonenfilterstruktur[];
};

const Mitarbeitersettingsshema = new mongoose.Schema({
Expand Down Expand Up @@ -125,6 +117,8 @@ const Mitarbeitersettingsshema = new mongoose.Schema({
UrlaubShowFeiertage_DE: {type: Boolean, default: true},
UrlaubShowFeiertage_BG: {type: Boolean, default: true},
UrlaubShowMeinenUrlaub: {type: Boolean, default: true},

AufgabenPersonenfilter: {type: [Aufgabenpersonenfiltershema], default: []},
});

export { Mitarbeitersettingsshema, IMitarbeitersettingsstruktur };
20 changes: 10 additions & 10 deletions src/datenstrukturen/projektestruktur_server.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import * as mongoose from "mongoose";
import mongoose from "mongoose";
import {IVerfasserstruktur, Verfassershema} from "./verfasserstruktur_server";
import {IProjektbeteiligtestruktur, Projektbeteiligteeshema} from "./projektbeteiligtestruktur_server";
import {Bauteilshema, IBauteilstruktur} from "./bauteilstruktur_server";
import {IProjektfirmenstruktur, Projektfirmenshema} from "./projektfirmenstruktur_server";

interface IProjektestruktur {

Expand All @@ -13,7 +12,6 @@ interface IProjektestruktur {
Projektkey: string;
Zeitstempel: number;
Zeitpunkt: string;
Projektmailadresse: string;
Strasse: string;
PLZ: string;
Ort: string;
Expand All @@ -25,7 +23,6 @@ interface IProjektestruktur {
Status: string;
Verfasser: IVerfasserstruktur;
Beteiligtenliste: IProjektbeteiligtestruktur[];
Firmenliste: IProjektfirmenstruktur[];
Bauteilliste: IBauteilstruktur[];
MitarbeiterIDListe: string[];
ProjektIsReal: boolean;
Expand All @@ -46,12 +43,15 @@ interface IProjektestruktur {
TeamsDescription: string;
TeamsName: string;

ProjektlogofileID: string;
Projektlogobreite: string;

BilderFolderID: string;
ProjektFolderID: string;
ProtokolleFolderID: string;
BautagebuchFolderID: string;
BaustellenLOPFolderID: string;
RechnungListefolderID: string;
LastLOPEintragnummer: number;
LastLOPEintragnummer: number;
};

const Projekteshema = new mongoose.Schema({
Expand All @@ -61,7 +61,6 @@ const Projekteshema = new mongoose.Schema({
StellvertreterID: {type: String, required: false},
StandortID: {type: String, required: false},
Projektkey: {type: String, required: false},
Projektmailadresse: {type: String, required: false},
Projektkurzname: {type: String, required: false},
OutlookkategorieID: {type: String, required: false},
Projektnummer: {type: String, required: false},
Expand Down Expand Up @@ -92,21 +91,22 @@ const Projekteshema = new mongoose.Schema({
Verfasser: Verfassershema,
Beteiligtenliste: [Projektbeteiligteeshema],
Bauteilliste: [Bauteilshema],
Firmenliste: [Projektfirmenshema],
MitarbeiterIDListe: [{type: String}],

LastLOPEintragnummer: {type: Number, required: false},
TeamsID: {type: String, required: false},
TeamsDescription: {type: String, required: false},
TeamsName: {type: String, required: false},

ProjektlogofileID: {type: String, required: false},
Projektlogobreite: {type: String, required: false},

ProjektFolderID: {type: String, required: false},
ProtokolleFolderID: {type: String, required: false},
BautagebuchFolderID: {type: String, required: false},
BaustellenLOPFolderID: {type: String, required: false},
RechnungListefolderID: {type: String, required: false}
BilderFolderID: {type: String, required: false},
});

export { IProjektestruktur, Projekteshema };


48 changes: 48 additions & 0 deletions src/datenstrukturen/teamsfilesstruktur_server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import {IVerfasserstruktur, Verfassershema} from "./verfasserstruktur_server";
import mongoose from "mongoose";


interface ITeamsfilesstruktur {

_id: string;
id: string;
name: string;
webUrl: string;
size: number;
ProjektID: string;
Projektkey: string;
ProjektpunktID: string;
Filetyp: string;
Leistungsphase: string;
Zeitstempel: number;
Zeitsting: string;
MimeType: string;
DirectoryID: string;
Beschreibung: string;
Verfasser: IVerfasserstruktur;
};

const Teamsfileshema = new mongoose.Schema({

id: {type: String, required: false},
name: {type: String, required: false},
webUrl: {type: String, required: false},
size: {type: Number, required: false},
ProjektID: {type: String, required: false},
Projektkey: {type: String, required: false},
ProjektpunktID: {type: String, required: false},
Filetyp: {type: String, required: false},
Leistungsphase: {type: String, required: false},
Zeitstempel: {type: Number, required: false},
Zeitsting: {type: String, required: false},
MimeType: {type: String, required: false},
DirectoryID: {type: String, required: false},
Beschreibung: {type: String, required: false},
Verfasser: Verfassershema
});

export { ITeamsfilesstruktur, Teamsfileshema };




Loading

0 comments on commit d5a8a61

Please sign in to comment.