/// <summary>
 ///     Creates a new instance of <see cref="ReportAnalyzer" />.
 /// </summary>
 /// <param name="hashCodeGenerator">Used to identify is this is a new unique exception</param>
 /// <param name="messageBus">to publish the <see cref="ReportAddedToIncident" /> event</param>
 /// <param name="repository">repos</param>
 public ReportAnalyzer(HashCodeGenerator hashCodeGenerator, IMessageBus messageBus,
                       IAnalyticsRepository repository)
 {
     _hashCodeGenerator = hashCodeGenerator;
     _messageBus        = messageBus;
     _repository        = repository;
 }
Пример #2
0
        public async Task <IActionResult> Register(Register model)
        {
            if (ModelState.IsValid)
            {
                User user = await _context.Users.FirstOrDefaultAsync(u => u.Login == model.Email);

                if (user == null)
                {
                    // добавляем пользователя в бд
                    user = new User {
                        Login = model.Email, Password = HashCodeGenerator.GetHash(model.Password)
                    };
                    Role userRole = await _context.Roles.FirstOrDefaultAsync(r => r.Name == "user");

                    if (userRole != null)
                    {
                        user.Role = userRole;
                    }

                    _context.Users.Add(user);
                    await _context.SaveChangesAsync();

                    //await Authenticate(user); // аутентификация

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("", "Некорректные логин и(или) пароль");
                }
            }
            return(View(model));
        }
        /// <summary>
        ///     Creates a new instance of <see cref="IncidentBeingAnalyzed" />.
        /// </summary>
        /// <param name="entity">entity</param>
        /// <param name="exception">exception to analyze</param>
        /// <exception cref="ArgumentNullException">entity; exception</exception>
        /// <exception cref="ArgumentException">entity.hashcode is null</exception>
        public IncidentBeingAnalyzed(ErrorReportEntity entity, ErrorReportException exception)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }
            if (exception == null)
            {
                throw new ArgumentNullException("exception");
            }
            if (string.IsNullOrEmpty(entity.ReportHashCode))
            {
                throw new ArgumentException("ReportHashCode must be specified to be able to identify duplicates.");
            }

            Description = exception.Message;
            FullName    = exception.FullName;
            StackTrace  = HashCodeGenerator.CleanStackTrace(exception.StackTrace);

            AddReport(entity);
            ReportHashCode     = entity.ReportHashCode;
            HashCodeIdentifier = entity.GenerateHashCodeIdentifier();
            ApplicationId      = entity.ApplicationId;
            UpdatedAtUtc       = entity.CreatedAtUtc;
            CreatedAtUtc       = entity.CreatedAtUtc;
        }
Пример #4
0
 public override int GetHashCode()
 {
     if (_hashCode == null)
     {
         _hashCode = HashCodeGenerator.Calculate(this.OpenOrderId.GetHashCode(), this.CloseOrderId.GetHashCode());
     }
     return(_hashCode.Value);
 }
Пример #5
0
 public override int GetHashCode()
 {
     if (hashCode == null)
     {
         hashCode = HashCodeGenerator.Calculate(this.QuotePolicyId.GetHashCode(), this.InstrumentId.GetHashCode());
     }
     return(hashCode.Value);
 }
Пример #6
0
 public override int GetHashCode()
 {
     if (_hashValue == null)
     {
         _hashValue = HashCodeGenerator.Calculate(this.AccountId.GetHashCode(), this.InstrumentId.GetHashCode());
     }
     return(_hashValue.Value);
 }
Пример #7
0
        public void Should_remove_AT_from_stacktrace_to_avoid_multi_language_issues()
        {
            var exceptionWithAt = new ErrorReportException()
            {
                StackTrace =
                    @"at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Coderr.Server.Infrastructure.Configuration.Database.DatabaseStore.Store(IConfigurationSection section)
   at Coderr.Server.Premise.App.LicenseWrapper.IncreaseReportCount()
   at Coderr.Server.Web.Controllers.ReportReceiverController.PremiseLicenseCheck()
   at Coderr.Server.Web.Controllers.ReportReceiverController.Post(String appKey, String sig)
   at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync():55
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextExceptionFilterAsync():33"
            };
            var entityWithAt       = new ErrorReportEntity(1, "flldfd", DateTime.UtcNow, exceptionWithAt, new ErrorReportContextCollection[0]);
            var exceptionWithoutAt = new ErrorReportException()
            {
                StackTrace =
                    @"System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName)
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   Coderr.Server.Infrastructure.Configuration.Database.DatabaseStore.Store(IConfigurationSection section)
   Coderr.Server.Premise.App.LicenseWrapper.IncreaseReportCount()
   Coderr.Server.Web.Controllers.ReportReceiverController.PremiseLicenseCheck()
   Coderr.Server.Web.Controllers.ReportReceiverController.Post(String appKey, String sig)
   Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   System.Threading.Tasks.ValueTask`1.get_Result()
   Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync():55
   Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
   Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
   Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
   Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextExceptionFilterAsync():33"
            };
            var entityWithoutAt = new ErrorReportEntity(1, "flldfd", DateTime.UtcNow, exceptionWithoutAt, new ErrorReportContextCollection[0]);
            var sut             = new HashCodeGenerator(new IHashCodeSubGenerator[0]);

            var result1 = sut.GenerateHashCode(entityWithAt);
            var result2 = sut.GenerateHashCode(entityWithAt);

            result1.HashCode.Should().Be(result2.HashCode);
        }
Пример #8
0
        private void Mark <TEntity>(TEntity entity, IDictionary <int, object> dic) where TEntity : class
        {
            Requires.NotNull(entity, "entity");
            Requires.NotNull(dic, "dic");

            var key = HashCodeGenerator.ComposeHashCode(entity.GetType(), entity.ExtractId(_idPropertyName));

            if (!dic.ContainsKey(key))
            {
                dic.Add(key, entity);
            }
        }
        public void should_match_line_numbers_and_without_line_numbers_to_reduce_the_number_of_incidents()
        {
            var ex1 = new ErrorReportException {
                StackTrace = @"at System.Web.Compilation.AssemblyBuilder.Compile():line 64
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild():line 65
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath):line 67"
            };
            var ex2 = new ErrorReportException
            {
                StackTrace = @"at System.Web.Compilation.AssemblyBuilder.Compile()
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)"
            };
            var report1 = new ErrorReportEntity(1, "fjkkfjjkf", DateTime.UtcNow, ex1, new List <ErrorReportContextCollection>());
            var report2 = new ErrorReportEntity(1, "fjkkfjjkf", DateTime.UtcNow, ex2, new List <ErrorReportContextCollection>());

            var sut     = new HashCodeGenerator(new IHashCodeSubGenerator[0]);
            var actual1 = sut.GenerateHashCode(report1);
            var actual2 = sut.GenerateHashCode(report2);

            actual1.Should().Be(actual2);
        }
        public void should_strip_line_numbers_to_reduce_the_number_of_incidents()
        {
            var locator = Substitute.For <IServiceLocator>();
            var ex1     = new ErrorReportException {
                StackTrace = @"   at System.Web.Compilation.AssemblyBuilder.Compile():line 64
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild():line 65
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath):line 67"
            };
            var ex2 = new ErrorReportException
            {
                StackTrace = @"   at System.Web.Compilation.AssemblyBuilder.Compile():line 12
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild():line 23
at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath):line 53"
            };
            var report1 = new ErrorReportEntity(1, "fjkkfjjkf", DateTime.UtcNow, ex1, new List <ErrorReportContext>());
            var report2 = new ErrorReportEntity(1, "fjkkfjjkf", DateTime.UtcNow, ex2, new List <ErrorReportContext>());

            var sut     = new HashCodeGenerator(locator);
            var actual1 = sut.GenerateHashCode(report1);
            var actual2 = sut.GenerateHashCode(report2);

            actual1.Should().Be(actual2);
        }
Пример #11
0
 public override int GetHashCode() => HashCodeGenerator.Of(MealName).And(Price);
Пример #12
0
 public void SetUp()
 {
     generator = HashCodeGenerator.Initialise();
 }
Пример #13
0
 /// <summary>
 ///     Creates a new instance of <see cref="ReportAnalyzer" />.
 /// </summary>
 /// <param name="hashCodeGenerator">Used to identify is this is a new unique exception</param>
 /// <param name="eventBus">to publish the <see cref="ReportAddedToIncident" /> event</param>
 /// <param name="repository">repos</param>
 public ReportAnalyzer(HashCodeGenerator hashCodeGenerator, IEventBus eventBus, IAnalyticsRepository repository)
 {
     _hashCodeGenerator = hashCodeGenerator;
     _eventBus          = eventBus;
     _repository        = repository;
 }
Пример #14
0
        public async Task <IActionResult> Login(Login model)
        {
            if (ModelState.IsValid)
            {
                User user = await _context.Users
                            .Include(u => u.Role)
                            .FirstOrDefaultAsync(u => u.Login == model.Email && u.Password == HashCodeGenerator.GetHash(model.Password));

                if (user != null)
                {
                    await Authenticate(user); // аутентификация

                    return(RedirectToAction("Index", "Home"));
                }
                ModelState.AddModelError("", "Некорректные логин и(или) пароль");
            }
            return(View(model));
        }
Пример #15
0
 public override int GetHashCode()
 {
     return(HashCodeGenerator.Calculate(this.Buy.GetHashCode(), this.Sell.GetHashCode()));
 }
Пример #16
0
 public override int GetHashCode() =>
 HashCodeGenerator.Of(MemberShip).And(DateOrder).And(MemberShip);
Пример #17
0
 public override int GetHashCode()
 {
     return(HashCodeGenerator.Calculate(_sourceCurrencyId.GetHashCode(), _targetCurrencyId.GetHashCode()));
 }
Пример #18
0
 public static string GetMD5(this string input)
 {
     return(HashCodeGenerator.MD5(input));
 }
Пример #19
0
 public override int GetHashCode()
 {
     return(HashCodeGenerator.Calculate(_buyLot.GetHashCode(), _sellLot.GetHashCode()));
 }
Пример #20
0
 public override int GetHashCode() => HashCodeGenerator.Of(Login).And(Password).And(Email);
Пример #21
0
 public override int GetHashCode()
 {
     return(HashCodeGenerator.Calculate(_boPolicyId.GetHashCode(), _boBetTypeId.GetHashCode(), _frequence.GetHashCode()));
 }
Пример #22
0
 /// <summary>
 /// Override of <see cref="object.GetHashCode"/> method for <see cref="SQLQuery"/>.
 /// </summary>
 /// <returns><see cref="int"/> HashCode</returns>
 public override int GetHashCode()
 {
     return(HashCodeGenerator.StartHash().Hash(SQL).Hash(DbTableName).Hash(TObjects).Hash(CommandType).Hash(IsBulk).Hash(BatchSize));
 }
 public void HashCodeGenerator_Returns_0_For_Null(object TObject, int hashCode)
 {
     Assert.Equal(HashCodeGenerator.StartHash().Hash(TObject), hashCode);
 }