Example #1
0
        public IActionResult ControlPaymentResponse(PaymentResponseDTO dto)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(Unauthorized("You need to be logged in to perform this action"));
            }

            string email = User.Identity.Name;
            var    user  = _userRepository.GetBy(email);

            if (user == null)
            {
                return(BadRequest("User not found"));
            }

            var registration = _registrationRepository.GetLast(email);

            if (registration == null)
            {
                return(BadRequest("No registration found"));
            }
            if (registration.Paid)
            {
                return(BadRequest("You have already paid for this registration"));
            }

            var valid = EncoderHelper.ControlShaSign(_config, dto);

            registration.Paid = valid;
            _registrationRepository.Update(registration, email);

            var route = _routeRepository.GetBy(registration.RouteId);

            return(Ok(new { TourName = route.TourName, Valid = valid }));
        }
Example #2
0
        public ArrayEncoder(IReadOnlyList <Column> children, ColumnMetadata metadata)
        {
            _children = children;
            var child = this._children.FirstOrDefault();

            encoder = EncoderHelper.GetEncoder(child.Type, metadata.SubColumns.FirstOrDefault(), child.Children);
        }
Example #3
0
        /// <summary>
        ///     确定对象的指定值是否有效。
        /// </summary>
        /// <param name="value"></param>
        /// <param name="validationContext"></param>
        /// <returns></returns>
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value == null)
            {
                return(base.IsValid(null, validationContext));
            }

            var encodedValue = EncoderHelper.HtmlEncode(value.ToString(), false);

            if (EncodedStringAndValueAreDifferent(value, encodedValue))
            {
                SetupAllowedStringsDictionary();

                foreach (var allowedString in allowedStringsDictionary)
                {
                    encodedValue = encodedValue.Replace(allowedString.Value, allowedString.Key);
                }

                if (EncodedStringAndValueAreDifferent(value, encodedValue))
                {
                    return(new ValidationResult(SetErrorMessage(validationContext)));
                }
            }

            if (!string.IsNullOrWhiteSpace(disallowedStrings) &&
                disallowedStrings.Split(',').Select(x => x.Trim()).Any(x => value.ToString().Contains(x)))
            {
                return(new ValidationResult(SetErrorMessage(validationContext)));
            }

            return(base.IsValid(value, validationContext));
        }
Example #4
0
        public ObjectEncoder(IReadOnlyList <Column> children, Grpc.ColumnMetadata metadata)
        {
            this.columnId = metadata.ColumnId;

            encoders        = new IEncoder[children.Count];
            propertyGetters = new Func <object, object> [children.Count];
            for (int i = 0; i < children.Count; i++)
            {
                encoders[i]        = EncoderHelper.GetEncoder(children[i].Type, metadata.SubColumns[i], children[i].Children);
                propertyGetters[i] = children[i].GetFunction;
            }
        }
Example #5
0
        public async Task Query(QueryRequest request, ChannelWriter <Page> channelWriter, ServerCallContext context)
        {
            var parameters = ParameterDecoder.DecodeParameters(request.Parameters);

            QueryResult queryResult;

            try
            {
                queryResult = await _koraliumExecutor.Execute(request.Query, parameters, context.GetHttpContext());
            }
            catch (AuthorizationFailedException authFailed)
            {
                throw new RpcException(new Status(StatusCode.Unauthenticated, authFailed.Message));
            }

            var enumerator = queryResult.Result.GetEnumerator();

            Page page = new Page()
            {
                Metadata = new QueryMetadata()
            };

            foreach (var metadata in queryResult.Metadata)
            {
                page.Metadata.CustomMetadata.Add(new KeyValue()
                {
                    Name = metadata.Key, Value = ScalarEncoder.EncodeScalarResult(metadata.Value)
                });
            }

            IEncoder[] encoders = new IEncoder[queryResult.Columns.Count];
            Func <object, object>[] propertyGetters = new Func <object, object> [encoders.Length];

            int indexCounter = 0;

            for (int i = 0; i < queryResult.Columns.Count; i++)
            {
                var column = queryResult.Columns[i];

                var columnMetadata = ToMetadata(ref indexCounter, column);

                encoders[i]        = EncoderHelper.GetEncoder(column.Type, columnMetadata, column.Children);
                propertyGetters[i] = column.GetFunction;
                page.Metadata.Columns.Add(columnMetadata);
            }
            System.Diagnostics.Stopwatch encodeWatch = new System.Diagnostics.Stopwatch();
            encodeWatch.Start();
            await EncoderHelper.ReadData(_logger, page, encoders, propertyGetters, enumerator, request.MaxBatchSize, channelWriter);

            encodeWatch.Stop();
            _logger.LogTrace($"Encode time: {encodeWatch.ElapsedMilliseconds} ms");
        }
Example #6
0
        public ListEncoder(Column column)
        {
            Debug.Assert(column.Children.Count == 1);
            _getFunc  = column.GetFunction;
            _nullable = column.IsNullable;
            var child = column.Children.First();

            offsetBuilder = new ArrowBuffer.Builder <int>();

            _childEncoder = EncoderHelper.GetEncoder(child);
            _valueType    = TypeConverter.Convert(column);
            nullBitmap    = new ArrowBuffer.BitmapBuilder();
        }
Example #7
0
        private void SetupAllowedStringsDictionary()
        {
            if (string.IsNullOrWhiteSpace(allowedStrings))
            {
                return;
            }

            foreach (var allowedString in allowedStrings.Split(',').Select(x => x.Trim())
                     .Where(allowedString => !allowedStringsDictionary.ContainsKey(allowedString)))
            {
                allowedStringsDictionary.Add(allowedString,
                                             EncoderHelper.HtmlEncode(allowedString, false));
            }
        }
Example #8
0
        public AdvancedSettingsViewModel(AdvancedSettingsModel model, TrackableViewModel parent) : base(parent)
        {
            _model         = model;
            videoVeiwModel = ((StreamViewModel)parent).VideoViewModel;

            var encoders = EncoderHelper.GetVideoEncoders();

            VideoEncoders.AddRange(encoders);

            var encoder = encoders.FirstOrDefault(e => e.Id == _model.EncoderId) ?? encoders.FirstOrDefault();

            this.VideoEncoder = encoder;

            AdjustResolutionCommand = new DelegateCommand(AdjustVideoResolution);
        }
Example #9
0
        public ObjectEncoder(Column column)
        {
            _getFunc  = column.GetFunction;
            _nullable = column.IsNullable;

            _type = TypeConverter.Convert(column);

            _childEncoders = new IArrowEncoder[column.Children.Count];

            for (int i = 0; i < _childEncoders.Length; i++)
            {
                _childEncoders[i] = EncoderHelper.GetEncoder(column.Children[i]);
            }

            nullBitmap = new ArrowBuffer.BitmapBuilder();
        }
Example #10
0
        /// <summary>
        ///
        /// </summary>
        /// <remarks></remarks>
        /// <seealso cref=""/>
        /// <param name="value"></param>
        /// <param name="filter"></param>
        /// <param name="searchType"></param>
        /// <param name="numberOfResults"></param>
        /// <returns></returns>
        public SearchModel GetTextBoxSearchValues(string value, string filter, string searchType, int numberOfResults)
        {
            if (searchType.Equals("basedon"))
            {
                getQueryFromCriteria(this.WorkingSearchModel.CriteriaComponent);
            }
            if (searchType.Equals("new"))
            {
                getQueryFromCriteria(new SearchCriteria());
            }

            // encoding special characters for lucene
            value = EncoderHelper.Encode(value);

            this.WorkingSearchModel.SearchComponent.TextBoxSearchValues = BexisIndexSearcher.doTextSearch(this.bexisSearching, filter, value);
            return(this.WorkingSearchModel);
        }
Example #11
0
        public static RegistrationPaymentDTO DTOFrom(User user, Route route, Registration registration, string language, IConfiguration config)
        {
            string amount  = registration.OrderedShirt ? "6000" : "5000";
            string shasign = EncoderHelper.CalculateNewShaSign(config, amount, "EUR", user.Email, language, registration.Id.ToString(), "damiaanactie", user.Id.ToString());

            return(new RegistrationPaymentDTO()
            {
                Amount = amount,
                Currency = "EUR",
                Email = user.Email,
                Language = language,
                OrderId = registration.Id.ToString(),
                PspId = "damiaanactie",
                UserId = user.Id.ToString(),
                ShaSign = shasign,
                RouteName = route.TourName
            });
        }
Example #12
0
        //public EncoderItem VideoEncoder { get; set; }

        public void Init(IEnumerable <EncoderItem> encoders = null)
        {
            if (encoders == null)
            {
                encoders = EncoderHelper.GetVideoEncoders();
            }

            var encoder = encoders.FirstOrDefault(e => e.Id == EncoderId) ?? encoders.FirstOrDefault();

            if (encoder == null)
            {
                // Что то пошло не так...
                // throw new Exception...
            }

            if (encoder.Id != EncoderId)
            {
                this.EncoderId = encoder.Id;
            }
        }
Example #13
0
        public static DevState GetDevId(string msg, DevState state, ref VideoAndAudioDev dev, ref string devName)
        {
            if (!string.IsNullOrWhiteSpace(msg))
            {
                if (msg.Contains(VideoDevConst))
                {
                    state = DevState.VideoState;
                }
                else if (msg.Contains(AudioStateConst))
                {
                    state = DevState.AudioState;
                }
                else if (msg.Contains(DevIdConst))
                {
                    string devId = msg.Substring(msg.IndexOf(DevIdConst), msg.Length - msg.IndexOf(DevIdConst)).Replace(DevIdConst, "").Replace("\"", "").Trim();
                    switch (state)
                    {
                    case DevState.VideoState:
                        dev.Videos.Add(new VideoDev()
                        {
                            DevId = devId, DevName = EncoderHelper.ASCIToUtf8(devName)
                        });
                        break;

                    case DevState.AudioState:
                        dev.Audios.Add(new AudioDev()
                        {
                            DevId = devId, DevName = EncoderHelper.ASCIToUtf8(devName)
                        });
                        break;
                    }
                }
                devName = msg;
            }
            return(state);
        }
Example #14
0
        private static async Task Execute(string sql, HttpContext context)
        {
            context.Response.Headers.Add("Content-Type", "application/json");

            var koraliumService = context.RequestServices.GetService <IKoraliumTransportService>();
            var logger          = context.RequestServices.GetService <ILogger <IKoraliumTransportService> >();


            QueryResult result = null;

            try
            {
                result = await koraliumService.Execute(sql, new Shared.SqlParameters(), context);
            }
            catch (SqlErrorException error)
            {
                logger.LogWarning(error.Message);
                await WriteError(context, 400, error.Message);

                return;
            }
            catch (AuthorizationFailedException authFailed)
            {
                logger.LogWarning(authFailed.Message, authFailed);
                await WriteError(context, 401, authFailed.Message);

                return;
            }
            catch (Exception e)
            {
                logger.LogError(e, "Unexpected exception thrown");
                await WriteError(context, 500, "Internal error");

                return;
            }

            var responseStream = new System.Text.Json.Utf8JsonWriter(context.Response.Body);

            IJsonEncoder[]    encoders = new IJsonEncoder[result.Columns.Count];
            JsonEncodedText[] names    = new JsonEncodedText[result.Columns.Count];

            for (int i = 0; i < encoders.Length; i++)
            {
                encoders[i] = EncoderHelper.GetEncoder(result.Columns[i]);
                names[i]    = JsonEncodedText.Encode(result.Columns[i].Name);
            }

            System.Diagnostics.Stopwatch encodingWatch = new System.Diagnostics.Stopwatch();
            encodingWatch.Start();
            responseStream.WriteStartObject();

            responseStream.WriteStartArray(_valuesText);
            foreach (var row in result.Result)
            {
                responseStream.WriteStartObject();
                for (int i = 0; i < encoders.Length; i++)
                {
                    responseStream.WritePropertyName(names[i]);
                    encoders[i].Encode(in responseStream, in row);
                }
                responseStream.WriteEndObject();
            }
            responseStream.WriteEndArray();
            responseStream.WriteEndObject();

            encodingWatch.Stop();

            await responseStream.FlushAsync();
        }
Example #15
0
        public override async Task DoGet(FlightTicket ticket, FlightServerRecordBatchStreamWriter responseStream, ServerCallContext context)
        {
            try
            {
                int maxBatchSize         = DefaultMaxBatchSize;
                var maxBatchSizeMetadata = context.RequestHeaders.Get("max-batch-size");

                if (maxBatchSizeMetadata != null && int.TryParse(maxBatchSizeMetadata.Value, out var parsedMaxBatchSize))
                {
                    maxBatchSize = parsedMaxBatchSize;
                }


                var queryResult = await _koraliumTransportService.Execute(ticket.Ticket.ToStringUtf8(), new Shared.SqlParameters(), context.GetHttpContext());

                //Get the resulting schema
                var schema = GetSchema(queryResult.Columns);

                var encoders = queryResult.Columns.Select(x => EncoderHelper.GetEncoder(x)).ToArray();

                foreach (var encoder in encoders)
                {
                    encoder.NewBatch();
                }

                List <object> list  = new List <object>(20000);
                int           count = 0;

                System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
                stopwatch.Start();

                foreach (var obj in queryResult.Result)
                {
                    count++;
                    for (int i = 0; i < encoders.Length; i++)
                    {
                        encoders[i].Encode(obj);
                    }
                    if (encoders.Select(x => x.Size()).Sum() > maxBatchSize)
                    {
                        await responseStream.WriteAsync(new RecordBatch(schema, encoders.Select(x => x.BuildArray()), count));

                        foreach (var encoder in encoders)
                        {
                            encoder.NewBatch();
                        }
                        count = 0;
                    }
                }
                stopwatch.Stop();

                var batch = new RecordBatch(schema, encoders.Select(x => x.BuildArray()), count);
                await responseStream.WriteAsync(batch);
            }
            catch (SqlErrorException error)
            {
                throw new RpcException(new Status(StatusCode.InvalidArgument, error.Message));
            }
            catch (AuthorizationFailedException authFailed)
            {
                throw new RpcException(new Status(StatusCode.Unauthenticated, authFailed.Message));
            }
            catch (Exception e)
            {
                throw new RpcException(new Status(StatusCode.Internal, "Internal error"));
            }
        }
Example #16
0
 /// <summary>
 ///
 /// </summary>
 /// <remarks></remarks>
 /// <seealso cref=""/>
 /// <param name="searchCriteria"></param>
 /// <return></return>
 private void getQueryFromCriteria(SearchCriteria searchCriteria)
 {
     if (searchCriteria.SearchCriteriaList.Count() > 0)
     {
         bexisSearching = new BooleanQuery();
         foreach (SearchCriterion sco in searchCriteria.SearchCriteriaList)
         {
             if (sco.Values.Count > 0)
             {
                 if (sco.SearchComponent.Type.Equals(SearchComponentBaseType.General))
                 {
                     String       fieldName             = sco.SearchComponent.Name;
                     BooleanQuery bexisSearchingGeneral = new BooleanQuery();
                     foreach (String value in sco.Values)
                     {
                         String encodedValue = value;
                         Query  query        = new TermQuery(new Term(fieldName, encodedValue));
                         bexisSearchingGeneral.Add(query, Occur.SHOULD);
                     }
                     ((BooleanQuery)bexisSearching).Add(bexisSearchingGeneral, Occur.MUST);
                 }
                 else if (sco.SearchComponent.Type.Equals(SearchComponentBaseType.Category))
                 {
                     BooleanQuery bexisSearchingCategory = new BooleanQuery();
                     String       fieldName = "category_" + sco.SearchComponent.Name;
                     QueryParser  parser;
                     if (fieldName.ToLower().Equals("category_all"))
                     {
                         List <string> temp2 = BexisIndexSearcher.getCategoryFields().ToList();
                         temp2.AddRange(BexisIndexSearcher.getStoredFields().ToList());
                         temp2.Add("ng_all");
                         parser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_30, temp2.ToArray(), new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30));
                     }
                     else
                     {
                         parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, fieldName, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30));
                     }
                     foreach (String value in sco.Values)
                     {
                         String encodedValue = EncoderHelper.Encode(value);
                         String newString    = null;
                         //string value = val.Replace(")", "").Replace("(", "");
                         char[]   delimiter = new char[] { ';', ' ', ',', '!', '.' };
                         string[] parts     = encodedValue.ToLower().Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
                         for (int i = 0; i < parts.Length; i++)
                         {
                             newString = newString + " " + parts[i] + "~0.6";
                         }
                         parser.PhraseSlop      = 5;
                         parser.DefaultOperator = QueryParser.AND_OPERATOR;
                         string query_value = encodedValue;
                         if (encodedValue.Equals(""))
                         {
                             query_value = "*:*";
                         }
                         Query query = parser.Parse(query_value);
                         bexisSearchingCategory.Add(query, Occur.SHOULD);
                     }
                     ((BooleanQuery)bexisSearching).Add(bexisSearchingCategory, Occur.MUST);
                 }
                 else if (sco.SearchComponent.Type.Equals(SearchComponentBaseType.Facet))
                 {
                     String       fieldName           = "facet_" + sco.SearchComponent.Name;
                     BooleanQuery bexisSearchingFacet = new BooleanQuery();
                     foreach (String value in sco.Values)
                     {
                         String encodedValue = value;
                         Query  query        = new TermQuery(new Term(fieldName, encodedValue));
                         bexisSearchingFacet.Add(query, Occur.SHOULD);
                     }
                     ((BooleanQuery)bexisSearching).Add(bexisSearchingFacet, Occur.MUST);
                 }
                 else if (sco.SearchComponent.Type.Equals(SearchComponentBaseType.Property))
                 {
                     String   fieldName = "property_" + sco.SearchComponent.Name;
                     Property pp        = (Property)sco.SearchComponent;
                     if (pp.UIComponent.ToLower().Equals("range"))
                     {
                         fieldName = "property_numeric_" + sco.SearchComponent.Name;
                         DateTime dd = new DateTime(Int32.Parse(sco.Values[0]), 1, 1, 1, 1, 1);
                         if (pp.Direction == Direction.increase)
                         {
                             NumericRangeQuery <long> dateRangeQuery = NumericRangeQuery.NewLongRange(fieldName, dd.Ticks, long.MaxValue, true, true);
                             ((BooleanQuery)bexisSearching).Add(dateRangeQuery, Occur.MUST);
                         }
                         else
                         {
                             NumericRangeQuery <long> dateRangeQuery = NumericRangeQuery.NewLongRange(fieldName, long.MinValue, dd.Ticks, true, true);
                             ((BooleanQuery)bexisSearching).Add(dateRangeQuery, Occur.MUST);
                         }
                     }
                     else
                     {
                         BooleanQuery bexisSearchingProperty = new BooleanQuery();
                         foreach (String value in sco.Values)
                         {
                             if (value.ToLower().Equals("all"))
                             {
                                 Query query = new MatchAllDocsQuery();
                                 bexisSearchingProperty.Add(query, Occur.SHOULD);
                             }
                             else
                             {
                                 String encodedValue = value;
                                 if (SearchConfig.getNumericProperties().Contains(sco.SearchComponent.Name.ToLower()))
                                 {
                                 }
                                 else
                                 {
                                     Query query = new TermQuery(new Term(fieldName, encodedValue));
                                     bexisSearchingProperty.Add(query, Occur.SHOULD);
                                 }
                             }
                         }
                         ((BooleanQuery)bexisSearching).Add(bexisSearchingProperty, Occur.MUST);
                     }
                 }
             }
             else
             {
                 //do nothing yet
             }
         }
     }
     else
     {
         using (var sa = new SimpleAnalyzer())
         {
             QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "id", sa);
             bexisSearching = parser.Parse("*:*");
         }
     }
 }
Example #17
0
        public bool Init()
        {
            logger.Debug("Init()");

            var     winVersion   = Environment.OSVersion.Version;
            Version minOsVersion = new Version(MinOSVersion);

            if (winVersion < minOsVersion)
            {
                //...

                logger.Warn($"OS version {winVersion} currently not supported!");
                //throw new NotSupportedException($"This version of the operating system currently is not supported.");
            }

            var appVersion    = new Version(AppVersion);
            var configVersion = new Version(ConfigVersion);

            logger.Info("Application Version: " + appVersion);
            logger.Info("Configuration Version: " + configVersion);

            if (appVersion != configVersion)
            {
                if (appVersion.Major != configVersion.Major)
                {
                    logger.Warn("AppVersion is not the same as ConfigVersion: " + AppVersion + " != " + ConfigVersion);
                    //Проверяем совместимость версий...
                }

                //...
            }

            if (StreamList.Count == 0)
            {
                logger.Warn("StreamList.Count == 0");

                StreamList.Add(new MediaStreamModel()
                {
                    Name = $"{Environment.MachineName} (Stream 1)"
                });
            }

            if (MaxStreamCount < 1)
            {
                MaxStreamCount = 4;
            }

            if (StreamList.Count > MaxStreamCount)
            {
                logger.Warn("MaxStreamCountLimit: " + StreamList.Count + " > " + MaxStreamCount);

                StreamList.RemoveAt(MaxStreamCount - 1);
            }

            var videoEncoders = EncoderHelper.GetVideoEncoders();

            if (videoEncoders.Count == 0)
            {
                logger.Warn("videoEncoders.Count == 0");
                //...
            }

            var audioSources = AudioHelper.GetAudioSources();

            if (audioSources.Count == 0)
            {
                logger.Warn("audioSources.Count == 0");
                //...
            }

            var videoSources = ScreenHelper.GetVideoSources();

            if (videoSources.Count == 0)
            {
                logger.Warn("videoSources.Count == 0");
                //...
            }


            foreach (var stream in StreamList)
            {
                stream.Init(videoEncoders, videoSources, audioSources);
            }

            return(true);
        }