コード例 #1
0
        public DomainView GetNewModel()
        {
            var model = new DomainView();

            model.LDAPPort = Convert.ToInt32(ConfigurationManager.AppSettings.Get("LDAPDefaultPort"));
            return(model);
        }
コード例 #2
0
 public void Save(DomainView viewTable)
 {
     if (viewTable.Id == null)
     {
         var domainTable = new DomainTable();
         Mapper.Map(viewTable, domainTable);
         SaveDomain(domainTable);
     }
     else
     {
         var domainTable = Find(viewTable.Id);
         Mapper.Map(viewTable, domainTable);
         SaveDomain(domainTable);
     }
 }
コード例 #3
0
ファイル: DomainController.cs プロジェクト: csuffyy/Docflow
 public ActionResult Edit(DomainView model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             _Service.Save(model);
             return(RedirectToAction("Index"));
         }
         catch (Exception e)
         {
             ModelState.AddModelError(string.Empty, e.GetOriginalException().Message);
         }
     }
     return(View(model));
 }
コード例 #4
0
ファイル: Domains.cs プロジェクト: vincenthfrance/ISPCore
        public IActionResult Index(bool ajax, int page = 1, string search = null, string sort = null)
        {
            int pageSize = 12;

            #region Локальный метод - NavPageSize
            int NavPageSize()
            {
                int x = (page % 5);

                if (x == 0)
                {
                    return(pageSize + 1);
                }

                return((pageSize * (5 - x)) + 1);
            }

            #endregion

            #region Статистика запросов за прошлую минуту
            Dictionary <int, ulong> numberOfRequestsPerMinute = new Dictionary <int, ulong>();
            {
                if (memoryCache.TryGetValue(KeyToMemoryCache.IspNumberOfRequestToMinutes(DateTime.Now.AddMinutes(-1)), out IDictionary <string, NumberOfRequestMinute> data))
                {
                    foreach (var dt in data)
                    {
                        if (numberOfRequestsPerMinute.TryGetValue(dt.Value.DomainID, out ulong item))
                        {
                            numberOfRequestsPerMinute[dt.Value.DomainID] = item + dt.Value.NumberOfRequest;
                        }
                        else
                        {
                            numberOfRequestsPerMinute.Add(dt.Value.DomainID, dt.Value.NumberOfRequest);
                        }
                    }

                    #region Сортируем массив
                    if (sort == "req")
                    {
                        numberOfRequestsPerMinute = numberOfRequestsPerMinute.OrderByDescending(i => i.Value).Skip((page * pageSize) - pageSize).Take(NavPageSize()).ToDictionary(i => i.Key, i => i.Value);
                    }
                    else
                    {
                        numberOfRequestsPerMinute = numberOfRequestsPerMinute.OrderByDescending(i => i.Value).ToDictionary(i => i.Key, i => i.Value);
                    }
                    #endregion
                }
            }
            #endregion

            // Поиск / Сортировка
            Func <Domain, bool> predicat = i => search == null || i.host.Contains(search);
            if (sort == "req")
            {
                predicat = i => numberOfRequestsPerMinute.ContainsKey(i.Id);
            }

            // Список доменов
            List <DomainView> domains = new List <DomainView>();

            // Domain To DomainView
            foreach (var domain in coreDB.RequestsFilter_Domains.AsNoTracking().Include(t => t.Templates).AsEnumerable().Where(predicat).Reverse().Skip((page * pageSize) - pageSize).Take(NavPageSize()))
            {
                var model = new DomainView()
                {
                    Id      = domain.Id,
                    host    = domain.host,
                    Protect = domain.Protect
                };

                /// Количество запросов за прошлую минуту
                if (numberOfRequestsPerMinute.TryGetValue(domain.Id, out ulong ReqToMinute))
                {
                    model.ReqToMinute = ReqToMinute;
                }

                #region Имена шаблонов
                StringBuilder TemplateName = new StringBuilder();
                foreach (var tpl in domain.Templates)
                {
                    TemplateName.Append(coreDB.RequestsFilter_Templates.GetTemplateName(tpl.Template, "") + ", ");
                }
                model.Templates = Regex.Replace(TemplateName.ToString(), ",([ ]+)?$", "");
                #endregion

                // Модель
                domains.Add(model);
            }

            // Дополнительная информация
            ViewBag.Info = page == 1 && search == null && sort == null ? "У вас еще нет добавленных доменов" : "Нет данных для вывода";

            // Сортировка по "req/s"
            if (sort == "req")
            {
                return(View("~/Views/RequestsFilter/Domains.cshtml", new NavPage <DomainView>(domains.OrderByDescending(i => i.ReqToMinute).ToList(), HttpContext, pageSize, page, overrideMass: true), ajax));
            }

            // Базовая сортировка
            return(View("~/Views/RequestsFilter/Domains.cshtml", new NavPage <DomainView>(domains, HttpContext, pageSize, page, overrideMass: true), ajax));
        }