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); }
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)); }