private void DoAddition(DialogConfigBLEntities entities, AntragItem item, AntragItem.Item.SubItem x, List <string> errors)
        {
            var existingItem = entities.UserMappings.Find(x.handyNummer, item.Data.datenbankId);

            if (existingItem == null)
            {
                var um = new UserMapping()
                {
                    DatenbankId = item.Data.datenbankId,
                    HandyNummer = x.handyNummer,
                    IsAdmin     = x.isAdmin,
                    IsGesperrt  = x.isGesperrt,
                    Name        = x.name,
                    Vorname     = x.vorname,
                    Module      = x.module,
                    ShortName   = x.shortName
                };
                entities.UserMappings.Add(um);
                try
                {
                    entities.SaveChanges();
                }
                catch (Exception ex)
                {
                    errors.Add(string.Format("ADDITION: Ausnahme: '{2}' für HandyNummer '{0}' und DatanbankId {1}", ex.Message, x.handyNummer, item.Data.datenbankId));
                }
            }
            else
            {
                errors.Add(string.Format("ADDITION: Einen Eintrag in Tabelle UserMappings mit HandyNummer '{0}' und DatanbankId {1} existiert bereits und keine Duplizierungen sind erlaubt!", x.handyNummer, item.Data.datenbankId));
            }
        }
        private void DoModification(DialogConfigBLEntities entities, AntragItem item, AntragItem.Item.SubItem x, List <string> errors)
        {
            var p = from z in entities.UserMappings
                    where z.HandyNummer == x.handyNummer && z.DatenbankId == item.Data.datenbankId
                    select z;

            if (p.Any())
            {
                var um = p.First();
                um.IsAdmin    = x.isAdmin;
                um.IsGesperrt = x.isGesperrt;
                um.Name       = x.name;
                um.Vorname    = x.vorname;
                um.ShortName  = x.shortName;
                um.Module     = x.module;
                try
                {
                    entities.SaveChanges();
                }
                catch (Exception ex)
                {
                    errors.Add(string.Format("MODIFICATION: Ausnahme: '{2}' für HandyNummer '{0}' und DatanbankId {1}", ex.Message, x.handyNummer, item.Data.datenbankId));
                }
            }
            else
            {
                errors.Add(string.Format("MODIFICATION: Keinen Eintrag in Tabelle UserMappings mit HandyNummer '{0}' und DatanbankId {1} gefunden!", x.handyNummer, item.Data.datenbankId));
            }
        }
        private void DoDeletion(DialogConfigBLEntities entities, AntragItem item, AntragItem.Item.SubItem x, List <string> errors)
        {
            var p = from z in entities.UserMappings
                    where z.HandyNummer == x.handyNummer && z.DatenbankId == item.Data.datenbankId
                    select z;

            if (p.Any())
            {
                var um = p.First();
                entities.UserMappings.Remove(um);
                try
                {
                    entities.SaveChanges();
                }
                catch (Exception ex)
                {
                    errors.Add(string.Format("DELETION: Ausnahme: '{2}' für HandyNummer '{0}' und DatanbankId {1}", ex.Message, x.handyNummer, item.Data.datenbankId));
                }
            }
            else
            {
                errors.Add(string.Format("DELETION: Keinen Eintrag in Tabelle UserMappings mit HandyNummer '{0}' und DatanbankId {1} gefunden!", x.handyNummer, item.Data.datenbankId));
            }
        }
Exemple #4
0
        private async void Confirm(int antragId)
        {
            var dr = MessageBox.Show("Wollen sie den Antrag (" + antragId + ") wirklich abschicken?", "Bestätigung", MessageBoxButton.YesNo, MessageBoxImage.Warning);

            if (dr != MessageBoxResult.Yes)
            {
                return;
            }
            bool inDesigner = DesignerProperties.GetIsInDesignMode(new DependencyObject());

            if (!inDesigner)
            {
                var httpClient = new HttpClient();
                using (httpClient)
                {
                    var ignoreList = new List <string>();
                    foreach (var antrag in _Liste)
                    {
                        foreach (var item in antrag.Data.items)
                        {
                            if (item.isIgnoriert)
                            {
                                ignoreList.Add(item.handyNummer);
                            }
                        }
                    }
                    var ignore = "";
                    if (ignoreList.Count > 0)
                    {
                        ignore = string.Join(",", ignoreList.ToArray());
                    }
                    httpClient.DefaultRequestHeaders.Add("user-agent",
                                                         "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
                    var uri      = ConfigurationManager.AppSettings["DialogPortal"] + "/Admin/ConfirmAntrag?antragId=" + antragId + "&ignore=" + ignore;
                    var response =
                        await httpClient.GetAsync(new Uri(uri, UriKind.Absolute));

                    response.EnsureSuccessStatusCode();
                    var result = await response.Content.ReadAsStringAsync();

                    AntragItem itemToRemove = null;
                    if (result == "ok")
                    {
                        foreach (var item in _Liste)
                        {
                            if (item.AntragId == antragId)
                            {
                                itemToRemove = item;
                            }
                        }
                        if (itemToRemove != null)
                        {
                            _Liste.Remove(itemToRemove);
                        }
                    }
                    else
                    {
                        MessageBox.Show(result);
                        // Buhhh
                    }
                }
            }
            else
            {
                AntragItem itemToRemove = null;
                foreach (var item in _Liste)
                {
                    if (item.AntragId == antragId)
                    {
                        itemToRemove = item;
                    }
                }
                if (itemToRemove != null)
                {
                    _Liste.Remove(itemToRemove);
                }
            }
            if (_Liste.Count > 0)
            {
                SelectedAntragId = _Liste[0].AntragId;
            }
        }
        // GET: GetAntrag
        public ActionResult ConfirmAntrag(int antragId, string ignore)
        {
            var ignoreList = new List <string>();

            if (!string.IsNullOrEmpty(ignore))
            {
                ignoreList = ignore.Split(',').ToList();
            }
            var errors = new List <string>();

            try
            {
                var entities = new DialogConfigBLEntities();
                using (entities)
                {
                    var q = from x in entities.Antrags
                            where x.AntragId == antragId
                            select x;
                    // Aktualisieren
                    if (q.Any())
                    {
                        var a    = q.First();
                        var item = new AntragItem()
                        {
                            AntragId = antragId,
                            FormData = a.FormData
                        };
                        //
                        foreach (var x in item.Data.items)
                        {
                            if (ignoreList.Contains(x.handyNummer))
                            {
                                continue;
                            }
                            if (x.status == "modified")
                            {
                                DoModification(entities, item, x, errors);
                            }
                            else if (x.status == "added")
                            {
                                DoAddition(entities, item, x, errors);
                            }
                            else if (x.status == "deleted")
                            {
                                DoDeletion(entities, item, x, errors);
                            }
                            else
                            {
                                errors.Add(string.Format("Status '{0}' unbekannt", x.status));
                            }
                        }
                        if (errors.Count > 0)
                        {
                            return(Content(PrepareErrorMessage(errors)));
                        }
                        else
                        {
                            a.Erledigt = true;
                            entities.SaveChanges(); // wegen a.Erledigt = true!!
                            return(Content("ok"));
                        }
                    }
                    else
                    {
                        errors.Add(string.Format("Antrag in Tabelle Antrags mit antragId {0} nicht vorhanden. Keine Änderung wurde durchgeführt.", antragId));
                        return(Content(PrepareErrorMessage(errors)));
                    }
                }
            }
            catch (Exception ex)
            {
                return(Content(PrepareErrorMessage(ex)));
            }
        }