Exemplo n.º 1
0
        /// <summary>
        /// Fügt einen neuen Kassenabschlussbeleg der Datenbank hinzu
        /// </summary>
        /// <param name="cashClosureID">Kassenabschluss ID</param>
        /// <param name="printDone">Wurde gedruckt</param>
        /// <param name="printUserAccountID">Druckuser</param>
        /// <param name="printDate">Druckdatum</param>
        /// <param name="done">Erledigt</param>
        /// <param name="doneDate">Erledigungsdatum</param>
        /// <param name="doneUserAccountID">Erledigungs User</param>
        /// <param name="revenues">Einnahmen</param>
        /// <param name="expenses">Ausgaben</param>
        /// <param name="sum">Summe</param>
        /// <returns>Die ID des Eintrags in der Datenbank</returns>
        public static int Add(int cashClosureID, bool printDone, DateTime? printDate, bool done,
            DateTime? doneDate, int? printUserAccountID = null, int? doneUserAccountID = null)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var cashClosureReport = new CashClosureReport
                {
                    CashClosure = db.CashClosures.Single(cc => cc.CashClosureID == cashClosureID),
                    PrintDone = printDone,
                    PrintDate = printDate,
                    Done = done,
                    DoneDate = doneDate,
                };

                if (printUserAccountID.HasValue)
                {
                    cashClosureReport.PrintUserAccount = db.UserAccounts.Single(ua => ua.UserAccountID == printUserAccountID.Value);
                }

                if (doneUserAccountID.HasValue)
                    cashClosureReport.DoneUserAccount = db.UserAccounts.Single(ua => ua.UserAccountID == doneUserAccountID.Value);

                db.CashClosureReports.AddObject(cashClosureReport);
                db.SaveChanges();

                return cashClosureReport.CashClosureReportID;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Funktion zum löschen eines vorhandenen Kontos
        /// </summary>
        /// <param name="accountID">Datenbank ID des Accounts</param>
        public static void Delete(int accountID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var account = db.Accounts.Single(a => a.AccountID == accountID);

                db.Accounts.DeleteObject(account);
                db.SaveChanges();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Löscht einen bestehenden Eintrag aus der Datenbank
        /// </summary>
        /// <param name="bookingId">Die ID des Eintrags in der Datenbank</param>
        public static void Delete(int bookingID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var booking = db.Bookings.Single(a => a.BookingID == bookingID);

                db.Bookings.DeleteObject(booking);
                db.SaveChanges();
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Löscht einen bestehenden Eintrag aus der Datenbank
        /// </summary>
        /// <param name="cashClosureID">Die benötigte Kassenabschluss ID</param>
        public static void Delete(int cashClosureID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var cashClosure = db.CashClosures.Single(cc => cc.CashClosureID == cashClosureID);

                db.CashClosures.DeleteObject(cashClosure);
                db.SaveChanges();
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Methode zum löschen eines Eintrags in der Datenbank
        /// </summary>
        /// <param name="formletterPatternID">Die ID des Serienbrief Musters</param>
        public static void Delete(int formletterPatternID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var formletterPattern = db.FormletterPatterns.Single(fp => fp.FormletterPatternID == formletterPatternID);

                db.FormletterPatterns.DeleteObject(formletterPattern);
                db.SaveChanges();
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Methode zum löschen eines Eintrags in der Datenbank
        /// </summary>
        /// <param name="filterSetID"></param>
        public static void Delete(int filterSetID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var filterSet = db.FilterSets.Single(fs => fs.FilterSetID == filterSetID);

                db.FilterSets.DeleteObject(filterSet);
                db.SaveChanges();
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Löscht einen bestehenden Eintrag aus der Datenbank
        /// </summary>
        /// <param name="cashClosureReportID"></param>
        public static void Delete(int cashClosureReportID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var report = db.CashClosureReports.Single(ccr => ccr.CashClosureReportID == cashClosureReportID);

                db.CashClosureReports.DeleteObject(report);
                db.SaveChanges();
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Löscht einen bestehenden Eintrag in der Datenbank
        /// </summary>
        /// <param name="columnAssignmentID"></param>
        public static void Delete(int columnAssignmentID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var columnAssignment = db.ColumnAssignments.Single(ca => ca.ColumnAssignmentID == columnAssignmentID);

                db.ColumnAssignments.DeleteObject(columnAssignment);
                db.SaveChanges();
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Löscht einen bestehenden Einkommen Eintrag aus der Datenbank
        /// </summary>
        /// <param name="revenueID">Die ID des Eintrags in der Datenbank</param>
        public static void Delete(int revenueID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var revenue = db.Revenues.Single(r => r.RevenueID == revenueID);

                db.Revenues.DeleteObject(revenue);
                db.SaveChanges();
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Löscht einen bestehenden Eintrag aus der Datenbank
        /// </summary>
        /// <param name="userAccountID">Die benötigte BenutzerkontenID</param>
        public static void Delete(int userAccountID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var userAccount = db.UserAccounts.Single(u => u.UserAccountID == userAccountID);

                db.UserAccounts.DeleteObject(userAccount);
                db.SaveChanges();

            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Löscht eine Notiz
        /// </summary>
        /// <param name="noteID">Die zu löschende Notiz ID</param>
        public static void Delete(int noteID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var note = db.Notes.Single(n => n.NoteID == noteID);

                db.Notes.DeleteObject(note);
                db.SaveChanges();
            }

            RefreshNoteList();
        }
Exemplo n.º 12
0
        /// <summary>
        /// Fügt einen neuen finanziellen Typ der Datenbank hinzu
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static int Add(string name)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var fundingType = new FundingType { Name = name };

                db.FundingTypes.AddObject(fundingType);
                db.SaveChanges();

                return fundingType.FundingTypeID;
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Fügt einen neuen Titel der Datenbank hinzu
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static int Add(string name)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var title = new Title
                {
                    Name=name
                };

                db.Titles.AddObject(title);
                db.SaveChanges();

                return title.TitleID;
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// Fügt eine neue Teamfunktion der Datenbank hinzu
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static int Add(string name)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var teamFunction = new TeamFunction
                {
                    Name = name
                };

                db.TeamFunctions.AddObject(teamFunction);
                db.SaveChanges();

                return teamFunction.TeamFunctionID;
            }
        }
Exemplo n.º 15
0
        /// <summary>
        /// Methode zum hinzufügen eines neuen Eintrags in der Datenbank
        /// </summary>
        /// <param name="filterID">Die ID des Filters</param>
        /// <param name="name">Name des Filters</param>
        /// <param name="linking">Linking</param>
        /// <returns>Die ID des Eintrags in der Datenbank</returns>
        public static int Add(string name, string linking, int? formletterPatternID = null)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var filterSet = new FilterSet()
                {
                    FormletterPattern = (formletterPatternID.HasValue) ? db.FormletterPatterns.Single(fp => fp.FormletterPatternID == formletterPatternID) : null,
                    Name = name,
                    Linking = linking
                };

                db.FilterSets.AddObject(filterSet);
                db.SaveChanges();

                return filterSet.FilterSetID;
            }
        }
Exemplo n.º 16
0
        /// <summary>
        /// Fügt ein neues ColumnAssignment in der Datenbank hinzu
        /// </summary>
        /// <param name="csvColumn">Die CSV Spalte</param>
        /// <param name="databaseTable">Datenbank Tabelle</param>
        /// <param name="databaseColumn">Datenbank Spalte</param>
        /// <returns>Die ID des Eintrags in der Datenbank</returns>
        public static int Add(int formletterPatternID, string csvColumn, string databaseTable, string databaseColumn)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var columnAssignment = new ColumnAssignment()
                {
                    FormletterPattern = db.FormletterPatterns.Single(fp => fp.FormletterPatternID == formletterPatternID),
                    CsvColumn = csvColumn,
                    DatabaseTable = databaseTable,
                    DatabaseColumn = databaseColumn
                };

                db.ColumnAssignments.AddObject(columnAssignment);
                db.SaveChanges();

                return columnAssignment.ColumnAssignmentID;
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// Fügt ein neues Kind in der Datenbank hinzu
        /// </summary>
        /// <param name="personId">Die Personen ID</param>
        /// <param name="firstname">Vorname</param>
        /// <param name="lastname">Nachname</param>
        /// <param name="dateOfBirth">Geburtsdatum</param>
        /// <param name="isFemale">Wert ob es sich um ein Junge oder Mädchen handelt</param>
        /// <returns>Die ID des Eintrags in der Datenbank</returns>
        public static int Add(int personId, string firstname, string lastname, DateTime dateOfBirth, bool isFemale)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                Child child = new Child()
                {
                    FirstName = firstname,
                    LastName = lastname,
                    DateOfBirth = dateOfBirth,
                    Person = db.Persons.Single(p => p.PersonID == personId),
                    IsFemale = isFemale,
                };

                db.Children.AddObject(child);
                db.SaveChanges();

                return child.ChildID;
            }
        }
Exemplo n.º 18
0
        /// <summary>
        /// Fügt eine neue Notiz der Datenbank hinzu
        /// </summary>
        /// <param name="name">Der Name der Notiz</param>
        /// <param name="description">Die Beschreibung der Notiz</param>
        /// <returns>Gibt die ID des Eintrags aus der Datenbank zurück</returns>
        public static int Add(string name, string description)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var note = new Note()
                {
                    Name = name,
                    Description = description, // max. Länge liegt bei 4000 Zeichen -> DB spezifisch
                    CreationDate = DateTime.Now
                };

                db.Notes.AddObject(note);
                db.SaveChanges();

                RefreshNoteList();

                return note.NoteID;
            }
        }
Exemplo n.º 19
0
        /// <summary>
        /// Methode zum hinzufügen eines neuen Filters
        /// </summary>
        /// <param name="table">Tabelle des Filters</param>
        /// <param name="column">Spalte des Filters</param>
        /// <param name="type">Typ des Filters</param>
        /// <param name="operation">Operation des Filters</param>
        /// <param name="value">Wert des Filters</param>
        /// <returns>Die ID in der Datenbank</returns>
        public static int Add(int filtersetID, string table,  string type, string operation, string value)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var filter = new Filter()
                {
                    FilterSet = db.FilterSets.Single(fs => fs.FilterSetID == filtersetID),
                    Table = table,
                    Type = type,
                    Operation = operation,
                    Value = value
                };

                db.Filters.AddObject(filter);
                db.SaveChanges();

                return filter.FilterID;
            }
        }
Exemplo n.º 20
0
        /// <summary>
        /// Erstellt ein neues Benutzerkonto
        /// </summary>
        /// <param name="username">Benutzername</param>
        /// <param name="password">Passwort</param>
        /// <param name="isAdmin">Ob der Benutzer Administrator Rechte hat</param>
        /// <param name="imageName">Optionales Bild</param>
        /// <returns>Gibt die ID des Eintrags in der Datenbank zurück</returns>
        public static int Add(string username, string password, bool isAdmin, string imageName = null, bool isActive = true)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var userAccount = new UserAccount
                {
                    Username = username,
                    Password = password,
                    IsAdmin = isAdmin,
                    ImageName = imageName,
                    IsActive = isActive,
                };

                db.UserAccounts.AddObject(userAccount);
                db.SaveChanges();

                return userAccount.UserAccountID;
            }
        }
Exemplo n.º 21
0
        /// <summary>
        /// Methode zum einfügen einer neuen Einkommensart
        /// </summary>
        /// <param name="name">Der Name der Einkommensart</param>
        /// <returns>Der ID des Eintrags in der Datenbank</returns>
        public static int Add(string name)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var revenueType = new RevenueType
                {
                    Name = name
                };

                db.RevenueTypes.AddObject(revenueType);
                db.SaveChanges();

                // Liste aktualisieren
                _RevenueTypes = null;
                GetRevenueTypeList();

                return revenueType.RevenueTypeID;
            }
        }
Exemplo n.º 22
0
        /// <summary>
        /// Fügt eine neue Kassenabrechnung der Datenbank hinzu
        /// </summary>
        /// <param name="cashClosureID">Die benötigte Kassenabschluss ID</param>
        /// <param name="printDone">Druck beendet</param>
        /// <param name="printDate">Druckdatum</param>
        /// <param name="printUserAccountID">Druck Benutzer</param>
        /// <param name="revenues">Einnahmen</param>
        /// <param name="expenses">Ausgaben</param>
        /// <param name="sum">Summe</param>
        /// <returns>Die ID des Eintrags in der Datenbank</returns>
        public static int Add(int cashClosureID, bool printDone, DateTime? printDate,
            int? printUserAccountID = null)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var receipt = new CashClosureReceipt
                {
                    CashClosure = db.CashClosures.Single(cc => cc.CashClosureID == cashClosureID),
                    PrintDone = printDone,
                    PrintDate = printDate,
                    PrintUserAccount = (printUserAccountID.HasValue) ? db.UserAccounts.Single(ua => ua.UserAccountID == printUserAccountID.Value) : null,
                };

                db.CashClosureReceipts.AddObject(receipt);
                db.SaveChanges();

                return receipt.CashClosureReceiptID;
            }
        }
Exemplo n.º 23
0
        /// <summary>
        /// Fügt einen Einkommenseintrag der Datenbank hinzu
        /// </summary>
        /// <param name="personID">Die benötigte Personen ID</param>
        /// <param name="revenueTypeID">Die Einkommensart ID</param>
        /// <param name="amount">Der Betrag</param>
        /// <param name="description">Optionale Beschreibung</param>
        /// <returns>Gibt die ID des Eintrags aus der Datenbank zurück</returns>
        public static int Add(int personID, int revenueTypeID, double amount, DateTime startDate, DateTime? endDate = null, string description = null)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var revenue = new Revenue
                {
                    Amount = amount,
                    Description = description,
                    RevenueType = db.RevenueTypes.Single(r => r.RevenueTypeID == revenueTypeID),
                    Person = db.Persons.Single(p => p.PersonID == personID),
                    StartDate = startDate,
                    EndDate = endDate
                };

                db.Revenues.AddObject(revenue);
                db.SaveChanges();

                return revenue.RevenueID;
            }
        }
Exemplo n.º 24
0
        /// <summary>
        /// Methode zum hinzufügen eines neuen Serienbrief Musters
        /// </summary>
        /// <param name="filterSetID">Die FilterSet ID in der Datenbank</param>
        /// <param name="columnAssignmentID">Die ColumnAssignment ID in der Datenbank</param>
        /// <param name="name">Name des Musters</param>
        /// <param name="saluationM"></param>
        /// <param name="saluationF"></param>
        /// <param name="saluationNT"></param>
        /// <param name="filename">Dateiname des Serienbriefs</param>
        /// <param name="text">Text des Serienbriefs</param>
        /// <returns></returns>
        public static int Add(string name, string saluationM, string saluationF, string saluationNT, string filename, string text)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var formletterPattern = new FormletterPattern()
                {
                    Name = name,
                    SaluationM = saluationM,
                    SaluationF = saluationF,
                    SaluationNT = saluationNT,
                    FileName = filename,
                    Text = text
                };

                db.FormletterPatterns.AddObject(formletterPattern);
                db.SaveChanges();

                return formletterPattern.FormletterPatternID;
            }
        }
Exemplo n.º 25
0
        /// <summary>
        /// Fügt einen neuen Kassenabschluss der Datenbank hinzu
        /// </summary>
        /// <param name="cashClosureUserAccountID">Die UserAccount ID</param>
        /// <param name="closureDate">Datum des Kassenabschlusses</param>
        /// <param name="comment">Kommentar</param>
        /// <returns></returns>
        public static int Add(int cashClosureUserAccountID, DateTime closureDate, double revenue, double expense, string comment = null)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var cashClosure = new CashClosure
                {
                    ClosureDate = closureDate,
                    ClosureUserAccount = db.UserAccounts.Single(u => u.UserAccountID == cashClosureUserAccountID),
                    Comment = comment,
                    Sum = (revenue - expense),
                    Expense = expense,
                    Revenue = revenue
                };

                db.CashClosures.AddObject(cashClosure);
                db.SaveChanges();

                return cashClosure.CashClosureID;
            }
        }
Exemplo n.º 26
0
        /// <summary>
        /// Speichert einen neuen Eintrag in der Datenbank
        /// </summary>
        /// <param name="accountID">Konto ID welche benötigt wird</param>
        /// <param name="date">Datum des Eintrags</param>
        /// <param name="amount">Betrag des Eintrags</param>
        /// <param name="purchase"></param>
        /// <param name="srcAccountNumber">Quell Kontonummer</param>
        /// <param name="targetAccountNumber">Ziel Kontonummer</param>
        /// <param name="teamId">Optionale Team ID</param>
        /// <param name="sponsorId">Optionale Sponsor ID</param>
        /// <param name="description">Optionale Beschreibung</param>
        /// <param name="isRevenue">Boolean Wert ob es sich um ein Einkommen oder Ausgabe handelt</param>
        /// <returns>Gibt die ID des gespeicherten Eintrags in der Datenbank zurück</returns>
        public static int Add(int srcAccountID, int targetAccountID,
            double amount, int? personID = null, int? userAccountID = null, string description = null, bool isCorrection = false)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var booking = new Booking()
                {
                    Date = DateTime.Now,
                    Description = description,
                    SourceAccount = db.Accounts.Single(a => a.AccountID == srcAccountID),
                    TargetAccount = db.Accounts.Single(a => a.AccountID == targetAccountID),
                    UserAccount = (userAccountID.HasValue) ? db.UserAccounts.Single(u => u.UserAccountID == userAccountID.Value) : null,
                    Amount = amount,
                    IsCorrection = isCorrection,
                    Person = (personID.HasValue) ? db.Persons.Single(p => p.PersonID == personID.Value) : null,
                };

                db.Bookings.AddObject(booking);
                db.SaveChanges();

                return booking.BookingID;
            }
        }
Exemplo n.º 27
0
        /// <summary>
        /// Methode zum hinzufügen eines neuen Kontos
        /// </summary>
        /// <param name="name">Kontoname</param>
        /// <param name="accountNumber">Kontonummer</param>
        /// <param name="image">Bild</param>
        /// <param name="description">Optionale Beschreibung</param>
        /// <returns>Gibt den ID Wert des gespeicherten Eintrags in der Datenbank zurück</returns>
        public static int Add(string name, int accountNumber, bool isOfficial, ZeroPeriod zeroPeriod,
        bool isFixed,  double? latestBalance = null, string description = null, bool isCapital = false)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var account = new Account()
                {
                    Name = name,
                    Number = accountNumber,
                    Description = description,
                    IsOfficial = isOfficial,
                    ZeroPeriod = (int)zeroPeriod,
                    IsFixed = isFixed,
                    LatestBalance = ((latestBalance.HasValue) ? latestBalance.Value : 0),
                    IsCapital=isCapital
                };

                db.Accounts.AddObject(account);
                db.SaveChanges();

                return account.AccountID;
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// Aktualisiert einen bestehenden Einkommen Eintrag in der Datenbank
        /// </summary>
        /// <param name="revenueID">Die benötigte Einkommens ID</param>
        /// <param name="revenueTypeID">Einkommensart ID</param>
        /// <param name="amount">Der Betrag</param>
        /// <param name="description">Eine Beschreibung</param>
        public static void Update(int revenueID, int revenueTypeID, double amount, string description, DateTime startDate, DateTime? endDate)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var revenue = db.Revenues.Single(r => r.RevenueID == revenueID);
                revenue.RevenueType = db.RevenueTypes.Single(r => r.RevenueTypeID == revenueTypeID);
                revenue.Amount = amount;
                revenue.Description = description;
                revenue.StartDate = startDate;
                revenue.EndDate = endDate;

                db.SaveChanges();
            }
        }
Exemplo n.º 29
0
        /// <summary>
        /// Aktualisiert einen bestehenden Eintrag in der Datenbank
        /// </summary>
        /// <param name="cashClosureReportID"></param>
        /// <param name="cashClosureID">Kassenabschluss ID</param>
        /// <param name="printDone">Wurde gedruckt</param>
        /// <param name="printDate">Druckdatum</param>
        /// <param name="printUserAccountID">Druckuser</param>
        /// <param name="done"></param>
        /// <param name="doneDate"></param>
        /// <param name="doneUserAccountID"></param>
        /// <param name="revenues"></param>
        /// <param name="expenses"></param>
        /// <param name="sum"></param>
        public static void Update(int cashClosureReportID, int cashClosureID, bool printDone, DateTime printDate,
            int? printUserAccountID, bool done, DateTime? doneDate, int? doneUserAccountID)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                var cashClosureReport = db.CashClosureReports.Single(ccr => ccr.CashClosureReportID == cashClosureReportID);
                cashClosureReport.CashClosure = db.CashClosures.Single(cc => cc.CashClosureID == cashClosureID);
                cashClosureReport.PrintDone = printDone;
                cashClosureReport.PrintDate = printDate;
                cashClosureReport.PrintUserAccount = (printUserAccountID.HasValue) ? db.UserAccounts.Single(ua => ua.UserAccountID == printUserAccountID.Value) : null;
                cashClosureReport.Done = done;
                cashClosureReport.DoneDate = doneDate;
                cashClosureReport.DoneUserAccount = (doneUserAccountID.HasValue) ? db.UserAccounts.Single(ua => ua.UserAccountID == doneUserAccountID.Value) : null;

                db.SaveChanges();
            }
        }
Exemplo n.º 30
-16
        /// <summary>
        /// Fügt einen neuen Sponsor der Datenbank hinzu
        /// </summary>
        /// <param name="fundingTypeId">Die ID der Finanzierungsart</param>
        /// <param name="titleId">Die ID des Titels</param>
        /// <param name="firstname">Vorname</param>
        /// <param name="lastname">Nachname</param>
        /// <param name="city">Stadt</param>
        /// <param name="street">Strasse</param>
        /// <param name="zipCode">Postleitzahl</param>
        /// <param name="isFormLetterAllowed">Serienbrief erlaubt</param>
        /// <param name="contactPerson">Kontaktperson</param>
        /// <param name="email">Emailadresse</param>
        /// <param name="faxNo">Faxnummer</param>
        /// <param name="mobileNo">Handynumer</param>
        /// <param name="phoneNo">Telefonnummer</param>
        /// <returns>Die ID des Eintrags in der Datenbank</returns>
        public static int Add(int fundingTypeId, int titleId, string firstname, string lastname, string city, string street, int zipCode,
            bool isFormLetterAllowed, string companyName = null, string contactPerson = null, string email = null, string faxNo = null,
            string mobileNo = null, string phoneNo = null,bool isCompany=false)
        {
            using (TafelModelContainer db = new TafelModelContainer())
            {
                Sponsor sponsor = new Sponsor()
                {
                    CompanyName = companyName,
                    ContactPerson = contactPerson,
                    Email = email,
                    FaxNo = faxNo,
                    FirstName = firstname,
                    LastName = lastname,
                    MobileNo = mobileNo,
                    PhoneNo = phoneNo,
                    Street = street,
                    ZipCode = zipCode,
                    _IsFormLetterAllowed = isFormLetterAllowed,
                    City = city,
                    IsActive = true,
                    IsCompany=isCompany,
                    Title = db.Titles.Single(t => t.TitleID == titleId),
                    FundingType = db.FundingTypes.Single(f => f.FundingTypeID == fundingTypeId),
                };

                db.Sponsors.AddObject(sponsor);
                db.SaveChanges();

                return sponsor.SponsorID;
            }
        }