コード例 #1
0
        /// <summary>
        /// Handles session creation event.
        /// </summary>
        /// <param name="session">The created session.</param>
        private void NewSessionConnected(WebSocketSession session)
        {
            InformationManager.DisplayMessage(new InformationMessage("Bannerboard client connected"));

            // Send handshake
            var model = new HandshakeModel
            {
                Version = _version,
            };

            session.Send(model.ToJsonArraySegment());

            // Initialize all widgets
            _widgets.ForEach(w =>
            {
                try
                {
                    w.Init(session);
                }
                catch
                {
                    InformationManager.DisplayMessage(new InformationMessage($"Error while initializing {w.GetType().Name}!"));
                }
            });
        }
コード例 #2
0
        public HttpStatusCode StartHandshake(System.Web.HttpRequestBase request, HandshakeModel model)
        {
            request.InputStream.Seek(0, SeekOrigin.Begin);
            string jsonData = new StreamReader(request.InputStream).ReadToEnd();

            string hash = request.Headers["x-hash"];

            if (!HashIsOkHandshake(hash, jsonData))
            {
                var    myHash       = Security.Hash.GenerateHash(AppInformation.Instance.HandshakeUrl, jsonData);
                string errorMessage = GetErrorHandshakeHashNotOk(model, jsonData, hash, myHash);
                Error.ErrorLogger.ErrorOccurred(errorMessage);

                return(HttpStatusCode.ServiceUnavailable);
            }

            var repo       = RepositoryContainer.ConnectionRepo;
            var connection = repo.GetForApiPublic(model.api_public);

            if (connection != null)
            {
                string errorMessage = $"Trying to do a handshake with {model.api_public}, but there is already a connection for this exact api_public.";

                Error.ErrorLogger.ErrorOccurred(errorMessage);

                return(HttpStatusCode.ServiceUnavailable);
            }

            repo.AddConnection(model.api_public, model.api_secret, model.api_root, model.return_url);

            return(HttpStatusCode.OK);
        }
コード例 #3
0
        private static string GetErrorHandshakeHashNotOk(HandshakeModel model, string jsonData, string hash, string myHash)
        {
            return($@"Trying to do a handshake with api_public ({model.api_public}), but it went wrong.
<br />Api public: {model.api_public}
<br />Api secret: {model.api_secret}
<br />Api root: {model.api_root}
<br />Return url: {model.return_url}
<br />X-Hash: {hash}
<br />Handshake url: {AppInformation.Instance.HandshakeUrl}
<br />My hash: {myHash}
<br />Json data: {jsonData}");
        }
コード例 #4
0
        public async Task <ActionResult> Index()
        {
            var result   = new HandshakeModel();
            var dbResult = await bll.SchoolPosts().ListAsync();

            result.city.Add(new CountryViewModel
            {
                Id   = 0,
                Name = "Tümü"
            });
            foreach (var item in dbResult)
            {
                result.view.Add(new HandshakeViewModel
                {
                    SchoolName = item.Schools.Name,
                    Name       = item.Name,
                    Category   = item.Category1.Name,
                    price      = item.Price,
                    Id         = item.Id,
                    phone      = item.Schools.Phone_Number,
                    email      = item.Schools.E_Mail
                });
            }
            var city = await bll.City().ListByAsync();

            foreach (var item in city)
            {
                result.city.Add(new CountryViewModel
                {
                    Id   = item.Id,
                    Name = item.Name
                });
            }
            var category = await bll.Category().ListAsync();

            result.cat.Add(new Category {
                Id   = "0",
                Name = "Tümü"
            });
            foreach (var item in category)
            {
                result.cat.Add(new Category
                {
                    Id   = item.Id,
                    Name = item.Name
                });
            }
            return(View(result));
        }