Ejemplo n.º 1
0
        public async Task <IActionResult> Edit([FromForm] EditEntryModel model)
        {
            var r = new AddEntryResultModel();

            r.Problems = model.Validate();
            r.Name     = model.Name;
            r.Url      = Url.Action("Entry", "Home", new { name = model.Name });

            if (r.Problems.Count == 0)
            {
                try
                {
                    var user = await this.GetCurrentUserAsync();

                    var e = _repo.GetEntryById(model.Id);
                    e.Name            = model.Name;
                    e.Meanings        = model.Meanings;
                    e.EnglishMeanings = model.EnglishMeanings;
                    e.SeeAlso         = model.SeeAlso;
                    e.Examples        = model.Examples;
                    e.TimeAdded       = DateTimeOffset.UtcNow;
                    e.ApprovedBy      = user.UserName;

                    _repo.UpdateEntry(e);
                }
                catch (System.Exception ex)
                {
                    _logger.LogError(ex.ToString());
                    r.Problems.Add("Baza danych się popsuła");
                }
            }

            return(Json(r));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Approve(string id)
        {
            var r = new AddEntryResultModel();

            try
            {
                Entry entry = _repo.GetEntryById(id);
                if (entry != null)
                {
                    var user = await this.GetCurrentUserAsync();

                    entry.ApprovedBy = user.UserName;
                    _repo.UpdateEntry(entry);
                }
                else
                {
                    r.Problems.Add("Nie ma takiego hasła");
                }
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.ToString());
                r.Problems.Add("Błąd bazy danych");
            }

            return(Json(r));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Add([FromForm] AddEntryModel model)
        {
            var r = new AddEntryResultModel();

            r.Problems = model.Validate();
            r.Name     = model.Name;
            r.Url      = Url.Action("Entry", "Home", new { name = model.Name });

            if (r.Problems.Count == 0)
            {
                try
                {
                    var e = new Entry();
                    e.Name            = model.Name;
                    e.Meanings        = model.Meanings;
                    e.EnglishMeanings = model.EnglishMeanings;
                    e.SeeAlso         = model.SeeAlso;
                    e.Examples        = model.Examples;
                    e.TimeAdded       = DateTimeOffset.UtcNow;
                    e.FromInternet    = true;
                    e.IPAddress       = null;

                    // TODO: Clean up this hack
                    r.Problems = _auditor
                                 .PerformEntryAudit(e)
                                 .Where(txt => !txt.Contains("link"))
                                 .ToList();

                    if (r.Problems.Count == 0)
                    {
                        var user = await this.GetCurrentUserAsync();

                        e.ApprovedBy = user?.UserName;

                        _repo.AddEntry(e);
                    }
                }
                catch (System.Exception)
                {
                    r.Problems.Add("Baza danych się popsuła");
                }
            }

            return(Json(r));
        }
Ejemplo n.º 4
0
        public IActionResult Audit(string id)
        {
            var r = new AddEntryResultModel();

            r.Name = id;

            try
            {
                r.Problems = _auditor.PerformEntryAudit(id);
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.ToString());
                r.Problems.Add("Baza danych się popsuła");
            }

            return(Json(r));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Restore(string id)
        {
            var r = new AddEntryResultModel();

            try
            {
                var user = await this.GetCurrentUserAsync();

                _repo.RestoreEntry(id, user.UserName);
            }
            catch (System.Exception ex)
            {
                _logger.LogError(ex.ToString());
                r.Problems.Add("Błąd bazy danych");
            }

            return(Json(r));
        }