Exemple #1
0
 private static void ForceAgentContextDatabaseCreation()
 {
     using (var context = AgentContext.getInstance())
     {
         try
         {
             context.Database.Initialize(force: false);
         }
         catch (Exception ex)
         {
             var dbEx = ex.InnerException as DbEntityValidationException;
             if (dbEx != null)
             {
                 StringBuilder errors = new StringBuilder();
                 foreach (var validationErrors in dbEx.EntityValidationErrors)
                 {
                     foreach (var validationError in validationErrors.ValidationErrors)
                     {
                         errors.AppendFormat("Property: {0} Error: {1}; ", validationError.PropertyName, validationError.ErrorMessage);
                     }
                 }
                 LogContext.LogException(dbEx, "AgentRegisterOpenPart", errors.ToString());
             }
             throw new Exception("Произошла ошибка инициализации данных.");
         }
     }
 }
        public override void OnException(ExceptionContext filterContext)
        {
            // Log exception
            filterContext.Exception.Data["Url"]        = filterContext.HttpContext.Request.QueryString;
            filterContext.Exception.Data["Controller"] = filterContext.RouteData.Values["controller"].ToString();
            filterContext.Exception.Data["Action"]     = filterContext.RouteData.Values["action"].ToString();

            LogContext.LogException(filterContext.Exception, "AgentRegisterOpenPart", string.Empty);
            base.OnException(filterContext);
        }
Exemple #3
0
        public ActionResult Search(AgentsSearchViewModel viewModel)
        {
            CaptchaImage image = CaptchaImageCache.GetAndRemoveCachedCaptcha(viewModel.CaptchaId);

            // If image exists in cache (wasn't removed during timeout)
            if (image == null)
            {
                LogContext.LogInformation("Image is not found in cache (AgentsController method Search[HttpPost])", "AgentsController", "captchaImage.Id = " + viewModel.CaptchaId);
                // Redirect to search again
                return(RedirectToAction("Search"));
            }

            if (string.Equals(image.Text, viewModel.CaptchaText, StringComparison.OrdinalIgnoreCase))
            {
                string searchText = viewModel.SearchText;
                if (!string.IsNullOrWhiteSpace(searchText))
                {
                    searchText = searchText.Trim();

                    try
                    {
                        using (new Performance(ms => ViewBag.DbTime = ms))
                        {
                            // Data access
                            viewModel.Agents = AgentSearch.GetAgents(searchText);
                        }

                        if (viewModel.Agents == null)
                        {
                            ViewBag.Error = "Поиск может быть выполнен по ФИО или номеру сертификата. Пожалуйста уточните запрос.";
                        }
                        else if (viewModel.Agents.Count == 0)
                        {
                            ViewBag.Error = "По вашему запросу не найдено ни одного совпадения.";
                        }
                        else if (viewModel.Agents.Count > ConfigurationHelper.MaxAgentsSearchResultSetLength)
                        {
                            ViewBag.Error    = "Вашему запросу соответствует слишком много результатов поиска. Пожалуйста, уточните свой запрос.";
                            viewModel.Agents = null;
                        }
                    }
                    catch (Exception ex)
                    {
                        LogContext.LogException(ex, "AgentRegisterOpenPart", "Was handled in AgentsController Search catch block");
                        ViewBag.Error    = "Произошла системная ошибка. Попробуйте воспользоваться поиском позднее. Приносим извинения за неудобства.";
                        viewModel.Agents = null;
                    }
                }
                else
                {
                    ViewBag.Error = "Поисковая строка не задана.";
                }
            }
            else
            {
                ViewBag.CaptchaError = "Текст не совпадает с указанным на изображении.";
            }

            viewModel.CaptchaImage = CaptchaImageCache.GenerateCaptchaImage();
            return(View(viewModel));
        }