예제 #1
0
        private void BtnDelete_Clicked(object sender, EventArgs e)
        {
            if (bIsRemote)
            {

            }
            else
            {
                string szProjectName = (sender as Button).CommandParameter.ToString();

                Overlay overlay = new Overlay(grdOverlay);
                overlay.ShowQuestion("Soll das Projekt " + szProjectName + " gelöscht werden?", () => {
                    ProjectSql tmpProject = new ProjectSql(szProjectName);
                    if(tmpProject.GetBilderChanged().Count > 0 )
                    {
                        overlay.ShowQuestion("Das Projekt " + szProjectName + " wurde nicht nicht gesichert." + Environment.NewLine +"Soll es trotzdem gelöscht werden?", () =>
                        {
                            DeleteProject(false,szProjectName);
                        });
                    }
                    else
                    {
                        DeleteProject(false,szProjectName);
                    }
                });
            }
        }
예제 #2
0
        // private void DownloadProject
        private async Task SendProjectAsync(string szProjectName, Action<Boolean, Boolean, string> cb)
        {
            if (projects.Any(proj => { return proj.Equals(szProjectName); }))
            {
                // ToDo: open the overlay with the server settings
                // here we expect the current settings to be correct.
                cb(false, false, "sende Projekt " + szProjectName);
                ProjectSql tmpProject = new ProjectSql(szProjectName);
                List<Bild> bilder =  tmpProject.GetBilderChanged();
                Boolean bError = false;
                // send all changed images
                cb(false, false, "sende " + bilder.Count.ToString() + " Bilder");
                foreach (var bild in bilder)
                {
                    cb(false, false, "sende " + bild.Name);
                    bError = ! await ProjectUtil.SendFileAsync(szProjectName, Path.GetFileName(bild.Name));
                    if( bError)
                    {
                        break;
                    }
                }
                if (!bError)
                {
                    // send all changed data
                    foreach (var bild in bilder)
                    {
                        cb(false, false, "sende geänderte Daten für " + bild.Name);

                        BildInfo bi = tmpProject.GetBildInfo(bild.Name, DateTime.Now);

                        string szJson = Newtonsoft.Json.JsonConvert.SerializeObject(bi);
                        if (await ProjectUtil.SendJsonAsync(szProjectName, szJson))
                        {
                            tmpProject.ClearStatus(bild.ID, STATUS.CHANGED);
                        }

                    }
                }
                string szMessage = "";
                if( bError)
                {
                    szMessage = "Es gab einen internen Fehler.";
                }
                cb(true, bError, szMessage);

            }
        }