Ejemplo n.º 1
0
        public static Kunde Create(string id , string deviceLanguage ,ref BusinessLayer.User user)
		{
			// das Objekt wird mit einem vorhandenen Kunden initializiert
			DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();
            var kunde = dal_Kunde.GetKunde (id, deviceLanguage, ref user);
			return kunde;

		} 
Ejemplo n.º 2
0
        public static async System.Threading.Tasks.Task<List<Kunde>>   GetKundenAsync( string Name ,  string deviceLanguage ,BusinessLayer.User User)
		{

			DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();
            var kunden =await dal_Kunde.GetKundenAsync (Name, deviceLanguage,  User);
			return kunden;

		}
Ejemplo n.º 3
0
        public static List<Kunde> GetKunden ( string name ,string deviceLanguage ,ref BusinessLayer.User user)
		{
				
			// Alle Kunden, die in dem Namen den Begriff <name> enthalten
			DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();
            var kunden  = dal_Kunde.GetKunden (name ,deviceLanguage, ref user);
			return kunden;

		}
Ejemplo n.º 4
0
        public static List<Kunde> GetKunden( string Name , string deviceLanguage , BusinessLayer.User User, bool offline)
		{
			if (offline == false)
                return GetKunden (Name, deviceLanguage, ref User);

            // Alle Kunden, die in dem Namen den Begriff <name> enthalten
            DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde();
            var kunden = dal_Kunde.GetKunden (Name, deviceLanguage, ref User, true);
			return kunden;

		}
Ejemplo n.º 5
0
        public static async System.Threading.Tasks.Task<List<Kunde>>   GetKundenAsync( string Name ,  string deviceLanguage ,BusinessLayer.User User, bool offline)
		{
			DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();
			if (offline == false)
			{
                var kunden =await dal_Kunde.GetKundenAsync (Name, deviceLanguage,  User);
				return kunden;
			}
			else
			{
                var kunden =await dal_Kunde.GetKundenAsync (Name, deviceLanguage,  User, true);
				return kunden;

			}

		}
Ejemplo n.º 6
0
        override async public void FillAddressenAsync(string deviceLanguage, BusinessLayer.User user)
        {
            // First we get the Rechnungsanschrift
            // if there is noone, the Rechnungsaddresse is the Kundenaddress
            DataAccessLayer.DAL_Kunde dal_kunde = new DataAccessLayer.DAL_Kunde();
            this.RechnungsAnschriften = await dal_kunde.GetRechnungsAnschriftenAsync(this, deviceLanguage,  user);
            if (RechnungsAnschriften == null)
                return ;
            
            if (UtilityClasses.IsNullOrEmpty(this.RechnungsAnschriften))
            {
                Anschrift temp = new Anschrift();
                temp.Name = this.Name;
                temp.ID = this.ID;
                temp.Land = this.Land;
                temp.LandNummer = this.LandNummer;
                temp.PLZ = this.PLZ;
                temp.Ort = this.Ort;
                this.RechnungsAnschriften.Add(temp);
            }

            // Then we get the Lieferanschrift
            // if there is no one, the Lieferaddresse is the Kundenaddresse
            this.LieferAnschriften = await dal_kunde.GetLieferAnschriftenAsync(this, deviceLanguage,  user);
            if (UtilityClasses.IsNullOrEmpty(this.LieferAnschriften))
            {
                Anschrift temp = new Anschrift();
                temp.Name = this.Name;
                temp.ID = this.ID;
                temp.Land = this.Land;
                temp.LandNummer = this.LandNummer;
                temp.PLZ = this.PLZ;
                temp.Ort = this.Ort;
                this.LieferAnschriften.Add(temp);
            }
        }
Ejemplo n.º 7
0
		public override DataAccessLayer.SOAResult Delete (ref BusinessLayer.User user)
		{
			DataAccessLayer.DAL_Kunde dal_kunde = new DataAccessLayer.DAL_Kunde ();

			// There must be an ID to delete the Kunde
			if (ID == null)
				return  DataAccessLayer.SOAResult.FALSE;

			if (dal_kunde.DeleteKunde(this, ref user) == DataAccessLayer.SOAResult.TRUE)
			{
				// clear the values of the Kunde

				ID = "";
			 	Name = "";
				Nummer = "";
				Strasse = "";
				PLZ = "";
				Ort = "";
				Land = "";
				Telefon = "";
				Email = "";
				Geburtsdatum = "";

				return  DataAccessLayer.SOAResult.TRUE;

			}
			else
			{
				return  DataAccessLayer.SOAResult.FALSE;
			}
		}
Ejemplo n.º 8
0
        public override DataAccessLayer.SOAResult DownloadLocal( string deviceLanguage ,ref User user)
        {
            // First we have to save the Kunde data
            DataAccessLayer.SOAResult result;
            DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde();
            result = dal_Kunde.InsertKunde(this, ref user,true);

            // Then the related data
            // 1. Ansprechpartner
            if (result == DataAccessLayer.SOAResult.TRUE)
            {
                ProgressStatusWish += 3;
                List<Ansprechpartner> ansprechpartnern = Ansprechpartner.GetAnsprechpartnern(this.ID, deviceLanguage, ref user);
                ProgressStatus += 3;
                ProgressStatusWish += 1;
                DataAccessLayer.DAL_Ansprechpartner dal_ansprechpartner = new DataAccessLayer.DAL_Ansprechpartner();
                result = dal_ansprechpartner.InsertAnsprechpartnern(ansprechpartnern,user,true);
                ProgressStatus += 1;
            }

            if (result == DataAccessLayer.SOAResult.TRUE)
            {
                ProgressStatusWish += 3;
                List<BusinessLayer.PersonUmsatz> PersonUmsatzList = GetPersonTimeUmsatz("36", ref user);
                ProgressStatus += 3;
                ProgressStatusWish += 4;
                result = dal_Kunde.InsertPersonUmsatz(PersonUmsatzList, this, user, true);
                ProgressStatus += 4;

            }

            DataAccessLayer.DAL_Task dal_task = new DataAccessLayer.DAL_Task();
            if (result == DataAccessLayer.SOAResult.TRUE)
            {
                ProgressStatusWish += 11;
                List<Task> tasks = dal_task.GetTasks(ID, ref user);
                ProgressStatus += 11;
                ProgressStatusWish += 51;
                result = dal_task.InsertTasks(tasks, user, true);
                ProgressStatus += 51;
            }

            if (result == DataAccessLayer.SOAResult.TRUE)
            {
                ProgressStatusWish += 4;
                List<TaskArt> taskArts =  DataAccessLayer.DAL_Task.GetTaskArts(ref user);
                ProgressStatusWish += 1;
                result = dal_task.InsertTaskArts(taskArts, user, true);
                ProgressStatus += 1;
            }

            // III. TaskTyp
            if (result == DataAccessLayer.SOAResult.TRUE)
            {
                ProgressStatusWish += 4;
                List<TaskTyp> taskTyps = DataAccessLayer.DAL_Task.GetTaskTyps(ref user);
                ProgressStatus += 4;
                ProgressStatusWish += 1;
                result = dal_task.InsertTaskTyps(taskTyps, user, true);
                ProgressStatus += 1;
            }

            // IV. Mitarbeiter
            if (result == DataAccessLayer.SOAResult.TRUE)
            {
                ProgressStatusWish += 6;
                List<Mitarbeiter> mitarbeitern = DataAccessLayer.DAL_Task.GetTaskMitarbeitern(ref user);
                ProgressStatus += 6;
                ProgressStatusWish += 3;
                result = dal_task.InsertMitarbeitern(mitarbeitern, user, true);
                ProgressStatus += 3;
            }
                
            // V. Abteilung
            if (result == DataAccessLayer.SOAResult.TRUE)
            {
                ProgressStatusWish += 6;
                List<Abteilung> abteilungen =  DataAccessLayer.DAL_Task.GetTaskAbteilungen(ref user);
                ProgressStatus += 6;
                ProgressStatusWish += 1;
                result =  dal_task.InsertAbteilungen(abteilungen, user, true);
                ProgressStatus += 1;
            }
    
            return result;
        }
Ejemplo n.º 9
0
		async public override Task<DataAccessLayer.SOAResult> SaveAsync ( BusinessLayer.User user, bool Offline)
		{
			if (Offline == false)
				return await SaveAsync ( user);

			// First check if this is an Insert or Update Statement
			DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();
			if (ID == null)
			{
				// This is an Insert statement
				return await dal_Kunde.InsertKundeAsync (this,  user,true);
			}
			else
			{
				// This is an Update statement
				return await dal_Kunde.InsertKundeAsync(this, user,true);
			}
		}
Ejemplo n.º 10
0
		public override DataAccessLayer.SOAResult Save ( BusinessLayer.User user)
		{
			// First check if this is an Insert or Update Statement
			DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();
			if (ID == null)
			{
				// This is an Insert statement
				return dal_Kunde.InsertKunde (this, ref user);
			}
			else
			{
				// This is an Update statement
				return dal_Kunde.UpdateKunde (this,ref user);
			}
		}
Ejemplo n.º 11
0
        async public override System.Threading.Tasks.Task<System.Collections.Generic.List<BusinessLayer.PersonUmsatz>>  GetPersonTimeUmsatzAsync(string  interval ,  BusinessLayer.User user)
        {
            DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();

            if (ID == null)
                return null;

            System.Collections.Generic.List<BusinessLayer.PersonUmsatz> personUmsatzList;
            personUmsatzList = await  dal_Kunde.GetKundeTimeUmsatzAsync (ID, interval,  user);

            return personUmsatzList;

        }
Ejemplo n.º 12
0
        public override System.Collections.Generic.List<BusinessLayer.PersonUmsatz>  GetPersonTimeUmsatz(string  interval ,  BusinessLayer.User user)
        {
            DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();

            if (ID == null)
                return null;

            System.Collections.Generic.List<BusinessLayer.PersonUmsatz> personUmsatzList;
            personUmsatzList = dal_Kunde.GetKundeTimeUmsatz (ID, interval, ref user);

            return personUmsatzList;

        }
Ejemplo n.º 13
0
		public override async System.Threading.Tasks.Task<string> GetUmsatzAsync ( BusinessLayer.User user)
		{
			DataAccessLayer.DAL_Kunde dal_kunde = new DataAccessLayer.DAL_Kunde();

			if(ID == null)
				return "";

			Umsatz = await dal_kunde.GetUmsatzAsync (ID,  user);

			if (Umsatz == "")
				Umsatz = "€0";
			else
				Umsatz = "€" + Umsatz;

			return Umsatz;
		}
Ejemplo n.º 14
0
        public override async System.Threading.Tasks.Task<DataAccessLayer.SOAResult> DownloadLocalAsync(User user, string deviceLanguage)
        {
            Console.WriteLine("__________________________________ START ___________________________________________________");
            DataAccessLayer.SOAResult result = DataAccessLayer.SOAResult.FALSE;
            try
                {
                // In this progress we increase the progress status, too
                // Main step: Kunden Data
                DataAccessLayer.PerformanceWatch stopWatch = new DataAccessLayer.PerformanceWatch();
                stopWatch.Start();
                ResetProgressStatus();

                ProgressStatusWish = 1;
                DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde();

                using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result = await dal_Kunde.InsertKundeAsync(this, user,true); 
                }
//                result = await dal_Kunde.InsertKundeAsync(this,  user,true);
                ProgressStatus = 1;
                stopWatch.Stop();
                stopWatch.PrintConsole ("InsertKundeAsync");



                // Then the related data
                // 1. Ansprechpartner

                if (result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 2;
                    List<Ansprechpartner> ansprechpartnern = await Ansprechpartner.GetAnsprechpartnernAsync(this.ID, deviceLanguage, user);
                    ProgressStatus += 2;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetAnsprechpartnernAsync");
                    stopWatch.Start();
                    ProgressStatusWish += 1;
                    DataAccessLayer.DAL_Ansprechpartner dal_ansprechpartner = new DataAccessLayer.DAL_Ansprechpartner();
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_ansprechpartner.InsertAnsprechpartnernAsync(ansprechpartnern,user,true));
                    }
                    ProgressStatus += 1;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertAnsprechpartnernAsync");
                    ansprechpartnern = null;
                }

                // 2. PersonUmsatz for Charts
                if (result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 3;
                    List<BusinessLayer.PersonUmsatz> PersonUmsatzList =  await GetPersonTimeUmsatzAsync ("36",   user);
                    ProgressStatus += 3;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetPersonTimeUmsatzAsync");
                    stopWatch.Start();
                    ProgressStatusWish += 2;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_Kunde.InsertPersonUmsatzAsync(PersonUmsatzList ,this, user, true));
                    }
                    ProgressStatus += 2;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertPersonUmsatzAsync");
                    PersonUmsatzList = null;
                    stopWatch.PrintConsole ("Finished InsertPersonUmsatzAsync");
                }

                // 3. Tasks and related data
                // I. Tasks
                DataAccessLayer.DAL_Task dal_task = new DataAccessLayer.DAL_Task();
                if (result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 11;
                    Console.WriteLine("Start dal_task.GetTasksAsync");
                    List<Task> tasks = await dal_task.GetTasksAsync(this.ID,  user);
                    ProgressStatus += 11;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetTasksAsync");
                    stopWatch.Start();
                    stopWatch.PrintConsole ("GetTasksAsync2");
                    ProgressStatusWish += 32;
                    stopWatch.PrintConsole ("GetTasksAsync3");

                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                                           result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertTasksAsync(tasks, user, true));
                    }
                    stopWatch.PrintConsole ("GetTasksAsync4");

                    //result = await dal_task.InsertTasksAsync(tasks, user, true);
                    ProgressStatus += 32;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertTasksAsync");
                    tasks = null;

                }

                // II. TaskArt
                if (result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 2;
                    List<TaskArt> taskArts = await DataAccessLayer.DAL_Task.GetTaskArtsAsync(user);
                    ProgressStatus += 2;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetTaskArtsAsync");
                    stopWatch.Start();
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertTaskArtsAsync(taskArts, user, true));
                    }
                    ProgressStatus += 1;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertTaskArtsAsync");
                    taskArts = null;
                }

                // III. TaskTyp
                if (result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 3;
                    List<TaskTyp> taskTyps = await DataAccessLayer.DAL_Task.GetTaskTypsAsync(user);
                    ProgressStatus += 3;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetTaskTypsAsync");
                    stopWatch.Start();
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                                           result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertTaskTypsAsync(taskTyps, user, true));
                    }
                    ProgressStatus += 1;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertTaskTypsAsync");
                }

                // IV. Mitarbeiter
                if (result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 2;
                    List<Mitarbeiter> mitarbeitern = await DataAccessLayer.DAL_Task.GetTaskMitarbeiternAsync(user);
                    ProgressStatus += 2;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetTaskMitarbeiternAsync");
                    stopWatch.Start();
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertMitarbeiternAsync(mitarbeitern, user, true));
                    }
                    ProgressStatus += 1;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertMitarbeiternAsync");
                }

                // V. Abteilung
                if (result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 2;
                    List<Abteilung> abteilungen = await DataAccessLayer.DAL_Task.GetTaskAbteilungenAsync(user);
                    ProgressStatus += 2;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetTaskAbteilungenAsync");
                    stopWatch.Start();
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() => dal_task.InsertAbteilungenAsync(abteilungen, user, true));
                    }
                    ProgressStatus += 1;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertAbteilungenAsync");
                }

                // VI. Angebote
                DataAccessLayer.DAL_Angebot dal_angebot = new DataAccessLayer.DAL_Angebot();
                DataAccessLayer.DAL_Position dal_position = new DataAccessLayer.DAL_Position();
                if(result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 7;
                    List<Angebot> angebote = await dal_angebot.GetAngeboteAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetAngeboteAsync");
                    stopWatch.Start();
                    foreach (var angebot in angebote)
                    {
                        List<Position> positionen = await dal_position.GetPositionenAsync(angebot.ID, angebot.Waehrung, deviceLanguage, user);
                        result = await System.Threading.Tasks.Task.Run(() => dal_position.InsertPositionenAsync(positionen, user, true));
                    }
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("AngebotGetPositionenAsyncInsertPositionenAsync");
                    ProgressStatusWish += 11;
                    stopWatch.Start();
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() => dal_angebot.InsertAngeboteAsync(angebote, user, true));
                    }
                    ProgressStatus += 11;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertAngeboteAsync");

                }

                // VI. Auftraege
                DataAccessLayer.DAL_Auftrag dal_auftrag = new DataAccessLayer.DAL_Auftrag();

                if(result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 7;
                    List<Auftrag> auftraege = await dal_auftrag.GetAuftraegeAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("GetAuftraegeAsync");
                    stopWatch.Start();
                    foreach (var auftrag in auftraege)
                    {

                        List<Position> positionen = await dal_position.GetPositionenAsync(auftrag.ID, auftrag.Waehrung, deviceLanguage, user);
                        result = await System.Threading.Tasks.Task.Run(() => dal_position.InsertPositionenAsync(positionen, user, true));
                    }
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("AuftragGetPositionenAsyncInsertPositionenAsync");
                    ProgressStatusWish += 6;
                    stopWatch.Start();
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                                           result =  await System.Threading.Tasks.Task.Run(() => dal_auftrag.InsertAuftraegeAsync(auftraege, user, true));
                    }
                    ProgressStatus += 6;
                    stopWatch.Stop();
                    stopWatch.PrintConsole ("InsertAuftraegeAsync");
                    Console.WriteLine("__________________________________ END ___________________________________________________");

                }
            }
            catch (Exception ex)
            {
                DataAccessLayer.ExceptionWriter.WriteLogFile(ex);
            }

            return result;

        }
Ejemplo n.º 15
0
        public override async System.Threading.Tasks.Task<DataAccessLayer.SOAResult> DownloadLocalAsync(User user, string deviceLanguage)
        {
            Console.WriteLine("__________________________________ START ___________________________________________________");
            DataAccessLayer.SOAResult result = DataAccessLayer.SOAResult.FALSE;
            try
                {
                // In this progress we increase the progress status, too
                // Main step: Kunden Data
                ResetProgressStatus();

                ProgressStatusWish = 1;
                DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde();

                // first check permission
                if (!user.HasPermission(DAC_Object.Kunde,BusinessLayer.DAC_Permission.DOWN_UPLOAD))
                    return DataAccessLayer.SOAResult.TRUE;
                
                using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result = await dal_Kunde.InsertKundeAsync(this, user,true); 
                }
                ProgressStatus = 1;

                // Then the related data
                // 1. Ansprechpartner
                // We don't check permission for Ansprechpartner, cause Tasks and other modules will use it 
                if (result == DataAccessLayer.SOAResult.TRUE )
                {

                    ProgressStatusWish += 2;
                    List<Ansprechpartner> ansprechpartnern = await Ansprechpartner.GetAnsprechpartnernAsync(this.ID, deviceLanguage, user);
                    ProgressStatus += 2;
                    ProgressStatusWish += 1;
                    DataAccessLayer.DAL_Ansprechpartner dal_ansprechpartner = new DataAccessLayer.DAL_Ansprechpartner();
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_ansprechpartner.InsertAnsprechpartnernAsync(ansprechpartnern,user,true));
                    }
                    ProgressStatus += 1;
                    ansprechpartnern = null;
                }

                // 2. PersonUmsatz for Charts
                if (result == DataAccessLayer.SOAResult.TRUE && user.HasPermission(DAC_Object.Kunde_Chart,DAC_Permission.DOWN_UPLOAD))
                {

                    ProgressStatusWish += 3;
                    List<BusinessLayer.PersonUmsatz> PersonUmsatzList =  await GetPersonTimeUmsatzAsync ("36",   user);
                    ProgressStatus += 3;
                    ProgressStatusWish += 2;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_Kunde.InsertPersonUmsatzAsync(PersonUmsatzList ,this, user, true));
                    }
                    ProgressStatus += 2;
                    PersonUmsatzList = null;

                }

                // 3. Tasks and related data
                // I. Tasks
                DataAccessLayer.DAL_Task dal_task = new DataAccessLayer.DAL_Task();
                if (result == DataAccessLayer.SOAResult.TRUE && user.HasPermission(DAC_Object.Kunde_Task,DAC_Permission.DOWN_UPLOAD))
                {
                    ProgressStatusWish += 11;
                    List<Task> tasks = await dal_task.GetTasksAsync(this.ID,  user);
                    ProgressStatus += 11;
                    ProgressStatusWish += 32;

                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                                           result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertTasksAsync(tasks, user, true));
                    }

                    //result = await dal_task.InsertTasksAsync(tasks, user, true);
                    ProgressStatus += 32;
                    tasks = null;

                }

                // II. TaskArt
                // These are help data, so permission checking is not needed
                if (result == DataAccessLayer.SOAResult.TRUE )
                {

                    ProgressStatusWish += 2;
                    List<TaskArt> taskArts = await DataAccessLayer.DAL_Task.GetTaskArtsAsync(user);
                    ProgressStatus += 2;
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertTaskArtsAsync(taskArts, user, true));
                    }
                    ProgressStatus += 1;
                    taskArts = null;
                }

                // III. TaskTyp
                // These are help data, so permission checking is not needed
                if (result == DataAccessLayer.SOAResult.TRUE )
                {
                    ProgressStatusWish += 3;
                    List<TaskTyp> taskTyps = await DataAccessLayer.DAL_Task.GetTaskTypsAsync(user);
                    ProgressStatus += 3;
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                                           result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertTaskTypsAsync(taskTyps, user, true));
                    }
                    ProgressStatus += 1;
                }

                // IV. Mitarbeiter
                // These are help data, so permission checking is not needed
                if (result == DataAccessLayer.SOAResult.TRUE )
                {
                    ProgressStatusWish += 2;
                    List<Mitarbeiter> mitarbeitern = await DataAccessLayer.DAL_Task.GetTaskMitarbeiternAsync(user);
                    ProgressStatus += 2;
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() =>dal_task.InsertMitarbeiternAsync(mitarbeitern, user, true));
                    }
                    ProgressStatus += 1;
                }

                // V. Abteilung
                // These are help data, so permission checking is not needed
                if (result == DataAccessLayer.SOAResult.TRUE )
                {
                    ProgressStatusWish += 2;
                    List<Abteilung> abteilungen = await DataAccessLayer.DAL_Task.GetTaskAbteilungenAsync(user);
                    ProgressStatus += 2;
                    ProgressStatusWish += 1;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() => dal_task.InsertAbteilungenAsync(abteilungen, user, true));
                    }
                    ProgressStatus += 1;
                }

                // VI. Angebote
                DataAccessLayer.DAL_Angebot dal_angebot = new DataAccessLayer.DAL_Angebot();
                DataAccessLayer.DAL_Position dal_position = new DataAccessLayer.DAL_Position();
                if(result == DataAccessLayer.SOAResult.TRUE && user.HasPermission(DAC_Object.Kunde_Angebot,DAC_Permission.DOWN_UPLOAD))
                {
                    ProgressStatusWish += 7;
                    List<Angebot> angebote = await dal_angebot.GetAngeboteAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    foreach (var angebot in angebote)
                    {
                        List<Position> positionen = await dal_position.GetPositionenAsync(angebot.ID, angebot.Waehrung, deviceLanguage, user);
                        result = await System.Threading.Tasks.Task.Run(() => dal_position.InsertPositionenAsync(positionen, user, true));
                    }
                    ProgressStatusWish += 11;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result =  await System.Threading.Tasks.Task.Run(() => dal_angebot.InsertAngeboteAsync(angebote, user, true));
                    }
                    ProgressStatus += 11;
                }

                // VI. Auftraege
                DataAccessLayer.DAL_Auftrag dal_auftrag = new DataAccessLayer.DAL_Auftrag();

                if(result == DataAccessLayer.SOAResult.TRUE && user.HasPermission(DAC_Object.Kunde_Auftrag,DAC_Permission.DOWN_UPLOAD))
                {
                    ProgressStatusWish += 7;
                    List<Auftrag> auftraege = await dal_auftrag.GetAuftraegeAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    foreach (var auftrag in auftraege)
                    {

                        List<Position> positionen = await dal_position.GetPositionenAsync(auftrag.ID, auftrag.Waehrung, deviceLanguage, user);
                        result = await System.Threading.Tasks.Task.Run(() => dal_position.InsertPositionenAsync(positionen, user, true));
                    }
                    ProgressStatusWish += 6;
                    using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                                           result =  await System.Threading.Tasks.Task.Run(() => dal_auftrag.InsertAuftraegeAsync(auftraege, user, true));
                    }
                    ProgressStatus += 6;
                    Console.WriteLine("__________________________________ END ___________________________________________________");

                }
            }
            catch (Exception ex)
            {
                DataAccessLayer.ExceptionWriter.WriteLogFile(ex);
            }

            return result;

        }
Ejemplo n.º 16
0
		public override string GetUmsatz ( BusinessLayer.User user)
		{
			DataAccessLayer.DAL_Kunde dal_kunde = new DataAccessLayer.DAL_Kunde();

			if(ID == null)
				return "";

			Umsatz = dal_kunde.GetUmsatz (ID, ref user);

			if (Umsatz == "")
				Umsatz = "€0";
			else
				Umsatz = "€" + Umsatz;

			return Umsatz;
		}
Ejemplo n.º 17
0
		public override DataAccessLayer.SOAResult Save (ref BusinessLayer.User user, bool Offline)
		{
			if (Offline == false)
				return Save (ref user);

			// First check if this is an Insert or Update Statement
			DataAccessLayer.DAL_Kunde dal_Kunde = new DataAccessLayer.DAL_Kunde ();
			if (ID == null)
			{
				// This is an Insert statement
				return dal_Kunde.InsertKunde (this, ref user,true);
			}
			else
			{
				// This is an Update statement
				return dal_Kunde.InsertKunde(this,ref user,true);
			}
		}