public static List<Bestellung> GetBestellungen ( string lieferantenId, string deviceLanguage ,ref BusinessLayer.User user)
        {

            // Alle Kunden, die in dem Namen den Begriff <name> enthalten
            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung ();
            var bestellung  = dal_Bestellung.GetBestellungen (lieferantenId, deviceLanguage ,ref user);
            return bestellung;

        }
        public static async System.Threading.Tasks.Task<List<Bestellung>> GetBestellungenAsync( string lieferantenId, string deviceLanguage ,  BusinessLayer.User User, bool offline)
        {
            if (offline == false)
                return await GetBestellungenAsync (lieferantenId, deviceLanguage,  User);

            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung ();
            var anfragen = await System.Threading.Tasks.Task.Run(() =>dal_Bestellung.GetBestellungenAsync (lieferantenId, deviceLanguage,  User, true));
            return anfragen;

        }
        public static List<Bestellung> GetBestellungen( string lieferantenId, string deviceLanguage , ref BusinessLayer.User User, bool offline)
        {
            if (offline == false)
                return GetBestellungen (lieferantenId, deviceLanguage, ref User);

            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung ();
            var anfragen = dal_Bestellung.GetBestellungen (lieferantenId,deviceLanguage, ref User, true);
            return anfragen;

        }
        override public BusinessLayer.Position GetPositionPreis(string kundeId,BusinessLayer.Artikel artikel, string datum, string menge, string deviceLanguage, ref BusinessLayer.User user)
        {

            if (String.IsNullOrEmpty(kundeId))
                kundeId = "0";
            if (String.IsNullOrEmpty(menge))
                menge = "0";

            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
            return dal_Bestellung.GetBestellungPositionPreis(kundeId, artikel, datum, menge, deviceLanguage, ref user);
        }
        public static async System.Threading.Tasks.Task<List<Bestellung>> GetBestellungenAsync ( string lieferantenId, string deviceLanguage , BusinessLayer.User user)
        {

            // Alle Kunden, die in dem Namen den Begriff <name> enthalten
            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung ();
            var anfragen  = await dal_Bestellung.GetBestellungenAsync (lieferantenId, deviceLanguage , user);
            Console.WriteLine ("CommitPost GetBestellungAsync 3");

            return anfragen;

        }
Beispiel #6
0
 public override async System.Threading.Tasks.Task<IEnumerable<Transaction>> GetPostTransactionsAsync ( string deviceLanguage , BusinessLayer.User user)
 {
     try
     {
         // Alle Lieferanten, die in dem Namen den Begriff <name> enthalten
         DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung ();
         var bestellungen = await System.Threading.Tasks.Task.Run(() =>dal_Bestellung.GetBestellungenAsync (ID, deviceLanguage,  user));
         return bestellungen.Cast<BusinessLayer.Transaction>();
     }
     catch (Exception ex)
     {
         DataAccessLayer.ExceptionWriter.WriteLogFile(ex);
         return null;
     }
 }
Beispiel #7
0
 override public IEnumerable<BusinessLayer.Transaction> GetPostTransactions( string deviceLanguage , BusinessLayer.User user)
 {
     try
     {
         DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung ();
         var bestellungen = dal_Bestellung.GetBestellungen (ID, deviceLanguage, ref user);
         return bestellungen.Cast<BusinessLayer.Transaction>();
     }
     catch (Exception ex)
     {
         DataAccessLayer.ExceptionWriter.WriteLogFile(ex);
         return null;
     }
 }
Beispiel #8
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: Lieranten Data
                ResetProgressStatus();

                ProgressStatusWish = 1;
                DataAccessLayer.DAL_Lieferant dal_Lieferant = new DataAccessLayer.DAL_Lieferant();

                // first check permission
                if (!user.HasPermission(DAC_Object.Lieferant,BusinessLayer.DAC_Permission.DOWN_UPLOAD))
                    return DataAccessLayer.SOAResult.TRUE;

                using (await DataAccessLayer.SQLiteUtilities.Mutex.LockAsync ().ConfigureAwait (false)) { 
                    result = await dal_Lieferant.InsertLieferantAsync(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;
                }

                // 2. PersonUmsatz for Charts
                if (result == DataAccessLayer.SOAResult.TRUE && user.HasPermission(DAC_Object.Lieferant_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_Lieferant.InsertPersonUmsatzAsync(PersonUmsatzList, this, user, true));
                    }
                    ProgressStatus += 2;
                }

                // 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.Lieferant_Task,DAC_Permission.DOWN_UPLOAD))
                {

                    ProgressStatusWish += 11;
                    List<Task> tasks = await dal_task.GetTasksAsync(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;

                }

                // 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;
                }

                // 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. Anfragen
                DataAccessLayer.DAL_Anfrage dal_anfrage = new DataAccessLayer.DAL_Anfrage();
                DataAccessLayer.DAL_Position dal_position = new DataAccessLayer.DAL_Position();
                if (result == DataAccessLayer.SOAResult.TRUE && user.HasPermission(DAC_Object.Lieferant_Anfrage,DAC_Permission.DOWN_UPLOAD))
                {
                    ProgressStatusWish += 7;
                    List<Anfrage> anfragen = await dal_anfrage.GetAnfragenAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    foreach (var anfrage in anfragen)
                    {
                        List<Position> positionen = await dal_position.GetPositionenAsync(anfrage.ID, anfrage.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_anfrage.InsertAnfragenAsync(anfragen, user, true));
                    }
                    ProgressStatus += 11;

                }

                // VI. Bestellungen
                DataAccessLayer.DAL_Bestellung dal_bestellung = new DataAccessLayer.DAL_Bestellung();

                if (result == DataAccessLayer.SOAResult.TRUE && user.HasPermission(DAC_Object.Lieferant_Bestellung,DAC_Permission.DOWN_UPLOAD))
                {
                    ProgressStatusWish += 7;
                    List<Bestellung> bestellungen = await dal_bestellung.GetBestellungenAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    foreach (var bestellung in bestellungen)
                    {
                        List<Position> positionen = await dal_position.GetPositionenAsync(bestellung.ID, bestellung.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_bestellung.InsertBestellungenAsync(bestellungen, user, true));
                    }
                    ProgressStatus += 6;

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

            return result;
        }
        override async public Task<BusinessLayer.Position> GetPositionPreisAsync(string kundeId,BusinessLayer.Artikel artikel, string datum, string menge, string deviceLanguage,  BusinessLayer.User user)
        {

            if (String.IsNullOrEmpty(kundeId))
                kundeId = "0";
            if (String.IsNullOrEmpty(menge))
                menge = "0";

            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
            return await dal_Bestellung.GetBestellungPositionPreisAsync(kundeId, artikel, datum, menge, deviceLanguage,  user);
        }
 async public Task<bool> CommitTransactionAsync (BusinessLayer.User user)
 {
     // Commit the transaction (Abgeschlossen)
     DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
     if ( await dal_Bestellung.CommitTransactionAsync(this, user) == DataAccessLayer.SOAResult.TRUE)
         return true;
     else
         return false;
 }
        override async public Task<bool> DeletePositionAsync (int index , BusinessLayer.User user)
        {
            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
            DataAccessLayer.ReturnValue result = await dal_Bestellung.DeletePositionAsync(this.Positions[index], user);
            if ( result.Success == DataAccessLayer.SOAResult.TRUE)
            {
                this.Wert = result.Nummer;
                this.Positions.RemoveAt(index);
                return true;
            }
            else
                return false;

        }
        public bool CommitTransaction(ref BusinessLayer.User user)
        {
            // Commit the transaction (Abgeschlossen)
            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
            if ( dal_Bestellung.CommitTransaction(this, user) == DataAccessLayer.SOAResult.TRUE)
                return true;
            else
                return false;

        }
        override async public void UpdatePositionAsync(int index, string deviceLanguage,  BusinessLayer.User user)
        {
            // Update the position in the DB
            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
            this.Positions[index] = await dal_Bestellung.UpdatePositionAsync(this, this.Positions[index ], deviceLanguage,  user);
            this.Wert = this.Positions[index].KpfWert;

        }
        override public void InsertPosition(BusinessLayer.Position pos, string deviceLanguage, ref BusinessLayer.User user)
        {
            // Insert the new position in the DB
            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
            BusinessLayer.Position temp = dal_Bestellung.InsertPosition(this, pos, deviceLanguage, ref user);

            // Update the Angebot fields after inserting the position
            if (temp == null)
                return;

            this.ID = temp.KpfID;
            this.Wert = temp.KpfWert;
            this.Nummer = temp.KpfNummer;
            if (this.Positions == null)
                this.Positions = new List<Position>();
            this.Waehrung = pos.Waehrung;
            this.Positions.Add(temp);

        }
Beispiel #15
0
        public override async Task<Position> GetPreisBeforeCommitAsync(Position position, string kundeId, Artikel artikel, string datum, string menge, string deviceLanguage, User user)
        {

            if (String.IsNullOrEmpty(kundeId))
                kundeId = "0";
            if (String.IsNullOrEmpty(menge))
                menge = "0";

            DataAccessLayer.DAL_Bestellung dal_Bestellung = new DataAccessLayer.DAL_Bestellung();
            return await dal_Bestellung.GetBestellungPreisBeforeCommitAsync(this,position,kundeId, artikel, datum, menge, deviceLanguage,  user);

        }
        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: Lieranten Data
                DataAccessLayer.PerformanceWatch stopWatch = new DataAccessLayer.PerformanceWatch();
                stopWatch.Start();
                ResetProgressStatus();

                ProgressStatusWish = 1;
                DataAccessLayer.DAL_Lieferant dal_Lieferant = new DataAccessLayer.DAL_Lieferant();


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

                // 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");
                }

                // 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_Lieferant.InsertPersonUmsatzAsync(PersonUmsatzList, this, user, true));
                    }
                    ProgressStatus += 2;
                    stopWatch.Stop();
                    stopWatch.PrintConsole("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;
                    List<Task> tasks = await dal_task.GetTasksAsync(ID, user);
                    ProgressStatus += 11;
                    stopWatch.Stop();
                    stopWatch.PrintConsole("GetTasksAsync");
                    stopWatch.Start();
                    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;
                    stopWatch.Stop();
                    stopWatch.PrintConsole("InsertTasksAsync");

                }

                // 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");
                }

                // 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. Anfragen
                DataAccessLayer.DAL_Anfrage dal_anfrage = new DataAccessLayer.DAL_Anfrage();
                DataAccessLayer.DAL_Position dal_position = new DataAccessLayer.DAL_Position();
                if(result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 7;
                    List<Anfrage> anfragen = await dal_anfrage.GetAnfragenAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    stopWatch.PrintConsole ("GetAnfragAsync: "  + anfragen.Count);
                    foreach (var anfrage in anfragen)
                    {
                        List<Position> positionen = await dal_position.GetPositionenAsync(anfrage.ID, anfrage.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_anfrage.InsertAnfragenAsync(anfragen, user, true));
                    }
                    ProgressStatus += 11;

                }

                // VI. Bestellungen
                DataAccessLayer.DAL_Bestellung dal_bestellung = new DataAccessLayer.DAL_Bestellung();

                if(result == DataAccessLayer.SOAResult.TRUE)
                {
                    stopWatch.Start();
                    ProgressStatusWish += 7;
                    List<Bestellung> bestellungen = await dal_bestellung.GetBestellungenAsync(ID, deviceLanguage, user);
                    ProgressStatus += 7;
                    stopWatch.PrintConsole ("GetbestellungenAsync: " + bestellungen.Count);
                    foreach (var bestellung in bestellungen)
                    {
                        List<Position> positionen = await dal_position.GetPositionenAsync(bestellung.ID, bestellung.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_bestellung.InsertBestellungenAsync(bestellungen, user, true));
                    }
                    ProgressStatus += 6;

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

            return result;
        }